Использование программы командной строки PortQry

PortQry — это средство командной строки, которое можно использовать для устранения неполадок с подключением TCP/IP. Это средство сообщает о состоянии целевых портов TCP и UDP на локальном или удаленном компьютере. Здесь также содержатся подробные сведения об использовании портов локального компьютера.

Так как PortQry предназначен для использования в качестве средства устранения неполадок, пользователи, которые используют его для устранения конкретной проблемы, должны обладать достаточными знаниями о своей вычислительной среде.

PortQry можно использовать из командной строки в одном из нескольких режимов:

  • Режим командной строки. Этот режим можно использовать для устранения неполадок на локальных или удаленных компьютерах.
  • Локальный режим. В этом режиме можно использовать несколько параметров, предназначенных для устранения неполадок на локальном компьютере.
  • Интерактивный режим. Аналогично режиму командной строки, но можно использовать сочетания команд и параметров.

Примечание.

Вы можете скачать отдельное средство с именем PortQryUI, включающее графический пользовательский интерфейс для PortQry. PortQryUI имеет несколько функций, которые упрощают использование PortQry. Сведения о том, как получить средство PortQryUI, см. в статье PortQryUI — пользовательский интерфейс для средства проверки портов в командной строке PortQry.

Применимо к: Поддерживаемые версии Windows

Тесты и результаты PortQry

Типичные средства сканирования портов сообщают о том, что порт имеет состояние LISTENING , если целевой UDP-порт не возвращает сообщение ICMP "Назначение недоступно". Этот результат может быть неверным по одной или обоим из следующих причин:

  • Если нет ответа на направленную датаграмму, целевой порт может быть ФИЛЬТРОВАН.
  • Большинство служб не отвечают на неформатированную пользовательскую датаграмму, отправленную им. Как правило, служба или программа, прослушивающая порт, реагирует только на сообщение, использующее определенный уровень сеанса или протокол прикладного уровня.

Чтобы получить более точные и полезные результаты, PortQry использует двухфакторный процесс тестирования.

Шаг 1. Проверка состояния порта

PortQry сообщает о состоянии порта в виде одного из трех значений:

  • LISTENING: этот ответ указывает, что процесс прослушивает целевой порт. PortQry получил ответ от целевого порта.
  • NOT LISTENING: этот ответ указывает, что ни в каких процессах не выполняется прослушивание целевого порта. PortQry получил одно из следующих сообщений ICMP от целевого порта:

    Назначение недоступно Порт недоступен

  • FILTERED: этот ответ указывает, что целевой порт фильтруется. PortQry не получил ответ от целевого порта. Процесс может или не прослушивать целевой порт. По умолчанию PortQry запрашивает TCP-порт три раза, прежде чем он возвращает ответ FILTERED, и запрашивает UDP-порт один раз, прежде чем он возвращает ответ FILTERED.

Шаг 2. Специализированные тесты

Если нет ответа от целевого порта UDP, PortQry сообщает, что порт прослушивается или фильтруется. Однако при устранении неполадок с подключением полезно узнать, фильтруется ли порт или прослушивается. Это особенно верно в среде, содержащей один или несколько брандмауэров.

PortQry уточняет отчет о состоянии порта, используя второй набор тестов, которые могут взаимодействовать со службой или программой, прослушивающей целевой порт. Для этого теста PortQry выполняет следующие действия:

  • PortQry использует файл служб, расположенный в папке %SYSTEMROOT%\System32\Drivers\Etc , чтобы определить, какая служба прослушивает каждый порт.
  • PortQry создает сообщение, специально созданное для ожидаемой службы или программы, а затем отправляет его на целевой порт. В зависимости от службы или программы сообщение может запрашивать сведения, полезные для устранения неполадок, например следующие:
    • Сведения о домене и контроллере домена (запросы LDAP)
    • Зарегистрированные клиентские службы и порты (запросы RPC)
    • Разрешен ли анонимный доступ (запросы FTP)
    • MAC-адрес (запросы NetBIOS)
    • Mspclnt.ini сведения о файле (запросы ISA Server)
  • PortQry анализирует, форматирует, а затем возвращает ответ от службы или программы в рамках тестового отчета.

