Использование команды netstat для просмотра открытых портов

Netstat — одна из встроенных команд операционной системы Windows. В ее функциональность входит отображение состояния сети со всеми требуемыми деталями. Пользователь задействует встроенный синтаксис, чтобы отфильтровать результаты или задать дополнительные действия для этой утилиты. В рамках сегодняшнего материала мы бы хотели рассказать о доступных методах просмотра открытых портов с помощью этого стандартного инструмента.
Используем команду netstat для просмотра открытых портов
Портами называют натуральные числа, которые записываются в заголовках протоколов передачи данных (TCP, UDP и так далее). Они определяют процесс получения и передачи информации в рамках одного хоста и в большинстве случаев используются онлайн-программами для установки соединения. Просмотр открытых портов может понадобиться в случае определения работоспособности приложений или при стандартном мониторинге сети. Лучше всего с этим справится команда netstat, а ее активация доступна с применением разных аргументов.
Отображение всех подключений и ожидающих портов
Самый простой аргумент, применяемый к утилите netstat, имеет обозначение -a, и отвечает за вывод сведений обо всех активных подключениях их портов, которые ожидают соединения. Такая информация доступна к просмотру без применения прав администратора и выводится на экран следующим образом:
-
Поскольку рассматриваемая команда является консольной, потребуется запустить приложение, чтобы ее выполнить. Откройте меню «Пуск», найдите там «Командную строку» и запустите ее. О других методах перехода в консоль читайте в другом нашем материале по следующей ссылке.



Мониторинг производится в режиме реального времени, поэтому не все результаты будут доступны к просмотру сразу. Придется подождать немного времени, чтобы все они могли прогрузиться. Во время этого не закрывайте консоль, если не хотите прервать процесс, ведь при повторном запуске команды все начнется заново.
Постраничное отображение открытых портов
К сожалению, приведенный выше вариант отображает не все необходимые данные об открытых портах, поскольку выводит он только те параметры, которые на текущий момент находятся в состоянии LISTENING. К тому же там не указывались уникальные идентификаторы процессов (PID), что тоже играет важную роль во время определенного мониторинга. Потому советуем обратить внимание немного на другие аргументы.
-
В консоли пропишите netstat -aon | more и нажмите на Enter.





Теперь хотелось бы поговорить про используемые аргументы и значение увиденных параметров. Давайте сначала затронем знакомые буквы синтаксиса:
- -a — как известно, отображает сведения обо всех подключениях;
- -o — отвечает за включение колонки с идентификатором каждого адреса;
- -n — переводит адреса портов и их номера в числовой формат;
- more — постраничный вывод элементов.
Важно также уточнить и состояние портов, поскольку они могут являться открытыми, но на этот момент не использоваться или ожидать своего подключения. В колонке «Состояние» могут отображаться такие показатели:
- CLOSE_WAIT — подключение ожидает своего закрытия;
- CLOSED — подключение было успешно закрыто;
- ESTABLISHED — активная работа соединения;
- LISTENING — ожидается соединение или еще говорят: «Слушается порт»;
- TIME_WAIT — время ответа было превышено.
Эти объяснения должны разобраться помочь не только с составлением запросов для netstat, но и без проблем разобраться с полученной информацией.
Запись результатов в текстовый файл
Иногда требуется сохранить готовые результаты мониторинга в текстовый файл, чтобы выполнить дальнейшие действия, ведь копировать информацию прямо из консоли не всегда удобно, да и займет это намного больше времени, нежели просто указать дополнительный аргумент при вводе команды.
-
Напишите, например, netstat -aon | more или netstat — a , а затем добавьте > netstat.txt , что означает запись результатов в указанный файл (он будет создан в пользовательской папке). После ввода нажмите на Enter.



