ssh -Lと-Dの違いを理解しようとしています。それ以外に何かありますか-DはSOCKSのみですか?
ありがとう!
ssh -Lと-Dの違いを理解しようとしています。それ以外に何かありますか-DはSOCKSのみですか?
ありがとう!
回答:
ssh -L
ローカルポートを開きます。そのポートに送信するものはすべてssh接続を介して送信され、サーバーを経由します。たとえば、ブラウザでssh -L 4444:google.com:80
開くhttp://localhost:4444
と、実際にGoogleのページが表示されます。
ssh -D
ローカルポートを開きますが、などの特定のエンドポイントはありません-L
。代わりに、SOCKSプロキシのふりをします。たとえば、ssh -D 7777
ブラウザを開いlocalhost:7777
てSOCKSプロキシとして使用するようにブラウザに指示すると、ブラウザが要求するすべてがsshトンネルを通過します。公共のインターネットでは、まるでコンピューターからではなく、sshサーバーからブラウジングしているようです。
The bind_address of “localhost” indicates that the listening port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.
ssh -L 4444:google.com:80
私のために動作しません、それはuser@example.comのようにログインするための別のパラメータが必要
SSHでは-D
、ローカルの「動的な」アプリケーションレベルのポート転送を指定します。
SSH -D [bind_address:]port
ローカルの「動的な」アプリケーションレベルのポート転送を指定します。これは、オプションで指定されたbind_addressにバインドされたローカル側のポートをリッスンするソケットを割り当てることで機能します。このポートへの接続が確立されるたびに、接続は安全なチャネルを介して転送され、アプリケーションプロトコルを使用してリモートマシンからの接続先が決定されます。現在、SOCKS4およびSOCKS5プロトコルがサポートされており、sshはSOCKSサーバーとして機能します。ルートのみが特権ポートを転送できます。動的なポート転送も構成ファイルで指定できます。
IPv6アドレスは、代替構文[bind_address /] portを使用するか、アドレスを角括弧で囲むことで指定できます。
スーパーユーザーのみが特権ポートを転送できます。デフォルトでは、ローカルポートはGatewayPorts設定に従ってバインドされます。ただし、明示的なbind_addressを使用して、接続を特定のアドレスにバインドできます。「localhost」のbind_addressは、リスニングポートがローカルでの使用のみにバインドされていることを示し、空のアドレスまたは「*」は、ポートがすべてのインターフェースから利用可能であることを示します。
さらに、ssh -L
ローカル(クライアント)ホスト上の指定されたポートがリモート側の指定されたホストとポートに転送されることを指定します。
SSH -L [bind_address:]port:host:hostport
ローカル(クライアント)ホスト上の指定されたポートが、リモート側の指定されたホストおよびポートに転送されることを指定します。これは、オプションで指定されたbind_addressにバインドされたローカル側のポートをリッスンするソケットを割り当てることで機能します。このポートへの接続が確立されるたびに、接続はセキュアチャネルを介して転送され、リモートマシンからホストポートhostportへの接続が確立されます。ポート転送は、構成ファイルで指定することもできます。IPv6アドレスは、代替構文[bind_address /] port / host / hostportで指定するか、アドレスを角括弧で囲むことにより指定できます。
スーパーユーザーのみが特権ポートを転送できます。デフォルトでは、ローカルポートはGatewayPorts設定に従ってバインドされます。ただし、明示的なbind_addressを使用して、接続を特定のアドレスにバインドできます。「localhost」のbind_addressは、リスニングポートがローカルでの使用のみにバインドされていることを示し、空のアドレスまたは「*」は、ポートがすべてのインターフェースから利用可能であることを示します。