netstat показывает номер порта вместо имени процесса

netstat показывает номер порта вместо имени процесса

Я хочу увидеть, какой порт, например, прослушивает postgresql, поэтому я использую:

netstat -l

Но это попытка поступить умно и вывести имя процесса вместо порта:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:postgresql    *:*                     LISTEN     
tcp        0      0 *:31416                 *:*                     LISTEN   

Как определить, какой порт прослушивает тот или иной процесс, с помощью netstat?

решение1

netstatпреобразует порт (по умолчанию) в имя службы, он получает это сопоставление из /etc/servicesфайла.

Итак, вы можете получить порт отсюда /etc/services:

grep '^postgresql' /etc/services

Или лучше добавить -nопцию, чтобы netstatпредотвратить любое разрешение (хоста, порта, имени хоста) и опубликовать вывод в числах:

netstat -nl

Вы можете ограничить интерфейс поиска, добавив -tопцию для отображения только прослушиваемых TCP-сокетов (аналогично -uдля UDP, -xдля доменных сокетов UNIX):

netstat -nlt

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

Связанный контент