我尝试在接口 eth0:0 上进行 DNAT 到端口 43 上的另一个 IP 192.168.1.12,但是它不起作用,这可能是什么问题?
iptables -t nat -A PREROUTING -p tcp -i eth0:0 --dport 43 -j DNAT --to-destination 192.168.1.12:43
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.12 --dport 43 -j MASQUERADE
监听任意接口均有效:
iptables -t nat -A PREROUTING -p tcp --dport 43 -j DNAT --to-destination 192.168.1.12:43
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.12 --dport 43 -j MASQUERADE
答案1
eth0:0 是一个别名,而不是实际接口,因此 iptables 对此一无所知。第一条规则应重写如下:
iptables -t nat -A PREROUTING -i eth0 ...
在第二条规则中,强烈建议通过“-o ...”指定传出接口。您可以使用以下命令获取它:
ip route get 192.168.1.12