Вопрос: Поиск процесса, использующего определенный порт в Linux


Я хотел бы узнать, какой процесс в настоящее время использует определенный порт в Linux. Есть какой-либо способ сделать это?


126
2017-09-17 18:52


Источник


В Windows команда: netstat -anb - djangofan


Ответы:


У вас есть несколько вариантов:

lsof -i tcp:80

предоставит вам список процессов, использующих порт tcp 80.

С другой стороны,

sudo netstat -nlp

предоставит вам все открытые сетевые подключения.


129
2017-09-17 19:03



lsof -i | grep {username} также очень полезно, т.е. lsof -i | grep apache - LawrenceC
@nagul: Вы, сэр, герой. - Abe Petrillo
Для кого-то, -n : не разрешать имена, -l : отображение сокетов для прослушивающего сервера, -p : отображение PID / название программы для сокетов. - yellavon
Я обычно добавляю -P в lsof -i tcp:$PORTNUMBER так что порт будет отпечатан обратно ко мне как число. - js.


netstat -lp

9
2017-09-17 18:54



на mac вам нужно добавить опцию протокола в -p. так что-то вроде: netstat -lp tcp. - vrish88
В linux -p перечислены процессы, которыми владеет сокет. - Jürgen Strobel


Я использую «CentOS 7 минимальный», который netstat ни lsof, Но у многих дистрибутивов Linux есть команда статистики сокета (т. Е. ss).

Вот пример выполнения:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))

6
2017-10-29 20:54





В Linux, чтобы найти процесс, выполняющийся на порту, выполните следующие действия:

lsof -i :<port_number>

пример:

lsof -i :8080

2
2018-01-05 19:06



Спасибо, что пытались помочь. Эта команда была упомянута в принятом ответе. Если у вас есть что-то новое, отредактируйте свой пост. - Ben N