Как проверить udp порт
Перейти к содержимому

Как проверить udp порт

  • автор:

Проверяем доступность портов TCP и UDP

Иногда сталкиваюсь с такой проблемой «Как проверить UDP порт извне». Бороздя просторы интернета, нашел кое-какой материал.

1. Как проверить TCP порт

Существует я думаю много всяких способов. но вот самые эффективные:

  • с помощью telnet
  • с помощью nc (netcat)
  • с помощью nmap

Ну а теперь разберем по конкретней

С помощью telnet

Если соединение удачно, то увидим такой ответ:

$telnet 11.1.1.11 25
Trying 11.11.11.11.
Connected to mail.domain.com.ua.
Escape character is ‘^]’.
220 mail.domain.com.ua ESMTP Postfix

Если же неудачное, то такое:

$telnet 11.11.11.11 23
Trying 11.11.11.11.
telnet: connect to address 11.11.11.11: Operation timed out
telnet: Unable to connect to remote host

Иногда в дополнении появляется такое:

telnet: connect to address 11.11.11.11: Operation not permitted

С помощью nc (netcat)

Если соединение удачно, то увидим такой ответ:

$nc -v 11.11.11.11 25
Connection to 11.11.11.11 25 port [tcp/smtp] succeeded!
220 mail.domain.com.ua ESMTP Postfix

Если же неудачное, то такое:

$nc -v 11.11.11.11 23
nc: connect to 11.11.11.11 port 23 (tcp) failed: Operation timed out

Если соединение удачно, то увидим такой ответ:

#nmap -p25 11.11.11.11

PORT STATE SERVICE
25/tcp open smtp

Если же неудачное, то такое:

#nmap -p23 11.11.11.11

PORT STATE SERVICE
23/tcp closed telnet

Иногда при сканнировании выводится такое сообщение:

PORT STATE SERVICE
23/tcp filtered telnet

тогда сказать однозначно открыт или закрыт – нельзя.

2. Как проверить UDP порт

Тут есть два способа, с помощью nc (netcat) и с помощью nmap

С помощью nc (netcat)

Если соединение удачно, то увидим такой ответ:

$nc -uv 11.11.11.12 53
Connection to 11.11.11.12 53 port [udp/domain] succeeded!

Если же неудачное, то ничего не выводиться:

$nc -uv 11.1.1.12 50
$

Если соединение удачно, то увидим такой ответ:

#nmap -sU -p U:53 11.1.11.12
PORT STATE SERVICE
53/udp open|filtered domain

Если же неудачное, то такое:

#nmap -sU -p U:53 11.1.11.13
PORT STATE SERVICE
53/udp closed domain

Преимущества: лёгко и удобно пользоваться, установлена практически на любой ОС, для запуска не требуются права root’a.
Недостатки: нельзя проверять UDP порты

Преимущества: лёгко и удобно пользоваться, установлена практически на любой ОС, для запуска не требуются права root’a, есть возможность сканирования UDP-портов
Недостатки: не обнаружено.

Преимущества: удобно пользоваться, функционал просто радует, есть возможность сканированияUDP-портов
Недостатки: для запуска требуются права root’a, устанавливать приходиться отдельно.

PortQry — утилита для проверки доступности TCP/UDP портов из Windows

date

08.07.2020

user

itpro

directory

Windows 10, Windows Server 2012 R2, Windows Server 2016, Утилиты

comments

Комментариев пока нет

Несмотря на то, что в Windows есть множество инструментов для диагностики проблем в TCP/IP сетях (ping, telnet, pathping и т.д.), не все они позволяют в удобном виде проверить состояние или выполнить сканирование открытых сетевых портов на удаленном сервере. Утилита Portqry.exe является удобным инструментом проверки доступности TCP/UDP портов на удаленном сервере при диагностике проблем, связанных с функционированием различных сервисов, а также наличием файерволов и межсетевых экранов в TCP/IP сетях. Чаще всего утилита Portqry используется как более функциональная замена telnet, и в отличии от telnet, позволяет также проверять открытые UDP порты.

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

Первая версия Portqry для Windows Server 2003 некорректно работает с более новыми ОС (Windows Server 2008 и выше), поэтому в дальнейшем была выпущена вторая версия утилиты PortQryV2. Именно эту версию и стоит использовать сегодня(скачать утилиту PortQryV2 можно по ссылке).

В Windows 10 вы можете установить portqry через менеджер пакетов Chokolatey:

choco install portqry

Скачайте и распакуйте архив PortQryV2.exe. Запустите командную строку и перейдите в каталог с утилитой, например:

каталог portqry_v2

