![虚拟机中通过虚拟网卡使用 IPTABLE 进行 PAT](https://linux22.com/image/601068/%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E9%80%9A%E8%BF%87%E8%99%9A%E6%8B%9F%E7%BD%91%E5%8D%A1%E4%BD%BF%E7%94%A8%20IPTABLE%20%E8%BF%9B%E8%A1%8C%20PAT.png)
我遇到了一个奇怪的问题,但找不到解决办法。首先,这是我的配置;我有一个带有公共 IP 的 ESXI:1.1.1.1,我托管一个虚拟 Ubuntu 服务器,该服务器带有一个 NIC(在我的 esxi 中配置)eth0,公共 IP 为 2.2.2.2,并且我插入了一个虚拟网卡 eth0:0,公共 IP 为 3.3.3.3。这是我的 /etc/network/interfaces:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 2.2.2.2
netmask 255.255.255.255
broadcast 2.2.2.2
post-up route add 1.1.1.1 dev eth0
post-up route add default gw 1.1.1.1
post-down route del 1.1.1.1 dev eth0
post-down route del default gw 1.1.1.1
auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
address 3.3.3.3
netmask 255.255.255.255
broadcast 3.3.3.3
到目前为止一切顺利,一切正常。我可以 ping 2.2.2.2 和 3.3.3.3 现在我想将 3.3.3.3:443 重定向到 3.3.3.3:8777
因此我使用 iptables 制作了一个如下的 PAT:
iptables -t nat -A PREROUTING -i eth0:0 -p tcp --dport 443 -j DNAT --to-destination :8777
但当我执行 telnet 3.3.3.3:443 时失败了。所以我试过了
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7778 -j DNAT --to-destination :22
telnet 2.2.2.2:443 工作正常。所以我猜想它来自我的接口文件中的“添加路由”,但我不确定。
有什么想法吗?谢谢
答案1
解决方案已在这里找到: iptables:IP 别名和端口转发 所以我不能使用 DNAT,例如:
iptables -t nat -A PREROUTING -i eth0:0 -p tcp --dport 443 -j DNAT --to-destination :8777
但重定向:
iptables -t nat -A PREROUTING -i eth0 -d 3.3.3.3 -p tcp --dport 443 -j REDIRECT --to 8777
就是这样!