Проверка портов
![](https://netdevops.ru/media/posts/114/LinuxFriendly-Logo.gif)
Проверить порты можно с помощью следующих команд:
- nc: Netcat – простая утилита Unix, которая считывает и записывает данные через сетевые соединения, используя протокол TCP или UDP.
- nmap: Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей.
- telnet: Утилита telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.
- netstat: Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения.
- ss: Утилита ss - это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux
- lost: Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые.
Как проверить, открыт ли порт на удаленной системе Unix с помощью команды nc (netcat)?
Netcat – это простая утилита Unix, которая читает и записывает данные через сетевые соединения, используя протокол TCP или UDP. Она разработана, чтобы быть надежным «внутренним» инструментом, который может использоваться напрямую или легко управляться другими программами и скриптами.
В то же время это многофункциональный инструмент для отладки и исследования сети, поскольку он может создавать практически любые типы соединений, которые вам понадобятся, и имеет несколько интересных встроенных возможностей.
Netcat имеет три основных режима работы. Это режим подключения, режим прослушивания и туннельный режим. Общий синтаксис для nc (netcat):
$ nc [-options] [HostName or IP] [PortNumber]
Проверяем открыт ли 80 порт на сервере
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-18.47.23.png)
если порт закрыт мы увидим вот такой ответ
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-18.51.17.png)
Как проверить, открыт ли порт на удаленной системе Unix с помощью команды nmap?
Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает на отдельных хостах.
Хотя Nmap обычно используется для аудита безопасности, многие системные и сетевые администраторы считают его полезным для рутинных задач, таких как инвентаризация сети, управление расписаниями обновления служб и мониторинг времени работы хоста или службы.
Общий синтаксис для nmap:
$ nmap [-options] [HostName or IP] [-p] [PortNumber]
проверим открыт ли 22 порт на сервере, если открыт увидим вот этот ответ
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-18.54.45.png)
проверим 349 порт, если он закрыт увидим следующий ответ
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-18.56.36.png)
Nmap'ом можно проверить открытые порты локально
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.27.19.png)
для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:
$ wget -O - -q eth0.me
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.32.39.png)
Дальше запускаем сканирование:
$ Nmap 79.134.220.162
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.32.28-1.png)
Как проверить, открыт ли порт на удаленной системе Unix с помощью команды telnet?
Команда telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET. Общий синтаксис для telnet:
$ telnet [HostName or IP] [PortNumber]
проверим открыт ли 22 порт telnet'ом, если открыт увидим следующий ответ
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.01.31.png)
если закрыт увидим ответ
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.02.16.png)
Как проверить, открытые порты с помощью утилиты netstat?
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
- -l или --listening - посмотреть только прослушиваемые порты;
- -p или --program - показать имя программы и ее PID;
- -t или --tcp - показать tcp порты;
- -u или --udp показать udp порты;
- -n или --numeric показывать ip адреса в числовом виде.
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
$ netstat -tulpn
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.15.40.png)
Как проверить, открытые порты с помощью утилиты ss?
Утилита ss - это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения. Опции у неё такие же:
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.18.19-1024x216.png)
Можно вывести только процессы, работающие на 80-том порту:
$ ss -tulpn | grep 80
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.20.42-1024x67.png)
Как проверить, открытые порты с помощью утилиты lsof?
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P:
$ lsof -i -P
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.23.11.png)
Ещё один пример, смотрим какие процессы работают с портом 80:
$ lsof -i -P | grep 80
![](https://netdevops.ru/media/posts/114/Снимок-экрана-2020-12-24-в-19.24.23.png)