SSH-Tunnel: So erfahren Sie die Server-Port-Informationen nach dem Tunneln

SSH-Tunnel: So erfahren Sie die Server-Port-Informationen nach dem Tunneln

Ich versuche bei Google nach einer Methode zu suchen, um dies zu erreichen, kann jedoch keine finden.

Grundsätzlich habe ich mit einem Befehl wie diesem einen SSH-Tunnel zu mehreren Remote-Hosts über einen Bastion-Host erstellt.

ssh -L 9000:ourprodserver.domain.com:1521 \
    -L 9001:otherprodserver.domain.com:1521 \
-A -l [email protected] somebastionhost.domain.net

Wie erfahre ich nun, dass die Verbindungsdetails dem lokalen Port zugeordnet sind, wenn der Tunnel aktiv ist?

d. h. ich möchte in der Lage sein, eine Liste dieses Formulars zu erstellen.

L_port         Remote_host            R_port
9000       ourprodserver.domain.com   1521
9001       otherprodserver.domain.com 1521

Ist es möglich?

Antwort1

Es gibt eine einfache Lösung, aber sie listet nur dieDerzeit aktivTunnelverbindungen: Es wird die SSH-Escape-Sequenz verwendet~#

Wenn der Tunnel nicht verwendet wird, wird er nicht angezeigt.

Aus der Hilfe (angezeigt mit ~? innerhalb einer aktiven SSH-Verbindung):

~# - weitergeleitete Verbindungen auflisten

Die Beispielausgabe lautet:

user@somebastionhost$ ~#
The following connections are open:
  #4 client-session (t4 r0 i0/0 o0/0 fd 9/10 cc -1)
  #5 direct-tcpip: listening port 9000 for ourprodserver.domain.com port 1521, connect from 127.0.0.1 port 48954 to 127.0.0.1 port 9000 (t3 nr0 i0/0 o0/0 fd 12/12 cc -1)

Auf der Clientseite können Sie sich einen Überblick über die offenen Tunnel (auch die inaktiven) verschaffen, indem Sie die geöffneten TCP-Sockets auflisten:

lsof -n -p <pidof-ssh-client> -a -iTCP -a -sTCP:LISTEN

Dies beantwortet Ihre Frage zwar nicht vollständig, kann aber ein Ausgangspunkt sein.

verwandte Informationen