Чтобы проверить доступность DNS сервера с клиента, необходимо проверить открыты ли на нем 53 порты TCP и UDP. Формат команды проверки доступности портов на удаленном сервере следующий:

PortQry -n server [-p protocol] [-e || -r || -o endpoint(s)]

-n – имя или IP адрес сервера, доступ к которому нужно проверить
e – номер порта для проверки (от 1 до 65535)
r – диапазон портов для проверки (например, 1:80)

p – по какому протоколу выполняется проверка. Это может быть TCP, UDP или BOTH (по умолчанию используется TCP).

Примечание. В отличии от комадлета PowerShell Test-NetConnection, который может использоваться только для проверки доступности TCP портов, утилита PortQry поддерживает и TCP и UDP протоколы.

В нашем примере команда будет такой:

PortQry.exe –n 10.1.10.6 -p both -e 53

PortQry проверка доступности udp и tcp портов

Утилита Portqry для каждого указанного порта вернет один из трех статусов доступности:

  • Listening – означает, что указанный порт доступен (принимает соединения), ответ от него получен;
  • NotListening – на целевой системе не запушен процесс (служба), который бы принимал подключения на указанном порту. Portqry получила ответ ICMP «Destination Unreachable — Port Unreachable» при проверке UDP порта, или TCP пакет с флагом Reset;
  • Filtered – утилита PortQry не получала ответа от указанного порта либо ответ был отфильтрован. Т.е. на целевой системе либо не слушается данный порт, либо доступ к нему ограничен файерволом или настройками системы. По умолчанию TCP порты опрашиваются 3 раза, а UDP – один.

В нашем примере, DNS сервер доступен с клиента и по TCP и по UDP.

TCP port 53 (domain service): LISTENING UDP port 53 (domain service): LISTENING

С помощью атрибута o, можно указать последовательность портов, которых нужно просканировать:

portqry -n 10.1.10.6 -p tcp -o 21,110,143

Следующая команда выполнит сканирование диапазона “низких” TCP портов и вернет список доступных портов, которые принимают подключения (утилита работает в режиме сканера открытых портов):

portqry -n 10.1.10.6 -r 1:1024 | find «: LISTENING»

Можно сохранить результаты сканирования открытых портов в текстовый файл:

portqry -n 10.1.10.6 -p tcp -r 20:500 -l logfile.txt

В утилите portqry есть интерактивный режим:

Теперь в приглашении PortQry Interactive Mode можете указать имя удаленного компьютера и порт.

node srv-lic
set port=80

Чтобы выполнить проверить порт на указанном сервере нажмите q и Enter.

portqry интерактивный режим сканирования в командной строке

С помощью аргументов –wport и -wpid можно выполнить мониторинг состояния указанного порта (wport), или всех портов, связанных с указанным процессом (wpid) на локальном хосте.

Например, следующая команда в течении 10 минут будет выполнять проверку доступности указанного локального порта (например, RDP порта 3389), и если его статус изменится, уведомит администратора об этом (подробный лог будет доступен в файле LogFile.txt). Чтобы остановить мониторинг, нажмите Ctrl-C :

portqry -wport 3389 -wt 600 –l LogFile.txt -y -v

Можно получить информацию об открытых портах и активных TCP/UDP соединениях на локальном компьютере:

Расширенный статус сетевых служб в PortQry

В утилите PortQry имеется встроенная поддержка некоторых сетевых служб. Это LDAP, Remote Procedure Calls (RPC), почтовые протоколы (SMTP, POP3 и IMAP4), SNMP, FTP/ TFTP, NetBIOS Name Service, L2TP и другие. Кроме проверки доступности этих стандартных портов этих служб, утилита выполняет специфические для конкретного протокола запросы для получения статуса сервиса.

Например, с помощью следующего запроса мы не только проверим доступность службы RPC endpoint mapper (TCP/135), но и получим список имен зарегистрированных в системе конечных точек RPC (в том числе их имя, UUID, адрес к которому они привязаны и приложение, с которым они связаны).

portqry -n 10.1.10.6 -p tcp -e 135