Дополнительные тесты для устранения неполадок на локальном компьютере

Если вам нужно устранить неполадки с портами на компьютере, где вы установили PortQry, используйте PortQry в локальном режиме. При использовании параметров локального режима в командной строке на локальном компьютере можно выполнять следующие задачи:

  • Перечисление сопоставлений портов
  • Мониторинг определенного порта на наличие изменений
  • Мониторинг определенного процесса на наличие изменений

Дополнительные сведения см. в разделе Использование PortQry в локальном режиме (командная строка).

Использование PortQry в режиме командной строки

PortQry можно запустить в командной строке так же, как и любое другое средство командной строки. В большинстве примеров в этой статье показаны команды PortQry командной строки. В режиме командной строки в командную строку можно добавить несколько параметров, чтобы указать, какой запрос следует выполнять и как его выполнять. Чтобы запустить PortQry в режиме командной строки, выполните команду, которая использует следующий синтаксис:

portqry.exe -n <name_to_query> [options]

Примечание.

В этой команде <name_to_query> является IP-адрес, имя компьютера или домен для запроса. Это обязательный параметр. [параметры] являются необязательными параметрами.

Параметры PortQry для режима командной строки

В обычном режиме командной строки доступны следующие параметры:

Параметр Описание Comments
-n <name> Запрос конкретного назначения
  • Это единственный обязательный параметр для режима командной строки.
  • Значение <name> представляет имя или IP-адрес компьютера для запроса. Это значение не может включать пробелы.
-p <protocol> Использование указанного протокола
  • Значение <протокола> представляет тип порта для запроса (возможные значения: tcp, udpили both).
  • Значение по умолчанию — tcp.
-e <port_number> Укажите целевой порт (также известный как "конечная точка")
  • Значение <port_number> представляет порт для запроса на конечном компьютере.
  • Значение по умолчанию — 80.
-o <port_number>,<port_number> Указание нескольких целевых портов в последовательности Значения <port_number>port_number>< представляют разделенный запятыми список номеров портов для запроса в последовательности. Не используйте пробелы вокруг запятых.
-r <port_number>:<port_number> Указание диапазона целевых портов
  • Значения <port_number>:<port_number> представляют начальный и конечный номера портов, разделенные двоеточием. Не используйте пробелы вокруг двоеточия.
  • Номер начального порта должен быть меньше конечного номера порта.
-l <filename.txt> Создание файла журнала
  • Значение <filename.txt> представляет имя и расширение файла журнала. Это значение не может включать пробелы.
  • При выполнении команды PortQry создает файл журнала в каталоге, в котором он установлен.
  • Если файл уже существует, PortQry просит подтвердить его перезапись (если вы также не используете -y параметр ).
-y Перезапись предыдущего файла журнала
  • При использовании -y вместе с -lпараметром PortQry перезаписывает существующий файл журнала без запроса на подтверждение действия.
  • Если командная строка PortQry не включает -l, PortQry игнорирует -y.
-sl Подождите дополнительное время ответа (также известное как задержка медленной связи) Используйте этот параметр, чтобы удвоить время ожидания ответа portQry от порта UDP до того, как PortQry определит, что порт не прослушивается или что он фильтруется. При выполнении запросов по медленным или ненадежным сетевым каналам обычное время ожидания может быть слишком коротким для получения ответа.
-nr Пропуск подстановки обратного имени
  • По умолчанию при -n указании IP-адреса для целевого компьютера PortQry выполняет обратный поиск имени, чтобы разрешить IP-адрес в имя. Этот процесс может занять много времени, особенно если PortQry не может разрешить IP-адрес. Используйте -nr , чтобы пропустить этот шаг запроса.
  • Если используется для -n указания имени компьютера или домена, PortQry игнорирует -nr.
