我有两台机器,client
并且server
. 使用类似的东西client
创建了反向隧道。server
ssh -R 12345:localhost:12345 server
登录后server
如何找到已绑定到隧道的端口?那么,在上面的示例中,我如何判断端口 12345 正在用作通往 的隧道client
?
答案1
您可以通过lsof
检查哪些 TCP 端口处于 LISTEN 状态并被 sshd 使用来做到这一点:
[jenny@willow ~]$ sudo lsof -iTCP -sTCP:LISTEN | grep sshd
sshd 1084 root 3u IPv6 0xffffff0003fed888 0t0 TCP *:ssh (LISTEN)
sshd 1084 root 4u IPv4 0xffffff0003fed5b0 0t0 TCP *:ssh (LISTEN)
sshd 47607 jenny 7u IPv6 0xffffff00510a0888 0t0 TCP localhost:12345 (LISTEN)
sshd 47607 jenny 8u IPv4 0xffffff00410062d8 0t0 TCP localhost:12345 (LISTEN)
上面两个是 SSH 守护进程,下面两个是 TCP 隧道。 (对于 IPv6,每一项都列出一次,对于 IPv4,每一项都列出一次)。