Список портов, пересылаемых мной из ssh?

Если я подключаюсь к серверу следующим образом:

JP_PORT=$(shuf -i 8895-9100 -n 1)
TB_PORT=$(shuf -i 6010-6200 -n 1)
ssh -Y -L ${JP_PORT}:127.0.0.1:${JP_PORT} -L ${TB_PORT}:127.0.0.1:${TB_PORT} <host>

Как только соединение установлено, есть ли какая-нибудь терминальная команда, которая будет возвращать список портов, которые я перенаправил?

3
задан 20 June 2018 в 04:12

2 ответа

Можно перечислить через lsof

sudo lsof -i -n 

Можно использовать grep для фильтрации результатов

sudo lsof -i -n  | grep ssh
4
ответ дан 1 December 2019 в 15:21

Если достаточно перечислить только переданные соединения, которые на самом деле используются, и если Ваша сессия является интерактивной (как в Вашем случае), можно использовать ~# Escape в рамках ssh сессии. Просто тип вводит ~#.

$ ssh -L1234:localhost:22 localhost
seb@localhost's password: 
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-23-generic x86_64)
$ ~#
The following connections are open:
  #2 client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
  #3 direct-tcpip: listening port 1234 for localhost port 22, connect from 127.0.0.1 port 37238 to 127.0.0.1 port 1234 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)

Это также перечислит передачи, которые были добавлены позже в рамках сессии с помощью команд Escape и таким образом не появляются на командной строке.

Попробовать ~? для других полезных команд в ssh сессии. См. также раздел по СИМВОЛАМ ESC в ssh странице руководства.

2
ответ дан 1 December 2019 в 15:21

Другие вопросы по тегам:

Похожие вопросы: