Поделиться через


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

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

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

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

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

Примечание.

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

Область применения: поддерживаемые версии Windows

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

Типичные средства сканирования портов сообщают о том, что порт имеет состояние ПРОСЛУШИВАНИЯ , если целевой порт UDP не возвращает сообщение ICMP "Назначение недоступно". Этот результат может быть не точным по одной или обоим из следующих причин:

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

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

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

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

  • ПРОСЛУШИВАНИЕ. Этот ответ указывает, что процесс прослушивает целевой порт. 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)
  • PortQry анализирует, форматы, а затем возвращает ответ от службы или программы в рамках тестового отчета.

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

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

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

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

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

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

portqry.exe -n <name_to_query> [options]

Примечание.

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

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

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

Параметр Описание Комментарии
-n <name> Запрос конкретного назначения
  • Это единственный обязательный параметр для режима командной строки.
  • Значение <имени> представляет имя или IP-адрес компьютера для запроса. Это значение не может содержать пробелы.
-p <protocol> Использование указанного протокола
  • Значение <протокола> представляет тип порта для запроса (возможные значения : tcpudpили 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 Перезаписать предыдущий файл журнала
  • При совместном -lиспользовании -y 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 использует временный порт для второго теста. При этом портQry записывает в выходные данные "Использование эфемерного исходного порта".
  • Если компьютер, на котором установлен 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 включительно.
  • -oПараметры -eи -r параметры являются взаимоисключающими. Одна команда PortQry может использовать только один из этих параметров.
  • Запрос к порту UDP 389 (LDAP) может не работать с контроллерами домена, работающими под управлением Windows Server 2008. Чтобы проверить доступность службы, работающей на порту UDP 389, можно использовать Nltest вместо PortQry. Дополнительные сведения см. в разделе Nltest.
  • При запросе порта 135 (RPC) с помощью -e или -oпортQry возвращает все конечные точки, зарегистрированные в настоящее время в средстве сопоставления конечных точек 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]

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

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

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

  • -wportПараметры -localи -wpid параметры являются взаимоисключающими. Вы можете использовать только один из этих параметров в одной командной строке PortQry.
  • Параметр -q не работает в локальном режиме.
  • В некоторых случаях PortQry может сообщить, что процесс простоя системы (PID 0) использует некоторые TCP-порты. Это может произойти, если локальная программа подключается к TCP-порту, а затем останавливается. Несмотря на то, что программа больше не запущена, TCP-подключение программы к порту может оставаться в состоянии "Время ожидания" в течение нескольких минут. В таком случае PortQry может обнаружить, что порт используется, но он не может определить программу, использующую порт, так как PID был выпущен. По умолчанию порт остается в состоянии "Время ожидания" в два раза больше, чем максимальное время существования сегмента.
  • Для каждого процесса PortQry сообщает столько сведений, сколько он может получить. Доступ к некоторым сведениям ограничен. Например, доступ к сведениям о модуле для процессов простоя и CSRSS запрещен, так как их ограничения доступа препятствуют открытию кода на уровне пользователя. Для получения наилучших результатов выполните команду локального режима в контексте локального администратора или учетной записи с аналогичными учетными данными.
  • При использовании либо совместного -lиспользования используйте -wport -wpid клавишу 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)
>

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

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

Команда Description Комментарии
node <name> или n <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>

Примечание.

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

Вариант Описание Комментарии
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

Вы можете изменить эту запись порта или добавить дополнительную запись. Чтобы принудительно отправить запросы 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. Для каждого целевого порта портQry ожидает в два раза больше времени, чем обычно для ответа.

  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 для сведений о конечной точке. Этот параметр ускоряет сканирование диапазона портов.