Сервер SSH - Получить pid порта пересылки процесса sshd #N

Я использую сервер (Ubuntu Server 14.04), который позволяет клиентам создавать ssh-туннель со своего устройства (Raspberry Pi), чтобы они могли получить доступ к своему веб-серверу из Интернета (в качестве средства для прохождения через NAT). Я могу получить список процессов, принадлежащих пользователю (который одинаков для всех устройств), используя ps -u username (этот пользователь запускает только sshd для переадресации портов), но я не могу отфильтровать эти процессы по порту, который они пересылают. Итак, вопрос в том, как я могу получить pid sshd, который перенаправляет порт #N?

1 ответ

Решение

Вы можете использовать lsof команда, так как все это файл в Linux.

Что-то вроде lsof -Pan -i | grep :PORT получит то, что вы просите. У него есть такой вывод, когда я запускаю его для порта 80 на моей машине:

Command    PID     USER     FD  TYPE  DEVICE SIZE/OFF NODE  NAME
nginx      1104     root    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1105 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1106 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1107 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1108 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)

Еще lsof можно найти здесь

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