SSH-туннель, как узнать информацию о порте сервера после туннелирования

SSH-туннель, как узнать информацию о порте сервера после туннелирования

Я пытаюсь найти в Google способ добиться этого, но не могу его найти.

По сути, я создал SSH-туннель к нескольким удаленным хостам через хост-бастион с помощью такой команды.

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

Теперь, как узнать детали соединения, сопоставленные с локальным портом, когда туннель активен?

т.е. я хочу иметь возможность создать список такой формы.

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

Является ли это возможным?

решение1

Существует простое решение, но оно перечислит тольков настоящее время активентуннельные соединения: используется последовательность выхода ssh~#

Если туннель не используется, он не будет показан.

Из справки (показано с ~? внутри активного ssh-соединения):

~# - список перенаправленных соединений

Пример вывода будет следующим:

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)

На стороне клиента вы можете получить представление об открытых туннелях, даже неактивных, перечислив открытые им TCP-сокеты:

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

Хотя это и не дает полного ответа на ваш вопрос, но может стать отправной точкой.

Связанный контент