Если нужно определить, какая программа слушает порт на сервере, удобно запустить netstat с таким набором ключей:
netstat -punta
Пример вывода команды netstat -punta
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 13364/dnsmasq tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1388/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 903/sshd tcp 0 0 0.0.0.0:59002 0.0.0.0:* LISTEN 30644/kvm tcp 0 0 0.0.0.0:33002 0.0.0.0:* LISTEN 23829/rinetd tcp 0 0 127.0.0.1:5900 0.0.0.0:* LISTEN 17410/kvm tcp 0 52 177.19.4.112:22 82.117.248.74:63222 ESTABLISHED 12922/0 tcp 0 0 177.19.4.112:59002 217.12.196.118:4300 ESTABLISHED 30644/kvm tcp6 0 0 ::1:53 :::* LISTEN 13364/dnsmasq tcp6 0 0 :::22 :::* LISTEN 903/sshd tcp6 61 0 2a01:4f8:150:5163:35222 2a01:4f8:b15:1000::4:21 CLOSE_WAIT 2934/curlftpfs tcp6 61 0 2a01:4f8:150:5163:45023 2a01:4f8:b15:1000::4:21 CLOSE_WAIT 2934/curlftpfs udp 0 0 127.0.0.1:53 0.0.0.0:* 13364/dnsmasq udp 0 0 192.168.122.1:53 0.0.0.0:* 1388/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 1388/dnsmasq udp6 0 0 ::1:53 :::* 13364/dnsmasq
Параметры netstat
-p, —program
Покажет PID и имя программы, к которой привязан порт
-a, —all
Покажет все порты — которые слушает сервер. Без этого параметра netstat покажет только порты, с которыми есть активные соединения
—numeric , -n
Отобразит адреса и номера портов в числовом формате. По-умолчанию netstat будет отображать название домена вместо IP и название сервиса вместо номера порта.
Сравните:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:domain *:* LISTEN 13364/dnsmasq
и
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 13364/dnsmasq
—udp|-u, —tcp|-t
Параметры udp и tcp ограничивают netstat отображением соединений только для этих сетевых протоколов. Если не использовать их, то netstat также покажет соединения, использующие локальных сокеты.
Netstat для Windows
Аналогичная команда netstat для Windows будет выглядеть так:
netstat -nabo
Параметр -p в netstat для Windows имеет другое значение — он позволяет выбрать протокол. Для отображения PID нужно использовать -o, а если вам нужно название программы, участвующей в установке соединения, используйте параметр -b.
Чтобы отобразить соединения только одного из tcp или udp протоколов, можно использовать уточняющий параметр -p с названием протокола.
netstat -nabop udp
Данная команда выведет все соединения для UDP протокола, с указанием PID и исполняемого файла, участвующего в создании соединения: