Я хочу увидеть, какой порт, например, прослушивает 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
Вы также можете использовать любой стандартный инструмент обработки текста, чтобы получить только желаемую информацию.