Сервер 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
можно найти здесь