Як дізнатися переадресацію ssh-портів активістів


12

Я налаштував ~/.ssh/configбагато переадресацій портів для VNC з різними портами для кожного сервера.

Чи є команда, яка може допомогти мені дізнатися, на який порт пересилається, коли я відкриваю сеанс SSH?

Відповіді:


13

Якщо ви скористаєтеся -vопцією, sshвін покаже вам, що ви пересилаєте (але він також покаже вам купу інших повідомлень про налагодження):

ssh -v -L2222:localhost:22 remotehost

Покаже вам:

...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...

І тоді, коли ви підключені до цієї віддаленої оболонки, ви можете ввести спеціальну послідовність клавіш:

~#

який перелічить такі з'єднання:

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)

Однак зауважте, що це буде лише перелічені перенаправлені порти, які фактично використовуються іншою програмою (у цьому випадку я щойно робив telnet localhost 2222на своїй локальній машині, щоб переправити його remotehost.

Якщо у вас немає з'єднань, які зараз пересилаються, ви все одно можете бачити, що ваша команда ssh прослуховує локально, використовуючи таку netstatкоманду:

% 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Команда буде також , ймовірно , список інших речей, але то , що ви хочете подивитися на виході є PID/Programстовпець , щоб шукати sshпроцеси, і Local Addressколона , яка покаже вам , які порти слухають. У цьому прикладі він прослуховується port 2222як для інтерфейсів IPv4, так і для IPv6 на моїй машині.


1
Дякую за цю відповідь. Моєю метою було додати скрипт у /etc/update-motd.d/, щоб відобразити порти, на які перенаправлено. Але з командою ~ # у мене на сервер перенаправлені лише порти. І метою було відображення (частина виводу ssh -v): Локальні з'єднання до LOCALHOST: 5901 переадресовано на віддалену адресу 127.0.0.1:5900 Локальне прослуховування переадресації на :: 1 порт 5901. Здається, неможливо відобразити ТІЛЬКИ цей клієнт з двох рядків сторона.
slc66

Для людей, які приїжджають сюди у 2020 році ++: netstatбуло знято на користь ss.
ScumCoder
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.