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

Применяется к:   Windows 10 — все выпуски, Windows 8.1, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

Заключение

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

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

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

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

Примечание

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

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

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

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

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

Шаг 1. Тест состояния порта

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

  • ПРОСЛУШИВАНИЕ. Этот ответ указывает, что процесс прослушивается в целевом порту. PortQry получил ответ из целевого порта.
  • НЕ ПРОСЛУШИВАТЬ. Этот ответ указывает на то, что в целевом порту не прослушивается процесс. PortQry получил одно из следующих сообщений ICMP из целевого порта:

    Недостижимый порт назначения

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

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

Если нет ответа из целевого порта UDP, PortQry сообщает, что порт прослушивается или ФИЛЬТРУЕТСЯ. Однако при устранении неполадок с подключением полезно знать, фильтруется или прослушивается порт. Это особенно актуально в среде, которая содержит один или несколько брандмауэров.

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

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

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

При устранении неполадок на компьютере, на котором установлен 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> Использование указанного протокола
  • Значение <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 совместном использовании PortQry переописывал существующий файл журнала, не подсказывая вам -l подтверждение действия.
  • Если строка команды PortQry не -l включает, PortQry игнорирует -y .
-sl Подождите дополнительное время для ответа (также известного как медленная задержка ссылок) Используйте этот параметр, чтобы удвоить время ожидания ответа portQry из порта UDP до того, как PortQry определит, что порт не прослушивается или фильтруется. При запросе на медленные или ненадежные сетевые ссылки обычное время ожидания может быть слишком коротким, чтобы получить ответ.
-nr Пропустить обратный вид имени
  • По умолчанию при указании IP-адреса для целевого компьютера portQry делает обратный вид имени, чтобы разрешить -n IP-адрес с именем. Этот процесс может потребовать много времени, особенно если PortQry не может разрешить IP-адрес. Используйте, -nr чтобы пропустить этот шаг запроса.
  • Если вы используете -n для указания компьютера или доменного имени, PortQry игнорирует -nr .
-sp <port_number> Запрос из определенного порта исходных данных
  • Это <port_number> значение представляет порт, который PortQry использует для отправки запроса.
  • PortQry не может использовать порт, который уже используется другим процессом. Если порт, который вы указываете, уже используется, PortQry возвращает следующее сообщение об ошибке:
    Не удается использовать указанный исходный порт.
    Порт уже используется.
    Укажите порт, который не используется, и снова запустите команду.
  • В следующих случаях PortQry использует указанный порт для первого теста запроса, но не для второго теста:
    • RPC (TCP и UDP порты 135)
    • LDAP (UDP port 389)
    • Запрос состояния адаптеров NetBIOS (порт UDP 137)
    В этих случаях portQry использует эфемерный порт для второго теста. Когда это произойдет, PortQry записи "Использование ephemeral source port" в своем выходе.
  • Если на компьютере, на котором установлен PortQry, также работает агент политики IPSec, порт UDP 500 может быть недоступным для использования в качестве источника порта. Чтобы временно отключить агент политики IPSec, чтобы можно было использовать порт 500, запустите net stop PolicyAgent . По завершению тестирования запустите net start PolicyAgent .
-cn !<community_name>! Запрос сообщества SMTP
  • Это <community_name> значение представляет имя сообщества SNMP для запроса. Это значение необходимо разграничить с помощью восклицательный столбец, как показано в левом столбце.
  • Если служба SNMP не прослушивает целевой порт, PortQry игнорирует -cn .
  • Имя сообщества по умолчанию public .
-q Запуск PortQry в тихом режиме
  • При использовании -q PortQry подавляет весь выход экрана, за исключением сообщений об ошибках.
  • Чтобы увидеть выходные данные, кроме сообщений об ошибках, используйте -q вместе с -l . PortQry записывал нормальный выход в файле журнала.
  • Если файл журнала уже существует и используется вместе -q с ним, PortQry переописывал существующий файл журнала без -l запроса.
  • Вы не можете -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) с помощью или, PortQry возвращает все конечные точки, которые в настоящее время зарегистрированы с конечным картографом -e -o RPC.

    Важно!

    При использовании карты PortQry не запрашивает конечный картограф -r RPC.

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

    Примечание

    Не важно, возвращает ли 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-to-port, вывод включает PID процесса, использующего порт на локальном компьютере. При использовании многословного параметра () вывод также включает имена служб, к числу которых принадлежит PID, и перечисляет все модули, загруженные -v процессом. Эти сведения можно использовать для определения портов, связанных с определенной программой или службой, запущенной на компьютере.
-wport <port_number> Порт watch
  • Отслеживайте определенный порт для изменений. Значение <port_number> представляет порт для мониторинга.
  • В случае порта TCP PortQry сообщает об изменениях между следующими состояниями:
    • CLOSE_WAIT
    • ЗАКРЫТО
    • ESTABLISHED
    • FIN_WAIT_1
    • LAST_ACK
    • LISTEN
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • Для портов UDP PortQry сообщает, связана ли программа с портом, но не сообщает, получает ли порт UDP данные.
  • Чтобы остановить мониторинг, нажмите кнопку Esc.
-wpid <pid> Watch process ID (PID)
  • Отслеживайте определенный PID для изменения количества и состояния подключений. Это <process_number> значение представляет pid для мониторинга.
  • Чтобы остановить мониторинг, нажмите кнопку Esc.
-wt <seconds> Проверка с определенным интервалом
  • Проверьте состояние целевой цели, которая определена по интервалу или в интервале, который представлен значением <секунд -wport "-wpid>.
  • Значение <seconds> должно быть от одного до 1200 (включительно).
  • Значение по умолчанию — 60.
  • Вы не можете использовать -wt самостоятельно или вместе с -local .
-l <filename.txt> Создание файла журнала
  • Это <filename.txt> значение представляет имя и расширение файла журнала. Это значение не может включать пробелы.
  • При запуске команды PortQry создает файл журнала в каталоге, где он установлен.
  • Если файл уже существует, PortQry просит вас подтвердить, что вы хотите переписать его (если вы также не используете -y параметр).
-y Переописывание предыдущего файла журнала
  • При -y совместном использовании PortQry переописывал существующий файл журнала, не подсказывая вам -l подтверждение действия.
  • Если строка команды PortQry не -l включает, PortQry игнорирует -y .
-v Производить подробный вывод PortQry предоставляет дополнительные сведения к выходу экрана (и к файлу журнала, если он используется).

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

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

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

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

Интерактивный режим похож на интерактивные функции в службе DNS Nslookup или в утилите 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> Установите значение параметра запроса
  • В этой команде представлено имя параметра для набора и представляет <option> <value> новое значение параметра.
  • Чтобы увидеть список текущих значений доступных параметров, введите set all .
  • Список доступных параметров см. в интерактивном режиме.
exit Оставьте интерактивный режим

Ярлыки запроса интерактивного режима

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

q <shortcut>

Примечание

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

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

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

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

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

set <option>=<value>

Примечание

В этой команде представлено имя параметра, заданной, и <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>
Укажите протокол для использования Значение представляет тип порта для <protocol> запроса tcp udp (или). both
set cn=<community_name> Укажите сообщество SMTP
  • Это <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 компьютера имеет файл Services, расположенный в папке %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

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

Мониторинг ID процесса с помощью определенного интервала

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

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 port 25:

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

Следующая команда запрашивает TCP port 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 использует файл Services в папке %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) для каждой программы, аннотированное имя (если оно существует), протокол, который использует каждая программа, сетевой адрес, к котором привязана программа, и конечную точку программы в квадратных скобках.

Примечание

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