Поиск по содержимому
В случае необходимости отображения только подключений с определенными параметрами или адресами лучше всего использовать дополнительную команду find, которая перед выводом сведений произведет фильтрацию данных, и это освободит вас от надобности вручную искать каждый соответствующий пункт. Тогда полная консольная команда приобретает следующий вид:
-
Введите netstat -a | find /I «LISTENING» , что задаст параметр отображения только портов с состоянием LISTENING, аргумент /I при этом используется для отмены учета регистра символов.


Выше вы узнали о методах определения открытых портов через встроенную команду netstat. После этого можете приступить к работе с программами или пробросу других портов в случае необходимости. К слову, этой теме посвящен отдельный материал на нашем сайте. Перейдите по указанным ниже ссылкам, чтобы ознакомиться с подробными инструкциями.
Команда netstat всегда показывает правильные результаты, однако если хотите убедиться в открытости порта другим путем, рекомендуем задействовать специальные онлайн-сервисы, позволяющие справиться с поставленной задачей.
Мы рады, что смогли помочь Вам в решении проблемы.
Как проверить открытые порты в Linux (используемые порты)
How to Check for Listening Ports in Linux (Ports in use)
В этой статье объясняется , как узнать, какие услуги прослушивает порты с помощью netstat, ss и lsof команд. Инструкции применимы для всех операционных систем на базе Linux и Unix, таких как macOS.

При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе, а какое приложение прослушивает определенный порт.
Что такое открытый порт (порт прослушивания)
Сетевой порт идентифицируется его номером, соответствующим IP-адресом и типом протокола связи, таким как TCP или UDP.
Порт прослушивания — это сетевой порт, который прослушивает приложение или процесс, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Вы не можете иметь две службы, прослушивающие один и тот же порт на одном и том же IP-адресе.
Например, если вы используете веб-сервер Apache, который прослушивает порты, 80 и 443 вы пытаетесь установить Nginx, позднее не удастся запустить, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с netstat
netstat это инструмент командной строки, который может предоставить информацию о сетевых подключениях
Чтобы получить список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты и состояние сокета, используйте следующую команду:
Параметры, используемые в этой команде, имеют следующее значение:
- -t — Показать порты TCP.
- -u — Показать порты UDP.
- -n — Показать числовые адреса вместо разрешения хостов.
- -l — Показывать только порты прослушивания.
- -p — Показать PID и имя процесса слушателя. Эта информация отображается, только если вы запускаете команду от имени пользователя root или sudo .
Вывод будет выглядеть примерно так:
Важными столбцами в нашем случае являются:
- Proto — Протокол, используемый сокетом.
- Local Address — IP-адрес и номер порта, на котором слушает процесс.
- PID/Program name — PID и название процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, вы должны набрать:
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
Если вывод пуст, это означает, что ничего не прослушивает порт.
Вы также можете отфильтровать список на основе критериев, например, PID, протокола, состояния и т. Д.
netstat устарел и заменен на ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с ss
ss новый netstat . В нем отсутствуют некоторые netstat функции, но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном одинаковы, поэтому переход с netstat на ss не сложен.
Чтобы получить список всех прослушивающих портов ss , наберите:
Вывод почти такой же, как тот, о котором сообщили netstat :
Проверьте порты прослушивания с lsof
lsof это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все это файл. Вы можете думать о сокете как о файле, который пишет в сеть.
Чтобы получить список всех прослушивающих TCP-портов, lsof введите:
Используются следующие параметры:
- -n — Не конвертируйте номера портов в имена портов.
- -p — Не разрешайте имена хостов, показывайте числовые адреса.
- -iTCP -sTCP:LISTEN — Показывать только сетевые файлы с состоянием TCP LISTEN.
Большинство имен выходных столбцов говорят сами за себя:
- COMMAND , PID , USER — имя, ИДП и пользователь , запустив программу , связанную с портом.
- NAME — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например, порт, который 3306 вы используете:
Выходные данные показывают, что порт 3306 используется сервером MySQL:
Для получения дополнительной информации посетите страницу руководства lsof и прочитайте обо всех других мощных опциях этого инструмента.
Вывод
Мы показали вам несколько команд, которые вы можете использовать для проверки того, какие порты используются в вашей системе, и как найти процесс, который прослушивает определенный порт.
Команда NETSTAT — отображение статистики сетевых соединений
    Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам.
