我怎样才能得到开放的SSH隧道列表?

我怎样才能得到开放的SSH隧道列表?


我正在使用连接到FreeBSD服务器的Mac OS X客户端。 我试图查询客户端上的开放隧道。

你可以使用lsof:

$ lsof -i tcp | grep ^ssh ssh 2211 lcipriani 3r IPv4 20825 0t0 TCP lcipriani-laptop.local:49164->docsuite.cefla.com:22 (ESTABLISHED) ssh 2223 lcipriani 3r IPv4 21945 0t0 TCP lcipriani-laptop.local:34471->gd-b-21.vps.redomino.com:22 (ESTABLISHED) ssh 2640 lcipriani 3r IPv4 37488 0t0 TCP lcipriani-laptop.local:45693->makeda-xen1.redomino.com:22 (ESTABLISHED) ssh 5279 lcipriani 3r IPv4 212324 0t0 TCP lcipriani-laptop.local:56491->67.227.82.162:22 (ESTABLISHED) ssh 5279 lcipriani 4u IPv6 210281 0t0 TCP lcipriani-laptop:10000 (LISTEN) ssh 5279 lcipriani 5u IPv4 210282 0t0 TCP localhost.localdomain:10000 (LISTEN) 

最后一行代表隧道(查看状态LISTEN)。

在Ubuntu中,安装了iptables和iptstate和标准的ssh端口:

 iptstate -D 22 

每条线将代表开放隧道。

如果您想在单个ssh会话中找出使用隧道的内容,请在行的开头键入~#

 /sbin/ip tunnel list # replacement for the deprecated iptunnel command 

在脚本中使用lcipriani的答案:

 sessions=$(lsof -i tcp | grep "^ssh" | grep ESTABLISHED) if [ -z "sessions" ]; then echo "no open ssh sessions" else echo "ssh sessions are open" fi