-sp <port_number> Запрос из определенного порта источника
  • Значение <port_number> представляет порт, используемый PortQry для отправки запроса.
  • PortQry не может использовать порт, который уже использует другой процесс. Если указанный порт уже используется, PortQry возвращает следующее сообщение об ошибке:
    Не удается использовать указанный исходный порт.
    Порт уже используется.
    Укажите порт, который не используется, и выполните команду еще раз.
  • В следующих случаях PortQry использует указанный порт для первого теста запроса, но не для второго теста:
    • RPC (порты TCP и UDP 135)
    • LDAP (UDP-порт 389)
    • Запрос состояния адаптера NetBIOS (UDP-порт 137)
    В этих случаях PortQry использует временный порт для второго теста. Когда это происходит, PortQry записывает в выходные данные значение "Using временный исходный порт".
  • Если компьютер, на котором установлен PortQry, также работает с агентом политики IPSec, порт UDP 500 может быть недоступен для использования в качестве исходного порта. Чтобы временно отключить агент политики IPSec и использовать порт 500, выполните команду net stop PolicyAgent. Завершив тестирование, выполните команду net start PolicyAgent.
-cn !<community_name>! Запрос к сообществу SNMP
  • Значение <community_name> представляет имя сообщества SNMP для запроса. Это значение необходимо разделить с помощью восклицательных точек, как показано в левом столбце.
  • Если служба SNMP не прослушивает целевой порт, PortQry игнорирует -cn.
  • Имя сообщества по умолчанию — public.
-q Запуск PortQry в тихом режиме
  • При использовании -qPortQry подавляет все выходные данные экрана, кроме сообщений об ошибках.
  • Чтобы просмотреть выходные данные, отличные от сообщений об ошибках, используйте -q вместе с -l. PortQry записывает обычные выходные данные в файл журнала.
  • Если файл журнала уже существует и используется -q вместе с -l, PortQry перезаписывает существующий файл журнала без запроса.
  • Нельзя использовать -q вместе с -o, -rили -p both.
  • Этот параметр особенно полезен при использовании пакетного файла для выполнения командной строки PortQry.

Примечания к параметрам в режиме командной строки

  • Любое значение номера порта должно быть допустимым номером порта от 1 до 65535 включительно.
  • Параметры -e, -oи -r являются взаимоисключающими. Одна команда PortQry может использовать только один из этих параметров.
  • Запрос к UDP-порту 389 (LDAP) может не работать с контроллерами домена под управлением Windows Server 2008. Чтобы проверка доступность службы, работающей на UDP-порту 389, можно использовать Nltest вместо PortQry. Дополнительные сведения см. в разделе Nltest.
  • При запросе порта 135 (RPC) с помощью -e или -oPortQry возвращает все конечные точки, зарегистрированные в средстве сопоставления конечных точек RPC.

    Важно!

    При использовании -rPortQry не запрашивает сопоставитель конечных точек RPC.

  • При запросе порта 53 (DNS) PortQry отправляет запрос DNS для portqry.microsoft.com с использованием TCP и UDP. Если сервер возвращает ответ, PortQry определяет, что порт прослушивается.

    Примечание.

    Не важно, возвращает ли DNS-сервер положительный или отрицательный ответ. Любой ответ указывает, что порт прослушивает.

Использование PortQry в локальном режиме (командная строка)

Вместо того, чтобы запрашивать порт на удаленном целевом компьютере, можно использовать PortQry в локальном режиме, чтобы получить подробные сведения о портах TCP и портах UDP на локальном компьютере, где выполняется PortQry. Используйте следующий синтаксис для запуска PortQry в локальном режиме:

portqry -local | -wpid <pid> | -wport <port_number> [-wt <seconds>] [-l <filename.txt>] [-v]

Заполнители в этом синтаксисе описаны в следующей таблице параметров локального режима:

Параметр Описание Comments
-local Получение локальных сведений
  • Перечисление всех сопоставлений портов TCP и UDP, которые в настоящее время активны на локальном компьютере. Эти выходные данные похожи на выходные данные, создаваемые netstat.exe -an командой .
  • На компьютерах, поддерживающих сопоставления PID-портов, выходные данные включают PID процесса, который использует порт на локальном компьютере. Если вы используете подробный параметр (-v), выходные данные также включают имена служб, к которым принадлежит PID, и перечисляют все модули, загруженные процессом. Эти сведения можно использовать, чтобы определить, какие порты связаны с определенной программой или службой, запущенной на компьютере.
