CentOS 6.9下的iptables在本机用DNAT转发指定IP到内网IP无效的问题解决(127.0.0.1)


比如:

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 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM