ホストの実際の名前とサービスが実際に使用するポートを使用して、SOCKSプロキシを介してのみアクセスできるホストで実行されている一部のサービスに接続できる設定を作成しようとしています。サービスは変更する必要はなく、機能します。)これを行うには、次の手順に従います。
- サービスを実行しているホストにアクセスできる中間ホストへのSSH接続を使用してSOCKSトンネルを開きます。
fc00::1
未使用の一部のIPv6アドレスをループバックデバイスに割り当てます(例:)。socat
そのアドレスにアクセスし、接続要求をSOCKSプロキシに転送したいサービスで使用されているポートを開きます。/etc/hosts
アクセスしたいホストのエントリとループバックデバイスに割り当てられたアドレスを追加します。
これはすべての手順を自動化する予定です。これは1つの問題を除いて完全に機能します。私のローカルコンピュータで実行されている多くのサービスは、リモートホストからアクセスしようとしているのと同じポート(SSH、HTTPなど)を使用し、少なくともデフォルトではすべてのインターフェイスを受信します(たとえば、「すべての」アドレス0.0.0.0
/ ::0
)。これにより、他のプロセスが特定のアドレスでも同じポートを開くことができなくなります。元のループバックアドレス(127.0.0.1
/ ::1
)のみを受信するように再構成できるサービスの一部がありますが、SSHなどの一部のサービスではこれは意味がありません。ありません。どのアドレス。
考えられる解決策の1つは、リスニングソケットを開くときに「すべての」アドレスを指定するプロセスがそのアドレスを使用しないようにインターフェイス(2番目のループバックデバイスを作成できる)またはアドレスを表示できる場合です。
これは可能ですか、それともこの問題を解決する別の方法はありますか?