Частенько появляется необходимость узнать, какой из запущенных процессов занимает определенный сетевой порт. Особенно это актуально если порт не относится к числу стандартных, то есть 22,21,80 и т.д. и так понятно кто занимает (
SSH,
FTP,
HTTP), тем более что в выдаче
netstat, это написано после PID процесса, но бывают исключения.
Например, смотрим вывод
netstat'а
root@debian8:~/# netstat -tupln
Active Internet connections (only servers)
..............................
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1548/0
..............................
Порт 6010, имя процесса не известно, зато известен PID процесса, это 1548. По номеру PID смотрим что это за процесс:
root@debian8:~/MITMf # ps -p 1548
PID TTY TIME CMD
1548 ? 00:00:00 sshd
Ну или можно более подробно, используя
lsof:
root@debian8:~/MITMf # lsof -p 1548
..........
sshd 1548 root txt REG 8,1 787080 271442 /usr/sbin/sshd
..........
sshd 1548 root 7u IPv6 20576 0t0 TCP localhost:6010 (LISTEN)
..........
Порт 6010 используется сервисом openssh для X11 forwarding (проброска графических рабочих столов). Если этот функционал не используется, лучше отключить его в файле конфигурации sshd сервера
/etc/ssh/sshd_config
X11Forwarding no
после чего нужно перезапустить и сервис и переподключиться.
В windows это можно сделать так,жмем
WIN+R, вписываем
cmd, жмем
Ok, далее уже в командной строке
netstat -an
..........
TCP 0.0.0.0:10001 0.0.0.0:0 LISTENING 1592
..........
PID процесса указан в последней колонке. Далее выполняем команду
tasklist | findstr "1592"
tonido.exe 1592 Console 1 25 960 КБ
Ну и видим кто у нас тут повис на порту 10001.
Удачи.