SSH トンネル、トンネリング後のサーバー ポート情報を確認する方法

SSH トンネル、トンネリング後のサーバー ポート情報を確認する方法

これを実現する方法を Google で検索しようとしていますが、見つかりません。

基本的に、私は次のようなコマンドを使用して、要塞ホストを介して複数のリモート ホストへの SSH トンネルを作成しました。

ssh -L 9000:ourprodserver.domain.com:1521 \
    -L 9001:otherprodserver.domain.com:1521 \
-A -l [email protected] somebastionhost.domain.net

さて、トンネルがアクティブなときに、ローカル ポートにマッピングされる接続の詳細をどのように確認すればよいでしょうか。

つまり、この形式のリストを作成できるようにしたいのです。

L_port         Remote_host            R_port
9000       ourprodserver.domain.com   1521
9001       otherprodserver.domain.com 1521

出来ますか?

答え1

簡単な解決策は存在しますが、それは現在アクティブトンネル接続: SSHエスケープシーケンスを使用しています~#

トンネルが使用されていない場合は表示されません。

ヘルプから(アクティブな ssh 接続内で ~? で表示されます):

~# - 転送された接続を一覧表示する

出力例は次のようになります:

user@somebastionhost$ ~#
The following connections are open:
  #4 client-session (t4 r0 i0/0 o0/0 fd 9/10 cc -1)
  #5 direct-tcpip: listening port 9000 for ourprodserver.domain.com port 1521, connect from 127.0.0.1 port 48954 to 127.0.0.1 port 9000 (t3 nr0 i0/0 o0/0 fd 12/12 cc -1)

クライアント側では、開いている TCP ソケットを一覧表示することで、開いているトンネル (非アクティブなものも含む) を把握できます。

lsof -n -p <pidof-ssh-client> -a -iTCP -a -sTCP:LISTEN

これはあなたの質問に完全に答えているわけではありませんが、出発点になるかもしれません。

関連情報