比如:
iptables -t nat -A OUTPUT -p tcp -d 192.168.1.0/24 --dport 2222 -j DNAT --to-destination 127.0.0.1:2222
或者iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 4242 -j DNAT --to-destination 11.22.33.44:5353
解決方法:
1、在/etc/sysctl.conf增加轉發
net.ipv4.conf.eth0.route_localnet=1
然后刷新一下sysctl -p,如果不想永久可以直接用當次生效的模式:sysctl -w net.ipv4.conf.eth0.route_localnet=1
完整的示例:
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 4242 -j DNAT --to-destination 11.22.33.44:5353 sysctl -w net.ipv4.conf.eth0.route_localnet=1 #這一步可以在/etc/sysctl.conf增加使其變成永久的,增加后用sysctl -p進行生效 iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 -d 11.22.33.44 --dport 5353 -j SNAT --to-source $your-eth0-ip
參考:
https://unix.stackexchange.com/questions/111433/iptables-redirect-outside-requests-to-127-0-0-1
https://serverfault.com/questions/551487/dnat-from-localhost-127-0-0-1