-wport <port_number> Порт отслеживания
  • Отслеживайте определенный порт на наличие изменений. Значение <port_number> представляет отслеживаемое порт.
  • В случае tcp-порта PortQry сообщает об изменениях между следующими состояниями:
    • CLOSE_WAIT
    • ЗАКРЫТ
    • УСТАНОВЛЕНО
    • FIN_WAIT_1
    • LAST_ACK
    • СЛУШАЙ
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • Для портов UDP PortQry сообщает, если программа привязана к порту, но не сообщает, получает ли UDP-порт датаграммы.
  • Чтобы остановить мониторинг, нажмите клавишу ESC.
-wpid <pid> Идентификатор процесса отслеживания (PID)
  • Отслеживайте определенный PID на наличие изменений в количестве и состоянии подключений. Значение <process_number> представляет идентификатор PID для отслеживания.
  • Чтобы остановить мониторинг, нажмите клавишу ESC.
-wt <seconds> Проверка через определенный интервал
  • Проверьте состояние целевого объекта, определяемого -wport или "-wpid через интервал, представленный значением /<seconds> .
  • Значение <секунд> должно находиться в диапазоне от 1 до 1200 (включительно).
  • Значение по умолчанию — 60.
  • Нельзя использовать -wt сам по себе или вместе с -local.
-l <filename.txt> Создание файла журнала
  • Значение <filename.txt> представляет имя и расширение файла журнала. Это значение не может включать пробелы.
  • При выполнении команды PortQry создает файл журнала в каталоге, в котором он установлен.
  • Если файл уже существует, PortQry просит подтвердить его перезапись (если вы также не используете -y параметр ).
-y Перезапись предыдущего файла журнала
  • При использовании -y вместе с -lпараметром PortQry перезаписывает существующий файл журнала без запроса на подтверждение действия.
  • Если командная строка PortQry не включает -l, PortQry игнорирует -y.
-v Получение подробных выходных данных PortQry предоставляет дополнительные сведения для выходных данных экрана (и в файле журнала, если используется).

Примечания для параметров в локальном режиме

  • Параметры -local, -wportи -wpid являются взаимоисключающими. В одной командной строке PortQry можно использовать только один из этих параметров.
  • Параметр -q не работает в локальном режиме.
  • В некоторых случаях PortQry может сообщить, что процесс простоя системы (PID 0) использует некоторые TCP-порты. Это может произойти, если локальная программа подключается к TCP-порту, а затем останавливается. Несмотря на то, что программа больше не выполняется, TCP-подключение программы к порту может оставаться в состоянии "Время ожидания" в течение нескольких минут. В этом случае PortQry может обнаружить, что порт используется, но не может определить программу, которая использует порт, так как PID был освобожден. По умолчанию порт остается в состоянии "Timed Wait" в два раза дольше максимального времени существования сегмента.
  • Для каждого процесса PortQry сообщает столько сведений, сколько он может получить. Доступ к некоторым сведениям ограничен. Например, доступ к сведениям о модулях для процессов простоя и CSRSS запрещен, так как их ограничения доступа не позволяют коду уровня пользователя открывать их. Для достижения наилучших результатов выполните команду локального режима в контексте локального администратора или учетной записи с похожими учетными данными.
  • Если вы используете или -wport-wpid вместе с -l, используйте клавишу ESC, чтобы прервать и выйти из PortQry, а не CTRL+C. Необходимо нажать клавишу ESC, чтобы убедиться, что PortQry правильно закрывает файл журнала и завершает работу. Если нажать клавиши CTRL+C вместо ESC, чтобы остановить PortQry, файл журнала может стать пустым или поврежденным.

Использование PortQry в интерактивном режиме

При устранении неполадок с подключением между компьютерами может потребоваться ввести много повторяющихся команд. Такие действия можно упростить с помощью PortQry в интерактивном режиме.

Интерактивный режим аналогичен интерактивным функциям в служебной программе Nslookup DNS или в программе Nblookup WINS.

Чтобы запустить PortQry в интерактивном режиме -i , используйте параметр . Например, выполните следующую команду:

