iptablesを使用したトラフィック転送

iptablesを使用したトラフィック転送

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:5001localhost: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

おすすめ記事