リモートホストで実行されるローカルネットワークサービスのSSHトンネルを作成するには何が必要ですか?

リモートホストで実行されるローカルネットワークサービスのSSHトンネルを作成するには何が必要ですか?

virtualboxマシンをリモートマシンのローカルサービスに接続したいです。ローカルサービスに接続できますが、リモートサービスでは、ターゲット上のサービスがローカルLANで実行されているため、問題があります。

これは、コンピュータ3とコンピュータ3の2つのインターフェイスの図です。接続しようとしているサービスはリモートシステムのローカルネットワークでのみ実行されるため、10.0.0.8:200に接続したいと思います。

+--------------------+
|                    |
|  VirtualBox        |
|  192.168.11.11:200 |
|                    |
+-----+--------------+
      |
      v
+--------------------+
|                    |
|  Local Computer    |
|  192.168.11.41:200 |
|                    |
+-----+--------------+
      |
      v
+--------------------+
|                    |
|  Remote Computer   |
|  8.8.8.8           |    <- I can connect here
|                    |
|  10.0.0.8:200      |    <- how do I connect here?
|                    |
+--------------------+

ローカルシステムとリモートシステムの間にトンネルを開くことができますが、これはローカルネットワーク10.0.0.8のサービスに接続できません。

これまで私が持っているのは、ローカルコンピュータとリモートコンピュータ間のSSHトンネルです。 VirtualBoxとローカルコンピュータを接続できます。 (期待どおりに動作するブリッジネットワーク設定があります。)

ssh -L 200:8.8.8.8:200 example.com

だから私が見逃しているのは8.8.8.8と10.0.0.8の間の接続です。 10.0.0.8:200のサービスを自分のローカルコンピュータで使用できるように、2つの間にトンネル/プロキシをどのように作成しますか?

ベストアンサー1

まず、コマンドに明らかなエラーがあります。あなたのプログラムはローカルネットワークでのみ実行されていますが、転送を使用してパブリックIPに接続しています-L 200:8.8.8.8:200。だから代わりにそれを使うべきです-L 200:10.0.0.8:200

次に、SSHクライアントは-L 200:10.0.0.8:299デフォルトでのみリッスンします。localhost:200この動作はoptionsを使用して設定できますGatewayPorts。 SSHクライアントに他のホストからの接続を受け入れるように明示的に指示するには、-L 0.0.0.0:10.0.0.8:200.fromを使用できますman ssh_config

     GatewayPorts
             Specifies whether remote hosts are allowed to connect to local forwarded ports.  By default, ssh(1) binds local port forwardings to the loopback address.  This
             prevents other remote hosts from connecting to forwarded ports.  GatewayPorts can be used to specify that ssh should bind local port forwardings to the wild‐
             card address, thus allowing remote hosts to connect to forwarded ports.  The argument must be yes or no (the default).

おすすめ記事