iptables 和 KVM 的虚拟机,没有来自虚拟机的 ping、没有 ssh

iptables 和 KVM 的虚拟机,没有来自虚拟机的 ping、没有 ssh

大家好 :) 我有两台虚拟机 KVM。我为 eth0 做了两个别名 - eth0:0 和 eth0:1,并将它们放在外部 IP 上(eth0:0 - 89.114.122.3,eth0:1 - 89.114.122.4)。现在的问题是:从 IP 89.114.122.3 和 89.114.122.4 IP 重定向到为 dhcp 获取的虚拟机的虚拟内部地址(virbr0 桥接器)...我喜欢这样:

主机地址=89.114.122.3

主机端口=23

访客 IP 地址=192.168.122.86

Guest_port=23

iptables -t nat -A PREROUTING -p tcp -d ${Host_address} --dport ${Host_port} -j DNAT \ --to ${Guest_ipaddr}:${Guest_port}

iptables -I FORWARD -d ${Guest_ipaddr}/32 -p tcp -m state --state NEW \ -m tcp --dport ${Guest_port} -j ACCEPT

根据手动脚本:http://wiki.libvirt.org/page/Networking#NAT_forwarding_.28aka_.22virtual_networks.22.29

从 WAN 来看我的虚拟机看起来不错,但如果我在虚拟机会话中执行此操作:

deploy@bothunter:~$ telnet domain.in 23 尝试 89.114.122.3... 连接超时

怎么了?

答案1

好吧,我明白了,哪里出了问题:我有一条路由:89.114.150.3 (eth0:0)->192.168.122.1(virbr0)->192.168.122.5(vint0)。我在 iptables 中重写了我的路由,如下所示:

iptables -t nat -A PREROUTING -p tcp -d 89.114.150.3 --dport 80 -j DNAT --到 192.168.122.1:80 iptables -t nat -A PREROUTING -p
tcp -d 192.168.122.1 --dport 80 -j DNAT --到 192.168.122.5:80

iptables -I FORWARD -d 192.168.122.5/32 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

iptables -t nat -A POSTROUTING -p tcp -s 192.168.122.5 --sport 80 -j SNAT --到源 192.168.122.1 iptables -t nat -A POSTROUTING -p tcp -s 192.168.122.1 --sport 80 -j SNAT --到源 89.114.150.3

但我遇到了新问题——这也不起作用...为什么?

相关内容