
この質問から来ました:SSH ポート転送とは何ですか? SSH ローカル ポート転送とリモート ポート転送の違いは何ですか?、私はこの用法について混乱しています:
ssh -L 123:farawayhost:456 remotehost
ssh -L sourcePort:forwardToHost:onPort connectToHost
は、 sshでに接続しconnectToHost
、すべての接続試行を転送することを意味します。地元sourcePort
マシンからアクセスできる とonPort
呼ばれるマシン上のポートへ 。forwardToHost
connectToHost
「...」とはどういう意味ですか?到達できる「マシンからconnectToHost
」とは具体的にどういう意味ですか?
私の理解が正しければ、ssh -L 123:localhost:456 remotehost
は上記のコマンドの特殊なケースであり、 と の両方farawayhost
がremotehost
同じマシン上にあるということです。
では、 と が同じマシン上にない場合はfarawayhost
、remotehost
どのように動作するのでしょうか?remotehost
最初に にログインしてから にログインする必要があるということでしょうかfarawayhost
?
答え1
最初はなぜ混乱したのかわかりません。おそらく、元の回答が十分に明確ではなかったからでしょうが、その後、突然、その理由が分かりました。
パブリック IP が1.2.3.4
とである 2 台のマシンがあるとします2.3.4.5
。
使用法は次のようになります: 、改行が求められ、 のパスワードが要求されます。ssh -L 10283:1.2.3.4:8000 [email protected] -N
username
2.3.4.5
認証に成功した場合、指定されたssh
ためログインできません-N
が、接続は確立されています。そのため、送信されるデータは地元ポートは最初に(ポート)経由で10283
送信され、次にポートにデータが送信されます。2.3.4.5
ssh
22
2.3.4.5
1.2.3.4
8000.
ここで、 で HTML ファイルを作成し、でecho hello > index.html
http サーバーを実行します。1.2.3.4
python -m http.server
そして、localhost:10283
ローカル PC で入力します。
ローカルPC:
の上1.2.3.4
: