ComputerA は putty を介してサーバーのポート 77 に接続され、サーバーのポート 6666 から ComputerA のポート 22 にリバース トンネルが確立されます。 ComputerAには、ComputerA_user_nameという名前のユーザーアカウントに設定されたSSHサーバーもあります。
コマンドを使用して、ComputerBからサーバーにSSH経由で接続できますssh admin@Server -p 9000 -D 6000
。その後、私のコンピュータのComputerBでポート6000にソックスプロキシ接続を確立し、サーバーを介して実行するRubyプログラムを実行しました。 Rubyプログラムがプロキシを介してComputerBからComputerAに接続できるようにする方法は?
ssh -D 9000 localhost -p 6666 -l ComputerA_user_name
今試しているのは、ComputerBからサーバーへ、そしてサーバーからComputerAにバインドするためにComputerBからSSHに接続してからサーバーでこのコマンドを実行することです。しかしbind: Address already in use
。
答え1
私は答えを見つけました
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts
中間ホストを介したSOCKSプロキシ
中間ホストを介してSOCKSプロキシを開くには、次の手順を実行できます。
$ ssh -L 8001:localhost:8002 [email protected] -t ssh -D 8002 [email protected]
クライアントは実際にはmachine1への接続であるlocalhostのポート8001でSOCKSプロキシを表示し、トラフィックは最終的にmachine2を介してネットワークに入って来ます。 localhostのポート8001は、machine2のSOCKSプロキシであるmachine1のポート8002に接続されます。必要に応じてポート番号を選択できますが、特権ポートを転送するにはまだroot権限が必要です。
だから私の場合は、以下を使用しました。
ssh -L 6000:localhost:6001 -p 9000 admin@ip
ssh -D 6001 -p 6666 localhost -l username -N