遠隔サーバーを介してTCPトラフィックをプロキシしようとしています

遠隔サーバーを介してTCPトラフィックをプロキシしようとしています

ここ数日、VPS プロキシ TCP トラフィック (ポートによって異なります) をホーム サーバー (両方とも Ubuntu サーバー) にするためにいくつかのことを試しました。

クライアント <------> VPS <------> ホームサーバー

具体的には、VPS の背後に隠したい (同じサブネット上にはない) アプリを実行しているホーム サーバーがあり、クライアントがホーム サーバー上のアプリにアクセスしようとしたときにソース IP が保持されるようにしたいと考えています。

現在、私はリバース プロキシとして NGinx ストリームを実行しています。これは非常にうまく機能しますが、クライアント IP が失われます (VPS IP に置き換えられます)。これを保持するオプションはありますがproxy_bind $remote_addr transparent;、ホーム サーバーがゲートウェイのようにトラフィックを VPS に出力する必要があります (両方を同じネットワーク上に配置しないと、この解決策はありません)。

SSH ポート フォワーディングを使用しようとしましたが、ソース IP も失われました (ホーム サーバーのローカル IP に置き換えられました)。IP Gre トンネリングも試しましたが (最終的には失敗しました...)...

私にとって最適なのは、VPS とホーム サーバーがトンネル経由で接続されることだと思います。

クライアント <------> ( VPS <- トンネル -> ホームサーバー )

しかし、前述したように、必要なのは、ソース IP を保持し、VPS IP をサーバー IP として、VPS ポート固有のトラフィックをホーム サーバーに送信することだけです。

誰かが解決策を持っていることを願っています!

すてきな一日を !

答え1

最終的に、汎用的な解決策を見つけることをあきらめ、PostfixとDovecotと組み合わせてHAProxyを使用しました。https://www.linuxbabe.com/mail-server/smtp-imap-proxy-with-haproxy-debian-ubuntu-centos

関連情報