我有一个关于如何在 kvm 上启用互联网访问的问题。我遇到这样的情况:互联网流量通过外部防火墙,我将端口 5000-5004 转发到我的机器(接口 em1)。在 kvm 上,我有一个虚拟接口,该接口将 em1 NAT 到我的 kvm guest 虚拟机。
在主机上我有 iptables 设置:
iptables -t nat -A PREROUTING -p tcp --dport 5001 -j DNAT --to-destination 192.168.100.170:22
iptables -t nat -A POSTROUTING -p tcp -d 192.168.100.170 --dport 5001 -j SNAT --to-source EXTERNAL-IP
与 ssh 的连接工作正常(ssh 到端口 5000 将我连接到主机,ssh 到 5001 将我连接到访客)。我可以从访客 ping 到主机,但无法从存储库安装任何内容、无法 ping 任何内容等。我的主机是斯莱斯12来宾 kvm 是分体7 任何想法?
答案1
你用SNAT
错方向了。传入连接不需要它。当虚拟机发起连接时您需要它:
iptables -t nat -A POSTROUTING -p tcp -s 192.168.100.170 -j SNAT --to-source EXTERNAL-IP
EXTERNAL-IP
的地址是哪里em1
。
tcpdump
一般来说,在两个界面上使用都有很大帮助。然后您会看到数据包是否具有正确的地址。