Состояние порта может быть open, filtered, closed, или unfiltered.
Говорят, что порт открыт, если приложение на целевой машине прослушивает соединения / пакеты на этом порту.
В этой статье мы объясним четыре способа проверки открытых портов, а также покажем вам, как найти, какое приложение прослушивает какой порт в Linux.
1. Использование команды Netstat
Netstat – широко используемый инструмент для запроса информации о сетевой подсистеме Linux.
Вы можете использовать его для вывода всех открытых портов следующим образом:
$ sudo netstat -ltup
Флаг -l указывает netstat выводить все прослушивающие сокеты, -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 [На Debian/Ubuntu] $ sudo yum install nmap [На CentOS/RHEL] $ sudo dnf install nmap [На Fedora 22+]
Чтобы отсканировать все открытые / прослушивающие порты в вашей Linux-системе, выполните следующую команду (это займет много времени для завершения).
$ sudo nmap -n -PN -sT -sU -p- localhost
4. Использование команды lsof
Конечным инструментом, который мы рассмотрим для запросов к открытым портам, является команда lsof, которая используется для вывода открытых файлов в Linux.
Поскольку все в Unix / Linux -файлы , открытым файлом может быть поток или сетевой файл.
Чтобы перечислить все интернет-файлы и сетевые файлы, используйте опцию -i.
Обратите внимание, что эта команда показывает сочетание имен служб и числовых портов.
$ sudo lsof -i
Чтобы узнать, какое приложение прослушивается на определенном порту, запустите lsof в этой форме.
$ sudo lsof -i :80