portqry -i

Выходные данные этой команды выглядят примерно так:

Portqry Interactive Mode

Type 'help' for a list of commands

Default Node: 127.0.0.1

Current option values:  
   end port= 80  
   protocol= TCP  
   source port= 0 (ephemeral)
>

Команды интерактивного режима

В интерактивном режиме можно использовать следующие команды:

Команда Описание Comments
node <name> или n <name> Установка назначения для запроса
  • Значение <name> представляет имя или IP-адрес компьютера для запроса. Это значение не может включать пробелы.
  • Значение по умолчанию — 127.0.0.1 (локальный компьютер).
query или q Отправка запроса
  • Запрашивает текущее назначение с использованием текущих параметров.
  • По умолчанию используется tcpпротокол .
  • Порт назначения по умолчанию — TCP-порт 80.
  • Исходный порт по умолчанию — порт 0 (временный порт).
  • Для выполнения любого из нескольких распространенных запросов с командой query можно использовать один из нескольких сочетаний клавиш. Список доступных сочетаний клавиш см. в разделе Сочетания клавиш запросов в интерактивном режиме.
set <option>=<value> Установка значения параметра запроса
  • В этой команде параметр> представляет имя параметра для задания, < а <значение> — новое значение параметра.
  • Чтобы просмотреть список текущих значений доступных параметров, введите set all.
  • Список доступных параметров см. в разделе Параметры интерактивного режима.
exit Выход из интерактивного режима

Сочетания запросов в интерактивном режиме

Вы можете использовать следующие сочетания клавиш вместе с командой query для выполнения распространенных запросов без необходимости задавать параметры порта и протокола. Используйте следующий синтаксис.

q <shortcut>

Примечание.

В этой команде <ярлык> представляет один из сочетаний клавиш из следующей таблицы. Если опустить ярлык, q команда запрашивает TCP-порт 80.

Ярлык Порты для запроса
dns TCP-порт 53, UDP-порт 53.
ftp TCP-порт 21
imap TCP-порт 143
ipsec UDP-порт 500
isa TCP-порт 1745, UDP-порт 1745
ldap TCP-порт 389, UDP-порт 389
l2tp UDP-порт 1701
mail TCP-порты 25, 110 и 143
pop3 TCP-порт 110
rpc TCP-порт 135, UDP-порт 135
smtp TCP-порт 25
snmp UDP-порт 161
sql TCP-порт 1433, UDP-порт 1434
tftp UDP-порт 69

Например, вход q dns в интерактивный режим эквивалентен запуску portqry -n 127.0.0.1 -p both -e 135 в обычном режиме командной строки.

Параметры интерактивного режима

С помощью set команды можно задать такие параметры, как исходный порт или задержка медленной связи. Используйте следующий синтаксис.

set <option>=<value>

Примечание.

В этой команде <параметр> представляет имя параметра для задания, а <значение> — новое значение параметра.

Вариант Описание Comments
set all Отображение текущих значений параметров
set port=<port_number>
set e=<port_number>
Указание целевого порта Значение <port_number> представляет порт для запроса на конечном компьютере.
set sport=<port_number>
set sp=<port_number>
Укажите исходный порт
  • Значение <port_number> представляет порт, используемый PortQry для отправки запроса.
  • PortQry не может использовать порт, который уже использует другой процесс.
  • Если указать нулевой номер порта, PortQry использует временный порт.
set protocol=<protocol>
set p=<protocol>
Укажите используемый протокол Значение <протокола> представляет тип порта для запроса (tcp, или udpboth).
set cn=<community_name> Указание сообщества SNMP
  • Значение <community_name> представляет имя сообщества SNMP для запроса.
  • Если служба SNMP не прослушивает целевой порт, PortQry игнорирует -cn.
  • Имя сообщества по умолчанию — public.
set nr Отключение или включение подстановки обратного имени
  • По умолчанию, если в качестве назначения запроса задан IP-адрес, PortQry разрешает IP-адрес в имя. При изменении этого параметра PortQry пропускает шаг разрешения имен.
  • Чтобы снова включить обратный поиск по имени, выполните set nr второй раз.
