Какой процесс занимает порт

Какой процесс занимает порт

https://t.me/sysadminof

Частенько появляется необходимость узнать, какой из запущенных процессов занимает определенный сетевой порт. Особенно это актуально если порт не относится к числу стандартных, то есть 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. Удачи.


Report Page