我想将传入的外部stream量redirect到在127.0.0.1上侦听的服务。 redirect很简单 – 只是:
iptables -t nat -A PREROUTING \ -d local_ip --dport 80 \ -j DNAT --to-destination 127.0.0.1:port
但是这会把数据包留在eth0 ,而且只是logging为martian,并且默认情况下会被丢弃。 我可以在eth0上启用route_localnet来解决这个问题,但是这暴露了整个接口的奇怪的路由技巧。
如何在没有route_localnet情况下正确转发它?
处理这个问题的正确方法是让应用程序监听正确的接口和/或IP地址,而不是127.0.0.1,并且只使用iptables来允许stream量,而不是玩奇怪的NAT技巧。