web-dev-qa-db-ja.com

allow_localnetを使用せずにローカルネットワークにリダイレクトする

着信外部トラフィックを127.0.0.1でリッスンするサービスにリダイレクトしたいと思います。リダイレクトは簡単です-ただ:

iptables -t nat -A PREROUTING \
    -d local_ip --dport 80 \
    -j DNAT --to-destination 127.0.0.1:port

しかし、これはパケットをeth0に残し、火星としてログに記録され、デフォルトでドロップされます。 route_localneteth0を有効にしてこれを修正できますが、これにより、インターフェイス全体が奇妙なルーティングトリックにさらされます。

route_localnetなしで正しく転送するにはどうすればよいですか?

3
viraptor

正しいこれを処理する方法は、アプリケーションに127.0.0.1ではなく正しいインターフェイスやIPアドレスでリッスンさせ、iptablesを使用してトラフィックを許可し、奇妙な再生を行わないようにすることですNATトリック。

1
Michael Hampton