3つのIPを持つサーバーがありますが、これをA、B、Cと呼びます。
IP Aポート5000を介してこのサーバーに接続し、IP Bを介してトラフィックプロキシを取得する必要があります。
そして、IP Aポート5001を使用すると、私のトラフィックはC経由でプロキシされます。
iptablesのみ使用できますか?それとも、イカのようなものが必要ですか?
私は成功せずにいくつかのNATルールを試しました。
ありがとうございます!
答え1
私はこれが良い質問だと思います。さまざまな方法でこれを達成できます。しかし、今は1つのソリューションしか提供していません。 SSHトンネルを使用してから、アプリケーションにSOCKSプロキシを使用させることができます。
トラフィックがHTTPであると仮定します。ローカル受信ポートを持つクライアントシステム(この場合はノートブック)に2つのSSHトンネルを作成します。5001そして5002それぞれ。トンネルがすぐに開きます。サーバー-B他の人が穴を開けるサーバー-Cインターネット上。プロセスは次のとおりです。
(ラップトップ)--->サーバー-A---->サーバー-B----->インターネット
(ラップトップ)--->サーバー-A---->サーバー-C----->インターネット
インターネットの観点から見ると、トラフィックは次のように発生します。サーバー-Bアプリケーションがポートを使用している場合5001SOCKSプロキシとして機能し、サーバー-Cアプリケーションがポートを使用している場合5002SOCKSプロキシとしてサーバー-A透明になります。
ラップトップで次の2つのコマンドを実行して、2つのSSHトンネルを作成してバインドしますlocalhost:5001
。localhost:5002
ssh -f -N -D 5001 -oProxyCommand="ssh -W %h:%p user@server-A" user@server-B
ssh -f -N -D 5002 -oProxyCommand="ssh -W %h:%p user@server-A" user@server-C
ラップトップでアプリケーション(Firefoxブラウザなど)がSOCKSプロキシを指すようにする127.0.0.1:5001
か、それに応じて使用します。127.0.0.1:5002
引用:OpenSSH Wiki