発信TCP接続の透過プロキシをサポートするSOCKSプロキシには、Torとredsocksの 2つがあります。HTTPプロキシとは異なり、これらのSOCKSプロキシは、暗号化されたプロトコルやメタデータやヘッダーのないプロトコルなど、発信TCP接続を透過的にプロキシできます。
これらのプロキシは両方とも、NATを使用して発信TCPトラフィックをプロキシのローカルポートにリダイレクトする必要があります。たとえばTransPort 9040
、ローカルマシンでTorを実行している場合、次のようなiptablesルールを追加する必要があります。
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
私の知る限り、これは元の宛先IPとポートを127.0.0.1
と9040
に置き換えます。これが暗号化されたストリーム(SSHなど)またはヘッダーのないストリーム(whoisなど)である場合、プロキシは元の宛先IPとポートをどのように知っていますか?