Как я могу определить процесс для того, что слушает в сети в Linux?

534
Jack

Когда я использую netstat -tup, он показывает процессы только для некоторых. Есть другие порты, которые просто имеют - для PID, так как я узнаю, какой процесс прослушивает эти порты?

4

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

1
nik

Когда вы выводите этот список, для строк, которые не имеют имени процесса, можете ли вы проверить состояние сокета tcp?

Если это закрывающий сокет, возможно, процесс отключился, и стек TCP может просто очищать соединение.

Во-вторых, вы запускаете netstatкоманду с rootправами?
Если у вас нет прав на процесс, его имя не будет указано.
На самом деле, если это произойдет, большинство версий netstat покажут предупреждение об этом перед выводом вывода.

Запуск с правами root показывает все. Спасибо Почему я могу видеть процессы с помощью ps aux, но не с помощью netstat? Jack 14 лет назад 0
@Jack Обычный пользователь может видеть все прослушивающие порты и все запущенные процессы, но не может видеть, какой процесс использует какие порты. (`ps` не нуждается в этой информации.) grawity 14 лет назад 0
0
Bryce

То, что вы также можете сделать, это использовать lsof.

Допустим, вы хотите знать все процессы, которые используют порт 80, вы можете набрать:

lsof -i :80 

И получите список процессов, которые прослушивают / используют порт 80. А также имя программы и пользователя.

Ах, спасибо. Я не знал, что смогу использовать lsof для этого. Jack 14 лет назад 0