宛先に応じて他のプロキシサーバーを介してトラフィックをルーティングする方法

宛先に応じて他のプロキシサーバーを介してトラフィックをルーティングする方法

背景

私はプロキシサーバーの背後にある会社のネットワークで作業しています。要塞/ジャンプホストSSHプロキシを介してアクセスできるいくつかのリモートサイトも使用します。

私のSSHトンネルには、~/.ssh/config要塞ホストをバイパスしてリモートラボに接続できるプロキシ構成があります。

Host *.remoteLab1
    ProxyCommand ssh -l USERNAME BASTIONHOST1 nc %h %p

Host *.remoteLab2
    ProxyCommand ssh -l USERNAME BASTIONHOST2 nc %h %p

私はOSXとLinuxの両方を使用するので、コマンドはほぼ同じであると仮定します。

現在のソリューション

私の現在のソリューションは理想的ではありません。デフォルトでは、次のリモートラボの1つにソックス接続があります。

ssh -D 1080 remoteLab1

ssh -D 1081 remoteLab2

その後、両方でプロキシサーバーをにrealvnc変更しました。 Chromeにはこれを行うためのプラグインがあり、VNCにはこれに関するドキュメントがあります。chromelocalhost:1080 / localhost:1081

どちらのリモートラボも独自のドメインを持っているので、ルーティングテーブルを使用してIPアドレスに基づいてこれらのソックスプロキシを介してすべてのトラフィックを送信するより簡単な方法があるかどうか疑問に思います。

要求されたソリューション

一方:ソックス5トンネルが港に開かれました。1080

一方:ソックス5トンネルが港に開かれました。1081

必要

  • domain1.org渡されたアドレス1080
  • domain2.org渡されたアドレス1081
  • 失敗 - 他のすべては標準のプロキシサーバーを通過します。

所有する価値

  • 解決策は永久的ではありません。靴下トンネルの1つを開くことと組み合わせたスクリプトを介してアクティブになります。

プロキシサーバーの1つを介してドメインの代わりに特定のIPアドレスをマッピングすることも可能ですか?

アイデア

このすべてをどこから始めるべきかわかりません。私がどこかで見た解決策の1つはaを使用することproxy.pacでしたが、会社のネットワークにはすでにaがあります。私のカスタマイズではない場合は、会社の設定を使用するproxy.pac失敗方法があるかどうかわかりません。pac.pac.pac

iptablesまたはコマンドを使用してくださいroute。しかし、どちらも私の知識を超えています。

ローカルループバックなどを設定してください。

答え1

ProxyCommandusingをncuseに変更することをお勧めします-W。たとえば、

ProxyCommand ssh -l USERNAME BASTIONHOST1 -W %h:%p

これにより、Baschenホストの要求が減り、管理者がBaschenホストの設定方法を変更することを決定した場合にエラーが発生する可能性が低くなります。

他のpacファイルを切り替える方法がないと思います。ただし、1つの注意事項で、2つのpacファイルをある程度関連付けることができます。エントリポイントは両方のファイルに存在します。元のpacファイルでエントリポイントの名前を変更する必要があり、さらに名前が変更された関数バージョンを呼び出すことができます。

歴史的に、エントリポイントはFindProxyForURLという関数でした。一部の最新のブラウザには、異なる名前を使用するエントリポイントを介して有効にされた拡張機能があります。

関連情報