set sl Включение или отключение медленной задержки связи
  • При изменении этого параметра PortQry удвоит время ожидания ответа от порта UDP до того, как PortQry определит, что порт не прослушивается или фильтруется. При выполнении запросов по медленным или ненадежным сетевым каналам обычное время ожидания может быть слишком коротким для получения ответа.
  • Чтобы снова отключить задержку медленной связи, выполните set sl второй раз.

Предположим, вы хотите запросить компьютер с IP-адресом 10.0.1.10. В командной строке интерактивного режима введите n 10.0.1.10. Эта команда создает выходные данные, аналогичные следующему фрагменту:

Default Node: 10.0.1.10

>

Чтобы отправить ЗАПРОС DNS, введите в q dns командной строке интерактивного режима. Эта команда создает выходные данные, аналогичные следующему фрагменту:

resolving service name using local services file...
UDP port resolved to the 'domain' service

IP address resolved to myserver.contoso.com

querying...

UDP port 53 (domain service): LISTENING

>

Настройка связи между портами и службами

По умолчанию каждый компьютер под управлением Windows имеет файл служб, который находится в папке %SYSTEMROOT%\System32\Drivers\Etc . PortQry использует этот файл для разрешения номеров портов в соответствующие имена служб. PortQry использует эти сведения для выбора формата для своих запросов. Этот файл можно изменить, чтобы направить PortQry на отправку форматированных сообщений на другой порт. Например, в типичном файле служб отображается следующая запись:

ldap              389/tcp                           #Lightweight Directory Access Protocol

Вы можете изменить эту запись порта или добавить дополнительную запись. Чтобы заставить PortQry отправлять запросы LDAP на порт 1025, измените запись следующим образом:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Примеры

В следующих примерах показано, как использовать PortQry и его параметры:

Локальный режим

Режим командной строки

Запрос к локальному компьютеру

Выходные данные portqry -local выглядят примерно так:

TCP/UDP Port Usage

96 active ports found

Port Local IPState Remote IP:Port  
TCP 80 0.0.0.0 LISTENING 0.0.0.0:18510  
TCP 80 169.254.149.9 TIME WAIT 169.254.74.55:3716  
TCP 80 169.254.149.9 TIME WAIT 169.254.200.222:3885  
TCP 135 0.0.0.0 LISTENING 0.0.0.0:10280  
UDP 135 0.0.0.0 :  
UDP 137 169.254.149.9 :  
UDP 138 169.254.149.9 :  
TCP 139 169.254.149.9 LISTENING 0.0.0.0:43065  
TCP 139 169.254.149.9 ESTABLISHED 169.254.4.253:4310  
TCP 139 169.254.149.9 ESTABLISHED 169.254.74.55:3714  

Запрос локального компьютера, если доступ может быть ограничен

При запуске PortQry в локальном режиме, как в предыдущем примере, могут появиться выходные данные, похожие на приведенный ниже фрагмент. Такие выходные данные указывают на то, что контекст безопасности, используемый PortQry, не имеет достаточных разрешений для доступа ко всем запрошенным сведениям.

Port and Module Information by Process

Note: restrictions applied to some processes may
prevent Portqry from accessing more information

For best results run Portqry in the context of
the local administrator

======================================================  
Process ID: 0 (System Idle Process)

PIDPortLocal IPState Remote IP:Port  
0TCP 4442 169.254.113.96 TIME WAIT 169.254.5.136:80  
0TCP 4456 169.254.113.96 TIME WAIT 169.254.5.44:445  

Port Statistics

TCP mappings: 2  
UDP mappings: 0

TCP ports in a TIME WAIT state: 2 = 100.00%

Could not access module information for this process

======================================================

Мониторинг идентификатора процесса с использованием определенного интервала

Следующая команда отслеживает определенный процесс:

portqry.exe -wpid 1276 -wt 2 -v -l pid.txt

В результате PortQry выполняет следующие действия:

  • Определяет процесс с 1276 PID и проверяет состояние портов, которые он использует каждые две секунды до нажатия клавиши ESC.
  • Создает файл журнала pid.txt. Если файл с таким именем уже существует, PortQry предложит подтвердить, что вы хотите перезаписать файл.
  • Записывает все выходные данные в файл журнала, включая дополнительные подробные выходные данные.