Формат командной строки:
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]
Параметры командной строки:
-a — Отображение всех подключений и ожидающих портов.
-b — Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках [], сверху — компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
-e — Отображение статистики Ethernet. Может применяться вместе с параметром -s.
-f — Отображение полного имени домена (FQDN) для внешних адресов.
-n — Отображение адресов и номеров портов в числовом формате.
-o — Отображение кода (ID) процесса каждого подключения.
-p протокол — Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Используется вместе с параметром -s для отображения статистики по протоколам. Допустимые значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
-r — Отображение содержимого таблицы маршрутов.
-s — Отображение статистики протокола. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных.
-t — Отображение текущего подключения в состоянии переноса нагрузки с процессора на сетевой адаптер при передаче данных ( «offload» ).
-v — Подробный вывод информации, если это возможно.
интервал — Повторный вывод статистических данных через указанный интервал в секундах. Для прекращения вывода данных нажмите клавиши CTRL+C. Если параметр не задан, сведения о текущей конфигурации выводятся один раз.
На практике, утилиту netstat.exe удобно использовать в цепочке с командами постраничного вывода ( more ), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах вывода ( find ).
netstat -a | more — отобразить все соединения в постраничном режиме вывода на экран.
netstat -a -n| more — то же, что и в предыдущем примере, но с отображением номеров портов и IP-адресов в числовом формате. В отличие от предыдущего примера, команда netstat с параметром -t отрабатывает намного быстрее.
netstat -a -f | more — то же, что и в предыдущем примере, но с отображением полных DNS-имен узлов, участвующих в соединениии.
netstat -a > C:\netstatall.txt — отобразить все соединения с записью результатов в файл C:\netstatall.txt.
netstat -a | find /I «LISTENING» — отобразить все соединения со статусом LISTENING, т.е. отобразить список сетевых интерфейсов и портов, ожидающих входящие соединения ( «слушаемых» портов ). Ключ /I в команде find указывает, что при поиске текста, не нужно учитывать регистр символов.
netstat -a | find /I «listening» > C:\listening.txt — отобразить все соединения со статусом LISTENING с записью результатов в файл C:\listening.txt.
Пример отображаемой информации:
LISTENING
LISTENING
ESTABLISHED
ESTABLISHED
Локальный адрес — локальный IP-адрес участвующий в соединении или связанный со службой, ожидающей входящие соединения (слушающей порт). Если в качестве адреса отображается 0.0.0.0 , то это означает — «любой адрес», т.е в соединении могут использоваться все IP-адреса существующие на данном компьютере. Адрес 127.0.0.1 — это петлевой интерфейс, используемый в качестве средства IP протокола для взаимодействия между процессами без реальной передачи данных.
Внешний адрес Внешний IP-адрес, участвующий в создании соединения.
Состояние — состояние соединения. Состояние Listening говорит о том, что строка состояния отображает информацию о сетевой службе, ожидающей входящие соединения по соответствующему протоколу на адрес и порт, отображаемые в колонке «Локальный адрес «. Состояние ESTABLISHED указывает на активное соединение. В колонке «Состояние» для соединений по протоколу TCP может отображаться текущий этап TCP-сессии определяемый по обработке значений флагов в заголовке TCP — пакета (Syn, Ask, Fin . ). Возможные состояния:
CLOSE_WAIT — ожидание закрытия соединения.
CLOSED — соединение закрыто.
ESTABLISHED — соединение установлено.
LISTENING — ожидается соединение (слушается порт)
TIME_WAIT — превышение времени ответа.
Имя программного модуля, связанного с данным соединением отображается, если задан параметр -b в командной строке при запуске netstat.exe.
netstat -a -b — получить список всех сетевых соединений и связанных с ними программ.
TCP 192.168.0.3:3389 89.22.52.11:5779 ESTABLISHED
CryptSvc
[svchost.exe]
В данном примере отображается информация о соединении, в создании которого участвуют программные компоненты CryptSvc и svchost.exe .
netstat -ab — параметры командной строки можно объединять. Параметр -ab эквивалентен -a -b
netstat -e — получить статистические данные для обмена по протоколу Ethernet. Отображается суммарные значения принятых и полученных байт для всех сетевых адаптеров Ethernet.
netstat -e -v — кроме суммарной статистики, отображается информация об обмене данными через отдельные сетевые интерфейсы.
netstat -e -s — дополнительно к статистике Ethernet, отображается статистика для протоколов IP , ICMP , TCP , UDP
| Получено пакетов Получено ошибок в заголовках Получено ошибок в адресах Направлено датаграмм Получено неизвестных протоколов Отброшено полученных пакетов Доставлено полученных пакетов Запросов на вывод Отброшено маршрутов Отброшено выходных пакетов Выходных пакетов без маршрута Требуется сборка Успешная сборка Сбоев при сборке Успешно фрагментировано датаграмм Сбоев при фрагментации датаграмм Создано фрагментов |
= 10877781 = 0 = 27307 = 0 = 0 = 448 = 11384479 = 11919871 = 0 = 1517 = 6 = 0 = 0 = 0 = 5918 = 0 = 11836 |
| Сообщений Ошибок ‘Назначение недостижимо’ Превышений времени Ошибок в параметрах Просьб «снизить скорость» Переадресовано Ответных пакетов Эхо-сообщений Отметок времени Ответы на отметки времени Масок адресов Ответов на маски адресов Маршрутизатор Маршрутизатор |
Получено 11892 0 10461 613 0 0 0 818 0 0 0 0 0 0 0 |
Отправлено 1374 0 528 0 0 0 0 0 846 0 0 0 0 0 0 |
Статистика TCP для IPv4
| Активных открыто Пассивных открыто Сбоев при подключении Сброшено подключений Текущих подключений Получено сегментов Отправлено сегментов Повторно отправлено сегментов |
= 225128 = 12675 = 108237 = 1871 = 42 = 8606912 = 8138192 = 403595 |
Статистика TCP для IPv6
| Активных открыто Пассивных открыто Сбоев при подключении Сброшено подключений Текущих подключений Получено сегментов Отправлено сегментов Повторно отправлено сегментов |
= 64 = 64 = 10164 = 4 = 4 = 3341 = 3341 = 0 |
Статистика UDP для IPv4
| Получено датаграмм Отсутствие портов Ошибки при получении Отправлено датаграмм |
= 4714809 = 448 = 0 = 5332065 |
Статистика UDP для IPv6
| Получено датаграмм Отсутствие портов Ошибки при получении Отправлено датаграмм |
= 419 = 0 = 0 = 391 |
netstat -s -p icmp — получить статистику только по протоколу ICMP
Пример отображаемых статистических данных:
| Сообщений Ошибок ‘Назначение недостижимо’ Превышений времени Ошибок в параметрах Просьб «снизить скорость» Переадресовано Ответных пакетов Эхо-сообщений Отметок времени Ответы на отметки времени Масок адресов Ответов на маски адресов Маршрутизатор Маршрутизатор |
Получено 12092 0 10654 619 0 0 0 819 0 0 0 0 0 0 0 |
Отправлено 1375 0 528 0 0 0 0 0 847 0 0 0 0 0 0 |
Для циклического опроса состояния сетевых соединений используется запуск программы с указанием интервала вывода статистических данных в секундах.
netstat -e 3 — отображать статистику по Ethernet с интервалом 3 секунды.
netstat –f 10 — каждые 10 секунд отображать статистику сетевых соединений с использованием полных DNS-имен узлов.
netstat -n 5 | find /i «Established» — каждые 5 секунд отображать статистику по установленным соединениям.