Wie kann ich eine Liste offener SSH-Tunnel erhalten?
Ich verwende einen Mac OS X-Client, der mit dem FreeBSD-Server verbunden ist. Ich versuche, offene Tunnel auf dem Client abzufragen.
Wie kann ich eine Liste offener SSH-Tunnel erhalten?
Ich verwende einen Mac OS X-Client, der mit dem FreeBSD-Server verbunden ist. Ich versuche, offene Tunnel auf dem Client abzufragen.
Antworten:
Sie können lsof verwenden:
$ 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)
Die letzte Zeile stellt einen Tunnel dar (siehe Status LISTEN).
lsof
integrierten Filter auch mit -c
flag verwenden. Also , lsof -i tcp -c '/^ssh/'
.
In Ubuntu mit iptables und iptstate installiert und Standard-SSH-Port:
iptstate -D 22
Jede Linie repräsentiert einen offenen Tunnel.
Wenn Sie herausfinden möchten, was die Tunnel in einer einzelnen ssh
Sitzung verwendet, geben Sie ~#
am Anfang einer Zeile ein.
/sbin/ip tunnel list # replacement for the deprecated iptunnel command
Verwenden der Antwort von lcipriani in einem Skript:
sessions=$(lsof -i tcp | grep "^ssh" | grep ESTABLISHED)
if [ -z "sessions" ]; then
echo "no open ssh sessions"
else
echo "ssh sessions are open"
fi