このSSH接続コマンドの形式を説明してください。

このSSH接続コマンドの形式を説明してください。

私が経験している問題は、次のようにsshコマンドを使用してポート転送の使用を理解しようとしていることです。混乱は私のコンピュータがlocalhostであるlocalhostの使用に基づいていますが、リモートサーバーを参照しているようです。したがって、何が起こっているのかわからないので、以下のsshコマンドで何が起こっているのかを明確にすることができる情報や文書へのリンクを探しています。

ssh -f myUserID@someip -L [bind_address:]port:host:hostport
  • 上記の詳細はマニュアルからのものです。ローカル(クライアント)ホストの指定されたポートがリモート側の指定されたホストとポートに転送されることを指定します。

sshコマンドに関しては、左がローカル(クライアント)と見なされると聞きました。

したがって、次の構文を使用します。

ssh -f myUserID@someip -L 1234:localhost:9200

左側にIPがない場合、localhostはポート1234にあると仮定しますか?

localhost:9200の2番目の部分を解釈する方法がわかりません。

上記のsshコマンドをどのように解釈する必要がありますか?

[bind_address:]port:host:hostport は、ローカル (クライアント) ホストの指定されたポートがリモート側の指定されたホストおよびポートに転送されることを指定します。これは、ローカル側のポートでリッスンするようにソケットを割り当て、オプションで指定されたバインディングアドレスにバインドすることによって行われます。このポートに接続するたびに、接続はセキュアチャネルを介して転送され、リモートコンピュータからホストポートであるホストポートに接続が確立されます。ポート転送は設定ファイルでも指定できます。 IPv6アドレスは、代替構文[bind_address/]port/host/hostportを使用するか、アドレスを角かっこで囲むことで指定できます。スーパーユーザーだけが特権ポートを転送できます。デフォルトでは、ローカルポートはGatewayPortsの設定に従ってバインドされます。ただし、明示的なバインディングアドレスを使用して特定のアドレスに接続をバインドすることは可能です。 「localhost」のバインディングアドレスは、受信ポートがローカル専用であることを示し、空のアドレスまたは「*」は、ポートがすべてのインターフェイスで使用可能であることを示します。

私の投稿の形式を明確にする必要があります。読み取りが定義されている方法とコマンドが公開される方法のためにlocalhost 1234ポートをlocalhost 9200に転送するように聞こえるため、リモートサーバーと通信できる方法はわかりません。

ベストアンサー1

-L1234:localhost:9200

  • -L:ローカル転送を実行する(ローカルクライアントからリモートで転送)
  • 1234:実行中のローカルシステムのtcp / 1234で受信します。ssh
  • localhost:9200: トラフィックを転送する宛先です。ターゲットはターゲットシステムの観点から説明されています(someip例では「」)。localhostここで意味するのは、リモートシステムのtcp / 9200を意味しますsomeip9200

ローカルコンピュータはポート1234の接続を受け入れ、リモートホストのポート9200にトラフィックをトンネルします。


ターゲットは、localhost遠隔地の視点だけでなく、遠隔地からアクセスできる任意のコンピュータである可能性があります。したがって、someipローカルコンピュータからアクセスできますが(直接)アクセスできないコンピュータに転送したい場合は、次の方法を使用できます。

-L1234:otherip:9200

おすすめ記事