Содержимое файла журнала выглядит следующим фрагментом:

PortQry Version 2.0 Log File
  
System Date: <DateTime>
  
Command run:  
portqry -wpid 1276 -wt 2 -v -l pid.txt
  
Local computer name:
  
host123
  
Watching PID: 1276
  
Checking for changes every 2 seconds
  
verbose output requested
  
Service Name: DNS  
Display Name: DNS Server  
Service Type: runs in its own process

============
System Date: <DateTime>

======================================================

Process ID: 1276 (dns.exe)

Service Name: DNS
Display Name: DNS Server
Service Type: runs in its own process

PIDPortLocal IPState Remote IP:Port
1276TCP 53 0.0.0.0 LISTENING 0.0.0.0:2160
1276TCP 1087 0.0.0.0 LISTENING 0.0.0.0:37074
1276UDP 1086 0.0.0.0 :
1276UDP 2126 0.0.0.0 :
1276UDP 53 127.0.0.1 :
1276UDP 1085 127.0.0.1 :
1276UDP 53 169.254.11.96 :

Port Statistics

TCP mappings: 2
UDP mappings: 5

TCP ports in a LISTENING state: 2 = 100.00%

Loaded modules:
C:\WINDOWS\System32\dns.exe (0x01000000)
C:\WINDOWS\system32\ntdll.dll (0x77F40000)
C:\WINDOWS\system32\kernel32.dll (0x77E40000)
C:\WINDOWS\system32\msvcrt.dll (0x77BA0000)
C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000)
C:\WINDOWS\system32\RPCRT4.dll (0x77C50000)
C:\WINDOWS\System32\WS2_32.dll (0x71C00000)
C:\WINDOWS\System32\WS2HELP.dll (0x71BF0000)
C:\WINDOWS\system32\USER32.dll (0x77D00000)
C:\WINDOWS\system32\GDI32.dll (0x77C00000)
C:\WINDOWS\System32\NETAPI32.dll (0x71C40000)

Указание целевого объекта и протокола

Примечание.

Каждый из примеров в этом разделе запрашивает порт 80, порт по умолчанию.

Следующая команда запрашивает TCP-порт по умолчанию на компьютере, указанном с использованием его полного доменного имени (FQDN):

portqry -n myDomainController.example.com -p tcp

Следующая команда запрашивает порт UDP по умолчанию на компьютере, указанном с помощью имени компьютера:

portqry -n myServer -p udp

Следующая команда запрашивает порты TCP и UDP по умолчанию для компьютера, указанного с помощью его IP-адреса:

portqry -n 192.168.1.20 -p both

Следующая команда выполняет тот же запрос, что и предыдущая команда, но пропускает шаг разрешения имен:

portqry -n 192.168.1.20 -p both -nr

Следующая команда запрашивает TCP-порт веб-сервера по умолчанию:

portqry -n www.widgets.microsoft.com

Указание одного или нескольких целевых портов

Следующая команда проверяет службу SMTP почтового сервера, запрашивая TCP-порт 25:

portqry -n mail.example.com -p tcp -e 25

Следующая команда запрашивает TCP-порт 60897 и UDP-порт 60897 компьютера с IP-адресом 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

Следующая команда запрашивает порты UDP 139, 1025 и 135 (в этой последовательности) на компьютере myServer:

portqry -n myServer -p udp -o 139,1025,135

Следующая команда запрашивает диапазон портов от порта 135 до порта 139 (включительно) на компьютере myServer:

portqry -n myServer -p udp -r 135:139

Указание файла журнала для выходных данных PortQry

Следующая команда запрашивает TCP-порт 143 на mail.widgets.microsoft.com и записывает выходные данные в файлportqry.txt . Если файл уже существует, PortQry перезаписывает его без запроса на подтверждение.

portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -y

Запрос по медленной ссылке

Следующая команда запрашивает TCP-порты 143, 110 и 25 на mail.widgets.microsoft.com. Для каждого целевого порта PortQry ожидает ответ в два раза дольше, чем обычно.

  portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -sl

