INCOMING SSHトンネルがまだ実行中で、誰に属しているかをどのように確認できますか?

INCOMING SSHトンネルがまだ実行中で、誰に属しているかをどのように確認できますか?

ショートバージョンについては、下記の編集内容をご覧ください。

サーバー上のSSHトンネルの状態を表示できません。

以下はいくつかの関連情報です。

user001 = remote client's username
123.123.123.123 = ssh server's ip
111.222.111.222 = database server

それでは、テスト用に1つのリモートクライアントのみを接続します。要求された2つのリバーストンネルを表示できます(フィルタリングされた出力)。

lsof -i -P
sshd    14652 user001    8u  IPv4 1171285      0t0  TCP localhost:2000 (LISTEN)
sshd    14652 user001    9u  IPv4 1171287      0t0  TCP my.domain.com:2001 (LISTEN)

netstat -atpe --numeric-ports
tcp        0      0 127.0.0.1:2000          0.0.0.0:*               LISTEN      user001    1171285     14652/sshd: user001
tcp        0      0 123.123.123.123:2001     0.0.0.0:*               LISTEN      user001    1171287     14652/sshd: user001

user001によって開始されたように見えますが、生成された一般(-L)トンネルはリストされませんlsof。これに関して私が見つけることができる唯一の情報はディスプレイを通してですnetsat。トンネル自体ではないように見えますが、SSHサーバーとデータベースサーバー間のネットワーク接続は次のとおりです。

tcp        0      0 123.123.123.123:60299    111.222.111.222:52849     TIME_WAIT   root       0           -               
tcp        0      0 123.123.123.123:60300    111.222.111.222:52849     TIME_WAIT   root       0           -               

これは、ルートの下に表示されるだけでなく、ローカルIPのみを表示するため、誰のトンネル/接続かを知る方法がないため、ピタです。 50以上のリモートクライアントがすべて接続されていると、トラブルシューティングはめちゃくちゃになります。

質問:

SSHトンネルを表示するより良い方法はありますか?より良いコマンド?どのプログラム?

リモートクライアントのユーザーの下にこれを表示したり、少なくともリモートクライアントのIPを表示したりする方法はありますか?

なぜlsof表示されないのですか?

ありがとうございます。

- - -編集する - - -

まあ、最初から始めたい場合は、問題の単純化されたバージョンは次のとおりです。

SSHクライアント接続済みSSHサーバーローカルポート100からポート5000にトンネルを要求します(-Lを使用)。データベースサーバー同じネットワークでSSHサーバー

だから私たちは次のトンネルを得ます:

クライアント:100 -----> SSHサーバー----->データベースサーバー:5000

ログイン時にトンネルが機能しているかどうかを確認する方法SSHサーバー

私は見たくない。SSHサーバー一緒に働くデータベースサーバートンネルがどんな材料で作られたのか見たいです。SSHクライアントそれでもアクティブです。

netstatに示されている情報は、サーバーがSSHサーバーの任意のポートからポート5000にアクティブな接続を持っていることを示しています。

ベストアンサー1

TIME_WAITに2つの接続が発生したと確信しています。仕える人接続が終了します。これは、サーバーがrootとして実行されている場合に意味があります。

-Lオプションは、実際のトンネルを生成せずにトンネリング機能のみを生成することに注意してください。入力IP /ポートに接続すると、SSHは実際に宛先IP /ポートのトンネルを生成します。その後、誰かが接続を閉じるまで、lsof / netstat / etcでESTABLISHED状態の接続を表示できます。

別のターミナルウィンドウを開き、何も入力せずに「telnet IP port」(-Lで指定したトンネルフロントエンドのIP /ポートである必要があります)を入力してトンネルを有効にします。次に、サーバーウィンドウを開き、lsof / netstatコマンドを実行して物理接続が確立されていることを確認します。

お役に立てば幸いです。教えてください!

おすすめ記事