![KVM 客户机静态 IP,端口转发给另一个客户机](https://linux22.com/image/664131/KVM%20%E5%AE%A2%E6%88%B7%E6%9C%BA%E9%9D%99%E6%80%81%20IP%EF%BC%8C%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E7%BB%99%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%AE%A2%E6%88%B7%E6%9C%BA.png)
我在装有 Centos 7 的主机上,在装有 Centos 6.6 的 2 个客户机上。我希望我的一个客户机有静态外部 IP,但他的一些端口必须路由到另一个客户机。
在主机上我这样做:
iptables -t nat -I PREROUTING -d <EXTERNAL IP> -i enp2s0 -j DNAT --to-destination 192.168.122.88
iptables -t nat -I POSTROUTING -s 192.168.122.88 -o enp2s0 -j SNAT --to-source <EXTERNAL IP>
iptables -P FORWARD ACCEPT
#####
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 5999 -j DNAT --to-destination 192.168.122.155:5999
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 1540 -j DNAT --to-destination 192.168.122.155:1540
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 1541 -j DNAT --to-destination 192.168.122.155:1541
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 1560 -j DNAT --to-destination 192.168.122.155:1560
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 8187 -j DNAT --to-destination 192.168.122.155:8187
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 3389 -j DNAT --to-destination 192.168.122.155:3389
iptables -t nat -A PREROUTING --dst <EXTERNAL IP> -p tcp --dport 10050 -j DNAT --to-destination 192.168.122.155:3389
这样,客人就可以获得外部 IP,但端口规则不起作用。
答案1
您在第一个 DNAT 规则之后附加了单独的端口规则,并且由于所有数据包都与第一个 DNAT 规则匹配,因此后面的规则将永远不会匹配。
您需要将各个端口规则移至
iptables -t nat -I PREROUTING -d <EXTERNAL IP> -i enp2s0 -j DNAT --to-destination 192.168.122.88
表中的规则PREROUTING
。