Какие порты прослушиваются в Linux
Порт может быть в четырёх состояниях: открытым, отфильтрованным, закрытым или нефильтрованным. Когда говорят, что порт открыт, это означает что приложение на целевой машине прослушивает соединения/пакеты на этом порту.
В этой статье мы объясним четыре способа проверки открытых портов, а также покажем вам, как найти, какое приложение прослушивает каждый конкретный порт в Linux.
1. Использование команды Netstat
Netstat — широко используемый инструмент для сбора информации о сетевой подсистеме Linux. Вы можете использовать его для вывода всех открытых портов следующим образом:
$ sudo netstat -ltup
Флаг -l указывает netstat вывести все прослушивающие сокеты (сокет это ip + порт), -t показывает все TCP-соединения, -u отображает все соединения UDP, а -p позволяет выводить имя приложения/программы, прослушивающее порт.

Чтобы выводить числовые значения (номер порта), а не имена служб, добавьте флаг -n.
$ sudo netstat -lntup

Вы также можете использовать команду grep, чтобы узнать, какое приложение прослушивает конкретный порт, например:
$ sudo netstat -lntup | grep "nginx"

В качестве альтернативы вы можете указать порт и найти приложение:
$ sudo netstat -lntup | grep ":80"

2. Использование команды ss
ss — еще один полезный инструмент для отображения информации о сокетах. Он в своём использовании похож на netstat. Следующая команда выведет все порты прослушивающие соединения TCP и UDP в числовом формате.
$ sudo ss -lntu

3. Использование команды Nmap
Nmap — мощный и популярный инструмент для исследования сети и сканирования портов. Чтобы установить nmap в вашу систему, используйте диспетчер пакетов по умолчанию:
$ sudo apt install nmap [On Debian/Ubuntu]
$ sudo yum install nmap [On CentOS/RHEL]
$ sudo dnf install nmap [On Fedora 22+]
Чтобы «отсканировать» все открытые/прослушивающие порты в вашей Linux-системе, выполните следующую команду (она займет много времени для своего выполнения).
$ sudo nmap -n -PN -sT -sU -p- localhost
4. Использование команды lsof
Конечным инструментом, который мы рассмотрим для поиска открытых портов, является команда lsof.
Чтобы вывести все интернет-файлы и сетевые файлы, используйте опцию -i. Обратите внимание, что эта команда показывает сочетание имен служб и числовых портов.
$ sudo lsof -i

Чтобы узнать, какое приложение прослушивается на определенном порту, запустите lsof в таком виде:
$ sudo lsof -i :80

На этом всё! В этой статье мы объяснили четыре способа узнать какие порты прослушиваются в Linux. Мы также показали, как проверить, какие процессы связаны с конкретными портами.