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 IPredirect到为dhcp获得虚拟机的虚拟内部地址(virbr0桥)…我喜欢这样的:

Host_address = 89.114.122.3

Host_port = 23

Guest_ipaddr = 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

并从广域网我的虚拟机看起来不错,但如果我在虚拟机会话中这样做:

部署@ bothunter:〜$ telnet domain.in 23尝试89.114.122.3 …连接超时

怎么了?

那么,我明白,什么是错的:我有一个路由: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新-m tcp –dport 80 -j ACCEPT

iptables -t nat -A POSTROUTING -p tcp -s 192.168.122.5 -sport 80 -j SNAT -to-source 192.168.122.1 iptables -t nat -A POSTROUTING -p tcp -s 192.168.122.1 -sport 80 – j SNAT – 来源89.114.150.3

但我有新的问题 – 这也是行不通的…为什么?