Указание порта источника

Следующая команда использует UDP-порт 3001 (если он доступен) на локальном компьютере для отправки запроса на UDP-порт 53 на 192.168.1.20. Если служба прослушивает этот порт и отвечает на запрос, она отправляет ответ на UDP-порт 3001 на локальном компьютере.

portqry -p udp -e 53 -sp 3001 -n 192.168.1.20

Следующая команда использует UDP-порт 3000 (если он доступен) на локальном компьютере для отправки запроса на UDP-порт 389 на myDomainController.contoso.com. По умолчанию служба LDAP должна прослушивать этот порт. Если служба LDAP отвечает на первый запрос, PortQry использует временный исходный порт для отправки форматированного запроса и получения ответов.

portqry -n myDomainController.contoso.com -e 389 -sp 3000

Использование пакетного файла для запуска PortQry в тихом режиме

Ниже приведен пример пакетного файла, который запускает PortQry в тихом режиме:

:Top
portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q
:end

При выполнении этого пакетного файла PortQry создает файл журнала с именемpqlog.txt. Содержимое этого файла выглядит следующим образом:

PortQry Version 2.0 Log File

System Date: Thu Sep 16 10:35:03 2021

Command run:
 portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q

Local computer name:

 SOURCESERVER

Querying target system called:

 169.254.18.22

TCP port 443 (https service): LISTENING


========= end of log file ========= 

Порт запроса 135 (служба RPC)

Следующая команда запрашивает UDP-порт 135 на компьютере myServer. По умолчанию служба RPC должна прослушивать этот порт.

portqry -n myServer -p udp -e 135

В результате PortQry выполняет следующие действия:

  • PortQry использует файл Служб в папке %SYSTEMROOT%\System32\Drivers\Etc для разрешения UDP-порта 135 в службу. Используя конфигурацию по умолчанию, PortQry разрешает порт службе сопоставителя конечных точек RPC (Epmap).
  • PortQry отправляет неформатированную пользовательской датаграмму на UDP-порт 135 на конечном компьютере.
    PortQry не получает ответ от целевого порта. Это связано с тем, что служба сопоставителя конечных точек RPC реагирует только на запрос RPC с правильным форматированием. PortQry сообщает, что порт прослушивается или фильтруется.
  • PortQry создает правильно отформатированный запрос RPC, который запрашивает все конечные точки, зарегистрированные в сопоставитель конечных точек RPC. PortQry отправляет этот запрос на UDP-порт 135 на конечном компьютере.
  • В зависимости от ответа PortQry выполняет одно из следующих действий:
    • Если PortQry получает ответ на этот запрос, PortQry возвращает пользователю весь ответ и сообщает, что порт прослушивается.
    • Если PortQry не получает ответ на этот запрос, он сообщает о том, что порт фильтруется.
UDP port 135 (epmap service): LISTENING or FILTERED  
Querying Endpoint Mapper Database...  
Server's response:  

UUID: 50abc2a4-574d-40b3-9d66-ee4fd5fba076
ncacn_ip_tcp:169.254.12.191[4144]

UUID: ecec0d70-a603-11d0-96b1-00a0c91ece30 NTDS Backup Interface
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncacn_ip_tcp:169.254.12.191[1030]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncadg_ip_udp:169.254.12.191[1032]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\POLICYAGENT]

Total endpoints found: 6

==== End of RPC Endpoint Mapper query response ====

UDP port 135 is LISTENING

Из этих выходных данных можно определить не только, прослушивает ли служба порт, но и какие службы или программы зарегистрированы в базе данных сопоставителя конечных точек RPC на конечном компьютере. Выходные данные включают универсальный уникальный идентификатор (UUID) для каждой программы, имя с заметками (если оно существует), протокол, используемый каждой программой, сетевой адрес, к которому привязана программа, и конечная точка программы в квадратных скобках.

Примечание.

При указании -r параметра в команде PortQry для сканирования диапазона портов PortQry не запрашивает у сопоставителя конечных точек RPC сведения о конечной точке. Этот параметр ускоряет сканирование диапазона портов.