使用 iptables 进行 DNAT

使用 iptables 进行 DNAT

我尝试在接口 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

相关内容