HomePC
からHost A ( 10.100.64.112)
に直接アクセスできますが、Host B (172.88.3.31)
に直接アクセスできません。 Host B
にアクセスするには、最初にHost A
にsshし、次にHost B
にsshする必要があります。
Host B
に直接アクセスするために、Host A
で次のコマンドを使用して、ローカルポート転送を使用してSSHトンネルを設定しようとしました
Host A # ssh [email protected] -L 4420:172.88.3.31:22
今、私はトンネルが機能しているかどうかを検証しようとしました
Host A # ssh 10.100.64.112 -p 4420
[email protected]'s password:
正常に動作し、Host B
に移動します
しかし、HOmePC
から直接トンネルにアクセスすると、機能しません
$ ssh 10.100.64.112 -p 4122
ssh: connect to Host 10.100.64.112 port 4122: Connection refused
netstat
で確認すると、次のように表示されます
$ Sudo netstat -an | grep 4420
tcp 0 0 127.0.0.1:4420 0.0.0.0:* LISTEN
tcp 0 0 ::1:4420 :::* LISTEN
Host B
に直接接続するように提案してください。
例で4122と入力していることを知っていますか?
試してみてください
-L *:4420:172.88.3.31:22
星印は、他のマシンから接続できないlocalhostではなく、すべてのアドレスでリッスンすることを意味します。
特定のIPにバインドすることもできますが、私の推測では*が必要です。
マーティンの答え はうまくいくはずです。
-L *:4420:172.88.3.31:22
-L 0.0.0.0:4420:172.88.3.31:22
-L [specific IP]:4420:172.88.3.31:22
別の方法:
-L -g 4420:172.88.3.31:22
man ssh
から参照-gリモートホストがローカル転送ポートに接続できるようにします。多重接続で使用する場合、このオプションはマスタープロセスで指定する必要があります。