TCP port 135 (epmap service): LISTENING Using ephemeral source port Querying Endpoint Mapper Database. Server's response: UUID: d95afe72-a6d5-4259-822e-2c84da1ddb0d ncacn_ip_tcp:10.1.10.6 [49152] UUID: 897e215f-93f3-4376-9c9c-fd2277495c27 Frs2 Service ncacn_ip_tcp:10.1.10.6 [5722] UUID: 6b5bd21e-528c-422c-af8c-a4079be4fe48 Remote Fw APIs ncacn_ip_tcp:10.1.10.6 [63006] UUID: 12345678-1234-abcd-ef22-0123456789ab IPSec Policy agent endpoint ncacn_ip_tcp:10.1.10.6 [63006] UUID: 367abb81-9844-35f1-ad32-91f038001003 ncacn_ip_tcp:10.1.10.6 [63002] UUID: 50abc2a3-574d-40b3-1d66-ee4fd5fba076 ncacn_ip_tcp:10.1.10.6 [56020] …….. UUID: 3c4428c5-f0ab-448b-bda1-6ce01eb0a6d5 DHCP Client LRPC Endpoint ncacn_ip_tcp:10.1.10.6 [49153] Total endpoints found: 61 ==== End of RPC Endpoint Mapper query response ==== portqry.exe -n 10.1.10.6 -e 135 -p TCP exits with return code 0x00000000.

Или вы можете проверить доступность и ответ от службы SQL Server Browser на сервере Microsoft SQL Server:

PortQry.exe -n msk-sql1 -e 1434 -p UDP

UDP port 1434 (ms-sql-m service): LISTENING or FILTERED Sending SQL Server query to UDP port 1434. Server's response: ServerName MSK-SQL01 InstanceName MSSQLSERVER IsClustered No Version 15.0.2000.5 tcp 53200 ServerName MSK-SQL01 InstanceName BANKDB IsClustered No Version 15.0.2000.5 tcp 1433 ==== End of SQL Server query response ==== UDP port 1434 is LISTENING

Как вы видите, утилита portqry показала не только доступность UDP порта, но и версию SQL сервера и имена запущенных на сервере SQL экземпляров и их TCP порты (один инстанс BANKDB живет на порту по умолчанию tcp 1433, второй MSSQLSERVER использует фиксированный порт из RPC диапазона 53200 — см. статью о настройке портов в SQL Server).

portqry проверка портов и экземпляров sql server

Можно опросить SNMP порт на устройстве, указав название community:
portqry -n host2 -cn !secure! -e 161 -p udp

При проверке 25 порта на SMTP сервере можно получить баннер приветствия сервера:

portqry -n domain.mail.ru -p tcp -e 25

Графический интерфейс для Portqry

Первоначально утилита Portqry была исключительно консольным инструментом. Для удобства пользователей, которые не дружат с командной строкой, Microsoft разработала простой графический интерфейс для утилиты portqry – PortQueryUI. Скачать PortQueryUI можно с сайта загрузок Microsoft http://download.microsoft.com/download/3/f/4/3f4c6a54-65f0-4164-bdec-a3411ba24d3a/PortQryUI.exe

PortQueryUI по сути представляет собой графическую надстройку над portqry для формирования командной строки, и возврата результата в графическое окно.

Кроме того, в PortQueryUI заложено несколько заранее предопределенных наборов запросов для проверки доступности популярных служб Microsoft:

  • Domain and trusts (проверка служб на контроллере домена Active Directory)
  • IP Sec
  • Networking
  • SQL Server
  • Web Server
  • Exchange Server
  • Net Meeting

Думаю, особых комментариев к интерфейсу PortQueryUI давать не нужно. Все должно быть понятно из скриншота ниже. Укажите DNS имя или IP адрес сервера, выберите один из предустановленных сервисов (Query predefined service), или укажите номера портов для проверки вручную (Manually input query ports) и нажмите кнопку Query.

PortQueryUI - графический интерфейс

Возможные коды ответа в PortQueryUI (выделен на скриншоте):

  • 0 (0x00000000)– означает, что соединении успешно установлено и порт доступен;
  • 1 (0x00000001) – указанный порт недоступен или отфильтрован;
  • 2 (0x00000002 – это нормальный код возврата при проверке UDP подключения, т.к. не возвращается ACK ответ.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Как проверить udp порт

Браузер: Chrome 24

Проверка порта

С помощью этой утилиты можно проверить, открыт или закрыт порт удаленного хоста. Это позволяет определить готовность какого-либо сервиса принимать входящие подключения. Утилита может проверять как TCP, так и UDP порты. Следует отметить, что если на удаленном хосте установлен Firewall, любые UDP порты могут быть определены как открытые.

Все отправленные вами запросы и ваш IP адрес сохраняются в журнале.

Проверка UDP портов на доступность

Как проверить TCP порт наверное знает каждый, самый простой способ telnet’ом. Но что же делать когда нужно проверить UDP порт?

Есть замечательная утилита netcat которая позволяет проверять TCP и UDP порты на доступность.

Пример проверки UDP порта 27015 на локалхосте:

Если порт открыт мы увидим:

Мне нужно было мониторить игровые сервера CS 1.6 и в случае падений перезапускать их, написал небольшой скрипт:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *