Список открывает туннели SSH

Я использую много туннелей SSH к различным серверам на моей машине Linux (для туннелирования к базам данных, веб-серверы и т.д.), и было бы действительно удобно просмотреть список текущих открытых туннелей с помощью сценария оболочки.

Я могу определить локальные соединения через grep на netstat вроде:

netstat -n --protocol inet | grep ':22'

но это не покажет мне удаленный порт его связанное с (и очевидно включает стандартные соединения SSH, которые не туннелированы),

ОБНОВЛЕНИЕ: ответы прекрасны, но не показывают мне удаленный порт, с которым я подключен. Например, я часто имею туннель до mysql, говорю localhost:3308, отображающийся на:3306 на сервере. Обычно я могу предположить локальными портами, которые я выбрал, но был бы хорош иметь доступ к обоим.

Какие-либо идеи?

68
задан 23.02.2011, 12:35

2 ответа

если Вы только хотите перечислить туннели, созданные ssh:

% sudo lsof -i -n | egrep '\<ssh\>'
ssh  19749  user  3u  IPv4 148088244   TCP x.x.x.x:39689->y.y.y.y:22 (ESTABLISHED)
ssh  19749  user  4u  IPv6 148088282   TCP [::1]:9090 (LISTEN)
ssh  19749  user  5u  IPv4 148088283   TCP 127.0.0.1:9090 (LISTEN)

(который был бы-L 9090:localhost:80 туннель),

если Вы хотите видеть туннели / связи, установленные с a sshd:

 % sudo lsof -i -n | egrep '\<sshd\>'
sshd  15767  root  3u  IPv4 147401205   TCP x.x.x.x:22->y.y.y.y:27479 (ESTABLISHED)
sshd  15842  user  3u  IPv4 147401205   TCP x.x.x.x:22->y.y.y.y:27479 (ESTABLISHED)
sshd  15842  user  9u  IPv4 148002889   TCP 127.0.0.1:33999->127.0.0.1:www (ESTABLISHED)
sshd  1396   user  9u  IPv4 148056581   TCP 127.0.0.1:5000 (LISTEN)
sshd  25936  root  3u  IPv4 143971728   TCP *:22 (LISTEN)

ssh-демон слушает на порте 22 (последняя строка), 2 подпроцесса порождены (сначала 2 строки, вход в систему 'пользователя'), туннель-R, созданный на порте 5000 и туннель-L который вперед порт от моей (локальной) машины до localhost:80 (www).

75
ответ дан 07.12.2019, 08:12
netstat -tpln | grep ssh
  • t: TCP
  • p: покажите процесс
  • l: слушание
  • n: числовые значения

Править: пример для комментария @akira:

(header added, tested on Debian wheezy)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:1443          0.0.0.0:*               LISTEN      4036/ssh        

Который может быть считан как: SSH (не SSHd) слушает локальный порт TCP 1443.

7
ответ дан 07.12.2019, 08:12

Теги

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