Sshポート転送と、sshローカルポート転送とリモートポート転送の違いについて混乱しています。それらを詳細に、例を挙げて説明していただけますか?ありがとう!
ローカル:-L Specifies that the given port on the local (client) Host is to be forwarded to the given Host and port on the remote side.
_ssh -L sourcePort:forwardToHost:onPort connectToHost
_は、sshを使用してconnectToHost
に接続し、すべての接続試行をlocalsourcePort
にonPort
と呼ばれるマシンのポートforwardToHost
に転送します。 connectToHost
マシンからアクセスできます。
リモート:-R Specifies that the given port on the remote (server) Host is to be forwarded to the given Host and port on the local side.
_ssh -R sourcePort:forwardToHost:onPort connectToHost
_は、sshを使用してconnectToHost
に接続し、すべての接続試行をremotesourcePort
にonPort
というマシンのポートforwardToHost
に転送します。ローカルマシンからアクセスできます。
_ssh -L 80:localhost:80 SUPERSERVER
_
ローカルポート80への接続がSUPERSERVERのポート80に転送されるように指定します。つまり、誰かがウェブブラウザであなたのコンピュータに接続した場合、彼はSUPERSERVERで実行されているウェブサーバーの応答を受け取ります。ローカルマシンでは、Webサーバーは実行されていません。
_ssh -R 80:localhost:80 tinyserver
_
Tinyserverのポート80への接続がローカルマシンのポート80に転送されるように指定します。つまり、誰かがウェブブラウザで小さくて遅いサーバーに接続すると、ローカルマシンで実行されているウェブサーバーの応答を受け取ります。大きなウェブサイトに十分なディスク容量がないタイニーサーバーでは、ウェブサーバーが実行されていません。しかし、tinyserverに接続する人々はそう思っています。
その他の可能性:強力なマシンには、5つの異なるポートで実行される5つのWebサーバーがあります。ユーザーがWebブラウザーを使用してポート80で5つの小さなサーバーの1つに接続すると、要求は強力なマシンで実行されている対応するWebサーバーにリダイレクトされます。それは
_ssh -R 80:localhost:30180 tinyserver1
ssh -R 80:localhost:30280 tinyserver2
etc.
_
あるいは、あなたのマシンは強力なサーバーと小さなサーバーの間の接続にすぎないのかもしれません。次に、それは(独自のWebサーバーを持つために再生する小さなサーバーの1つ)です。
_ssh -R 80:SUPERSERVER:30180 tinyserver1
ssh -R 80:SUPERSERVER:30280 tinyserver2
etc
_
ローカルポート転送
sshは追加のローカルポートを作成し、リモートシステムのポートに転送します。
例
ssh -L 8080:127.0.0.1:80 user@webserver
次に、ブラウザでローカルに使用するURL http://localhost:8080/
ローカルマシンのポート8080に接続し、sshがリモートのsshに転送して、127.0.0.1:80
にリクエストを送信します。注127.0.0.1
は実際にはリモートサーバーのローカルホストですが、リモートマシンのネットワークで使用可能なホスト/ IPであった可能性もあります。
リモート転送
ローカルsshに転送(リバース)して転送するリモートマシンにリスニングポートを作成するようにsshに要求します。
ssh -R 10123:127.0.0.1:123 user@webserver
したがって、sshがwebserverに接続した後、リモートsshはポート10123で作成およびlsitensを実行します。10123に接続するwebserver上のプロセスは、sshがそれを取得してローカルマシンのsshに送り返し、sshが127.0.01に送ります。 :123ポート。