Какие процессы используют какие порты в Unix? - PullRequest
34 голосов
/ 24 сентября 2008

Мне нужно выяснить, какие порты подключены к каким процессам на Unix-машине (HP Itanium). К сожалению, lsof не установлен, и я не могу его установить.

Кто-нибудь знает альтернативный метод? Довольно длительный сеанс поиска в Google ничего не дал.

Ответы [ 9 ]

43 голосов
/ 24 сентября 2008

netstat -l (при условии, что он поставляется с этой версией UNIX)

28 голосов
/ 24 сентября 2008

Учитывая (почти) все в Unix это файл, и lsof выводит список открытых файлов ...

Linux: netstat -putan or lsof | grep TCP

OSX: lsof | grep TCP

Другие Unixen: lsof way ...

13 голосов
/ 24 сентября 2008
netstat -pln

РЕДАКТИРОВАТЬ: только linux, в других системах UNIX netstat может не поддерживать все эти параметры.

10 голосов
/ 26 сентября 2008

Предполагается, что это HP-UX? А как насчет Ptools - они у вас установлены? Если это так, вы можете использовать «pfiles», чтобы найти порты, используемые приложением:

pfiles печатает информацию обо всех открытых файловых дескрипторах процесса. Если дескриптор файла соответствует файлу, то pfiles печатает fstat (2) и fcntl (2) информация.

Если дескриптор файла соответствует сокету, то pfiles печатает сокет связанная информация, такая как тип сокета, семейство сокетов и семейство протоколов.

В случае семейства гнезд AF_INET и AF_INET6 информация о хост-узел также печатается.

для f в $ (ps -ex | awk '{print $ 1}'); сделать эхо $ F; файлы $ f | grep PORTNUM; сделано

переключить PORTNUM для номера порта. :) может быть ребенок pid, но достаточно близко, чтобы определить проблемное приложение.

6 голосов
/ 24 сентября 2008
netstat -ln | awk '/^(tcp|udp)/ { split($4, a, /:/); print $1, a[2]}' | sort -u

дает вам активные порты TCP / UDP. Затем вы можете использовать порты с fuser -n tcp или fuser -n udp в качестве пользователя root и предположить, что fuser является GNU fuser или имеет аналогичные параметры.

Если вам нужна дополнительная помощь, дайте мне знать.

2 голосов
/ 24 сентября 2008

Попробуйте pfiles PID, чтобы показать все открытые файлы для процесса.

1 голос
/ 17 июня 2015

Какой процесс использует порт в Unix;

1. netstat -Aan | grep port

root> netstat -Aan | grep 3872

output> f1000e000bb5c3b8 tcp 0 0 * .3872 . LISTEN

2. rmsock f1000e000bb5c3b8 tcpcb

output> Сокет 0xf1000e000bb5c008 удерживается процессом 13959354 (Java).

3. ps -ef | grep 13959354

0 голосов
/ 12 марта 2019

Если вы хотите знать все прослушивающие порты вместе с его данными : локальный адрес, внешний адрес и состояние, а также идентификатор процесса (PID). Вы можете использовать следующую команду для этого в Linux.

 netstat -tulpn
0 голосов
/ 31 января 2019

Я использую эту команду:

netstat -tulpn | grep LISTEN

У вас может быть чистый вывод, который показывает идентификатор процесса и порты, которые прослушивают

...