我如何获取开放的 SSH 隧道列表?

我如何获取开放的 SSH 隧道列表?

我如何获取开放的 SSH 隧道列表?


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

答案1

您可以使用 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)。

答案2

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

iptstate -D 22

每条线代表开放的隧道。

答案3

如果您尝试找出在单个会话中使用隧道的内容ssh,请在行~#首输入。

答案4

在脚本中使用 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

相关内容