web-dev-qa-db-ja.com

ローカルホストを事前ルーティングするiptables

Iptablesを使用して、特定のポートから別のポートにすべての着信トラフィックを転送したいと思います。問題は、ローカルホストからのトラフィックに対して事前ルーティングが機能しないことです。この トピック は解決策を提案します:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 8080

このソリューションはほとんどの場合に機能します。ただし、 http:// myserver:44 に接続すると、myserverはローカルマシンでホストされているIPアドレスに解決されますが、127.0.0.1ではないため、両方のルールがバイパスされているようです。

Eth0 IPアドレスに対して行われたローカルマシンからの転送要求もキャッチする方法はありますか?

3
Jeroen

OUTPUTルールで-d 127.0.0.1を実行する代わりに、-o loを実行できます。これは、宛先が何であっても、ループバックインターフェイスを通過するすべてのトラフィックに一致します。

ちなみに、「 http:// myserver:44 」に送信した場合でも、トラフィックはローカルであるため、「127.0」に解決されなくても、ループバックインターフェイスを通過します。 .0.1 '。

2
Patrick