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

144194
Evan Fosmark

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

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

4 ответа на вопрос

134
nagul

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

lsof -i tcp:80 

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

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

sudo netstat -nlp 

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

`lsof -i | grep `также очень полезен, т.е.` lsof -i | grep apache` LawrenceC 13 лет назад 2
Для всех, кто интересуется, `-n`: не разрешать имена,` -l`: отображать сокеты прослушивающего сервера, `-p`: отображать PID / имя программы для сокетов. yellavon 10 лет назад 1
Я обычно добавляю `-P` к` lsof -i tcp: $ PORTNUMBER`, чтобы порт выводился мне как число. js. 9 лет назад 0
9
Nick
netstat -lp 
на Mac вы должны добавить опцию протокола к -p. так что-то вроде: netstat -lp tcp. vrish88 14 лет назад 4
В linux -p перечисляет процесс, владеющий сокетом. Jürgen Strobel 13 лет назад 0
7
Alexandr

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

In Linux, To find a process running on a port, do below:

lsof -i :<port_number> 

example:

lsof -i :8080 
Спасибо за попытку помочь. Эта команда была упомянута в принятом ответе. Если у вас есть что-то новое, пожалуйста, отредактируйте свой пост. Ben N 8 лет назад 0

Похожие вопросы