我怎样才能得到开放的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