小知识:kvm虚拟机配置NAT端口转发的实现方法

1. 概述

在内网一台物理机部署了kvm虚拟化环境。为了避免虚拟机的IP地址和内网网段冲突,kvm采用的是NAT模式,而非桥接模式。因此在本地访问kvm虚拟机时,必须用物理机来实现转发,才能登录到虚拟机。而kvm的转发,需要使用Linux的iptables工具来实现

2. iptables创建规则

先创建虚拟机,比如创建一台虚拟机node98,其ip地址是192.168.80.98,我想在本地访问node98的22端口,是无法实现的。所以需要进行以下操作:

?
1
2
3
4
iptables -t nat -A PREROUTING -p tcp –destination 192.168.212.93 –dport 2298 -j DNAT –to-destination 192.168.80.98:22
iptables -t nat -A POSTROUTING -p tcp –dport 22 -d 192.168.80.98 -j SNAT –to 192.168.212.93
iptables -D FORWARD 5 -t filter
iptables -D FORWARD 4 -t filter

上述使用iptables配置了物理机192.168.212.93到其内部kvm虚拟机node98的22端口转发。需要注意的是:

?
1
2
iptables -D FORWARD 5 -t filter
iptables -D FORWARD 4 -t filter

这两条需要操作,否则转发不成功,登录失败

3. 查看和清除

物理机创建的虚拟机多了,端口转发规则多了起来。使用以下命令查看当前的转发规则

?
1
iptables -nL -v –line-numbers -t nat

会在Chain PREROUTING 和Chain POSTROUTING 看到对应的条目。

清除当前规则:

?
1
2
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING

4. 一些别的问题

清理规则后,建议重启libvirtd和虚拟机,否则会存在虚拟机无法ping通外网的情况 每次添加转发规则时,应该都需要执行iptables -D FORWARD的操作,否则无法登录 如果在虚拟机部署了Java开发环境,使用vscode远程开发时,配置Tomcat的端口转发,不需要在物理机和虚拟机再操作,一切由vscode自行完成

到此这篇关于kvm虚拟机配置NAT端口转发的文章就介绍到这了,更多相关kvm NAT端口转发内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/liwanliangblog/p/16399199.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Docker搭建MySQL5.7主从复制的实现

2023-3-6 14:39:07

建站知识

小知识:ES业务数据迁移遇到的精度问题BUG

2023-3-6 14:45:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索