SSH隧道,如何知道隧道後的伺服器連接埠訊息

SSH隧道,如何知道隧道後的伺服器連接埠訊息

我試圖用谷歌搜尋一種方法來實現這一目標,但找不到。

基本上,我使用這樣的命令透過堡壘主機建立了到多個遠端主機的 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

儘管這並不能完全回答您的問題,但這可能是個起點。

相關內容