Odpowiedzi:
Jeśli użyjesz tej -v
opcji ssh
, pokaże ci to, co przekazujesz dalej (ale pokaże też kilka innych wiadomości debugowania):
ssh -v -L2222:localhost:22 remotehost
Pokaże Ci:
...debug messages...
debug1: Authentication succeeded (publickey).
Authenticated to remotehost ([10.0.0.23]:22).
debug1: Local connections to LOCALHOST:2222 forwarded to remote address localhost:22
debug1: Local forwarding listening on ::1 port 2222.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 2222.
...debug messages...
A następnie, gdy jesteś podłączony do tej zdalnej powłoki, możesz wpisać specjalną sekwencję klawiszy:
~#
która wyświetli listę takich połączeń:
The following connections are open:
#3 client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
#4 direct-tcpip: listening port 2222 for localhost port 22, connect from 127.0.0.1 port 59742 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)
Zauważ jednak, że będzie to tylko lista portów, które są faktycznie używane przez inny program (w tym przypadku właśnie zrobiłem telnet localhost 2222
na moim komputerze lokalnym, aby go przekierować) remotehost
.
Jeśli nie masz żadnych połączeń, które są obecnie przekazywane, nadal możesz zobaczyć, czego lokalnie oczekuje twoje polecenie ssh, używając następującego netstat
polecenia:
% netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:2222 0.0.0.0:* LISTEN 28995/ssh
tcp6 0 0 ::1:2222 :::* LISTEN 28995/ssh
netstat
Komenda będzie prawdopodobnie również listę innych rzeczy, ale to, co chcesz szukać w wyjścia jest PID/Program
kolumna szukać ssh
procesów, a Local Address
kolumna, która pokaże, jakie porty są słuchał. W tym przykładzie nasłuchuje port 2222
zarówno interfejsów IPv4, jak i IPv6 na moim komputerze.
netstat
został on przestarzały na korzyść ss
.