iptables は FORWARD HTTP トラフィックを privorxy ポートにリダイレクトします

iptables は FORWARD HTTP トラフィックを privorxy ポートにリダイレクトします

理想的には、ラップトップと 3Gphone を WiFi ルーターとして使用して、HTTP トラフィック (HTTPS トラフィックではない) を privoxy にリダイレクトし、その後、SSH トンネル経由でトラフィックを ziproxy VPS に転送しようとしています。

簡単にするために、privoxy は現在デフォルトに設定されています。つまり、別のプロキシに転送されません。例外として、intersepts 1 を受け入れます。

また、sysctl net.ipv4.ip_forward=1

次のiptableコマンドはローカルでは動作しますが、FORWARDトラフィックでは無視されます。つまり、wifiで接続されたユーザーはprivoxyによってフィルタリングされませんが、ローカルユーザーはフィルタリングされます。私は逆の動作をしたいのです。

iptables -t nat -A POSTROUTING -o ${INTERNET_IFACE} -j MASQUERADE
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner privoxy -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8118
iptables -A FORWARD -i ${WIFI_IFACE} -j ACCEPT

FORWARD HTTP トラフィックを privoxy 経由で強制転送するにはどうすればよいでしょうか?

答え1

これが機能しない理由は、netfilter スタックの特定の部分で、特定の方法でのみパケットを変更できるためです。送信先を途中で変更するのは遅すぎます。受信時に変更する必要があります。

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8118

netfilter スタックを構成するさまざまなテーブルを調査することをお勧めします。

関連情報