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


139

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


3
В Windows команда выглядит так: netstat -anb
djangofan

Ответы:


144

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

lsof -i tcp:80

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

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

sudo netstat -nlp

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


2
lsof -i | grep {username}также очень полезно, то естьlsof -i | grep apache
LawrenceC

1
Для всех, кто интересуется -n: не разрешать имена, -lотображать сокеты прослушивающего сервера, -pотображать PID / имя программы для сокетов.
yellavon

Я обычно добавляю -Pк lsof -i tcp:$PORTNUMBERтак, чтобы порт был напечатан мне как число.
Дж.

9
netstat -lp

4
на Mac вы должны добавить опцию протокола к -p. так что-то вроде: netstat -lp tcp.
vrish88

8

Я использую "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))

2

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

lsof -i :<port_number>

пример:

lsof -i :8080

Спасибо за попытку помочь. Эта команда была упомянута в принятом ответе. Если у вас есть что-то новое, пожалуйста, отредактируйте свой пост.
Бен Н
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.