PortQry 版本 2.0 中的新特性和功能

本文讨论 PortQry 命令行端口扫描程序版本 2.0 中提供的新特性和功能。

适用于:  Windows 10 - 所有版本,Windows Server 2012 R2
原始 KB 编号:  832919

摘要

PortQry 版本 1.22 是包含在 Microsoft Windows Server 2003 支持工具中的 TCP/IP 连接测试实用工具。 Microsoft 已发布新版本的 PortQryV2.exe。 此新版本包含早期版本的所有特性和功能,并且具有新的特性和功能。

备注

PortQry 命令行端口扫描程序 2.0 版不再可供下载。 本文仅介绍它的特性和功能,以防你已下载它。

概述

PortQry 是一个命令行实用工具,可用于帮助解决 TCP/IP 连接问题。 此实用工具报告本地计算机或远程 (UDP) 目标 TCP 和用户数据报协议端口的端口状态。 PortQry 版本 2.0 还提供了有关本地计算机的端口使用情况的详细信息。 PortQry 版本 2.0 在下列所有操作系统上运行:

  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Microsoft Windows 2000

端口状态报告

PortQry 通过以下方法之一报告端口的状态:

  • 侦听:此响应指示进程正在目标端口上侦听。 PortQry 收到来自目标端口的响应。

  • 未侦听:此响应指示目标端口上没有进程正在侦听。 PortQry 从目标端口收到以下 Internet 控制消息 (ICMP) 消息之一:

    目标无法访问

    端口无法访问

  • FILTERED: 此响应指示正在筛选目标端口。 PortQry 没有收到来自目标端口的响应。 进程可能在目标端口上侦听,也可能没有侦听。 默认情况下,PortQry 在返回 FILTERED 的响应之前查询 TCP 端口三次,在返回 FILTERED 的响应之前查询 UDP 端口一次。

PortQry 2.0 版功能

根据侦听 UDP 端口的过程,有时可能很难确定该 UDP 端口的状态。 将无格式的零长度或固定长度消息发送到目标 UDP 端口时,该端口可能会响应,也可能没有响应。 如果端口响应,则其状态为"正在侦听"。 如果从 UDP 端口收到 ICMP"目标无法访问"消息,或者从 TCP 端口返回 TCP 重置响应,则端口的状态为 "未侦听"。

典型端口扫描工具报告,如果目标 UDP 端口未返回 ICMP"目标无法访问"消息,则端口具有侦听状态。 由于以下一种或两个原因,此结果可能不准确:

  • 当对定向数据报没有响应时,可能会筛选目标 端口
  • 大多数服务不响应发送给他们的无格式用户数据报。

通常,只有一条使用会话层或使用侦听服务或程序理解的应用程序层协议的格式正确的消息会从目标端口发出响应。

解决连接问题(尤其是在包含一个或多个防火墙的环境中)时,了解端口是否正在筛选或是否侦听会很有用。 PortQry 包括一些特殊功能,可帮助确定所选端口。 如果目标 UDP 端口没有响应,PortQry 将报告该端口正在 侦听已筛选。 然后,PortQry 会发送侦听服务或程序理解的格式正确的消息。 PortQry 使用正确的会话层或应用程序层协议来确定端口是否正在侦听。 PortQry 使用位于 %SYSTEMROOT%\System32\Drivers\Etc 文件夹中的服务文件来确定在每个端口上侦听的服务。

备注

此文件存储在基于 Windows Server 2003、Windows XP 和 Windows 2000 的计算机上。

因为 PortQry 旨在作为疑难解答工具,所以预期使用它来排查特定问题的用户足以了解其计算环境。 PortQry 版本 2.0 支持以下会话层和应用程序层协议:

  • 轻型目录访问协议 (LDAP)
  • RPC (远程过程)
  • 域名系统 (DNS)
  • NetBIOS 名称服务
  • 简单网络管理协议 (SNMP)
  • Internet Security and Acceleration Server (ISA)
  • SQL Server 2000 命名实例
  • 简单文件传输协议 (TFTP)
  • 第二层隧道协议 (L2TP)

此外,PortQry 版本 2.0 可以准确地确定打开的 UDP 端口是否多于 PortQry 版本 1.22。

LDAP 支持

PortQry 可以使用 TCP 和 UDP 发送 LDAP 查询,并正确解释 LDAP 服务器对此查询的响应。 PortQry 分析并设置格式,然后将来自 LDAP 服务器的响应返回给用户。 例如,键入以下命令,然后按 portqry -n myserver -p udp -e 389 Enter:。

然后,PortQry 执行以下操作:

  1. PortQry 使用 %SYSTEMROOT%\System32\Drivers\Etc 文件夹中的服务文件解析 UDP 端口 389。 如果 PortQry 将端口解析为 LDAP 服务,PortQry 会向目标计算机上 UDP 端口 389 发送无格式的用户数据报。 PortQry 不会从目标端口收到响应,因为 LDAP 服务仅响应格式正确的 LDAP 查询。
  2. PortQry 报告端口正在 侦听已筛选
  3. PortQry 将格式正确的 LDAP 查询发送到目标计算机的 UDP 端口 389。
  4. 如果 PortQry 收到对此查询的响应,它会将整个响应返回给用户,并报告端口正在 侦听。 如果 PortQry 未收到对此查询的响应,它将报告端口已 筛选

示例输出

UDP port 389 (unknown service): LISTENING or FILTERED  
Sending LDAP query to UDP port 389...  

LDAP query response:  

currentdate: <DateTime> (unadjusted GMT)  
subschemaSubentry: CN=Aggregate,CN=Schema,CN=Configuration,DC=domain,DC=example,DC=com  
dsServiceName: CN=NTDS Settings,CN=myserver,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=example,DC=com  
namingContexts: DC=domain,DC=example,DC=com  
defaultNamingContext: DC=domain,DC=example,DC=com  
schemaNamingContext: CN=Schema,CN=Configuration,DC=domain,DC=example,DC=com  
configurationNamingContext: CN=Configuration,DC=domain,DC=example,DC=com  
rootDomainNamingContext: DC=domain,DC=example,DC=com  
supportedControl: 1.2.840.113556.1.4.319  
supportedLDAPVersion: 3  
supportedLDAPPolicies: MaxPoolThreads  
highestCommittedUSN: 4259431  
supportedSASLMechanisms: GSSAPI  
dnsHostName: myserver.domain.example.com  
ldapServiceName: domain.example.com:myserver$@domain.EXAMPLE.COM  
serverName: CN=myserver,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=example,DC=com  
supportedCapabilities: 1.2.840.113556.1.4.800  
isSynchronized: TRUE  
isGlobalCatalogReady: TRUE  
domainFunctionality: 0  
forestFunctionality: 0  
domainControllerFunctionality: 2  

======== End of LDAP query response ========

UDP port 389 is LISTENING

本示例确定端口 389 正在侦听。 此外,您可以确定哪个 LDAP 服务正在侦听端口 389 以及该服务的某些详细信息。

请注意,UDP 的 LDAP 测试可能无法对在 Server 2008 Windows运行。 若要检查在 UDP 389 上运行的服务的可用性,可以使用 NLTEST 而不是 PortQry 工具。 例如,可以使用 Nltest /sc_reset <domain name> \ <computer name> 将安全通道强制进入特定的域控制器。 有关详细信息,请访问以下 Microsoft 网站:

网络连接

RPC 支持

PortQry 可以使用 TCP 和 UDP 发送 RPC 查询,并正确解释该查询的响应。 此查询 (RPC 终结点) 注册的所有终结点的转储。 PortQry 分析、设置格式,然后将来自 RPC 终结点映射器的响应返回给用户。 例如,键入以下命令,然后按 portqry -n myserver -p udp -e 135 Enter:。

然后,PortQry 执行以下操作:

  1. PortQry 使用 %SYSTEMROOT%\System32\Drivers\Etc 文件夹中的服务文件解析 UDP 端口 135。 如果 PortQry 将端口解析为 RPC 终点映射器服务 (Epmap) ,PortQry 将向目标计算机的 UDP 端口 135 发送无格式的用户数据报。 PortQry 不会从目标端口接收响应,因为 RPC 终结点映射器服务仅响应格式正确的 RPC 查询。
  2. PortQry 报告端口正在 侦听 或端口 已筛选
  3. PortQry 将格式正确的 RDC 查询发送到目标计算机的 UDP 端口 135。 此查询返回当前在 RPC 终结点映射器中注册的所有终结点。
  4. 如果 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

本示例确定端口 135 正在侦听。 此外,您还可以确定哪些服务或程序在目标计算机的 RPC 终结点映射器数据库中注册。 输出包括每个程序的通用唯一标识符 (UUID) 、批注名称 ((如果存在) 、每个程序使用的协议、程序绑定到的网络地址以及程序的终结点(方括号)。

备注

在命令 中指定 -r 选项以扫描端口范围时,不查询 PortQry.exe RPC 终点映射器。 这使扫描一系列端口的速度更快。

DNS 支持

PortQry 可以使用 TCP 和 UDP 发送格式正确的 DNS 查询。 PortQry 将以下完全限定域名的 DNS 查询 (FQDN) :

portqry.microsoft.com

然后,PortQry 将等待来自目标 DNS 服务器的响应。 如果服务器返回响应,PortQry 将确定端口为 LISTENING

备注

DNS 服务器是否返回负响应不十分重要。 任何响应都表示端口正在侦听。

NetBIOS 名称服务支持

默认情况下,NetBIOS 名称服务侦听 UDP 端口 137。 当 PortQry 确定此端口是 LISTENINGFILTERED 时,PortQry 将执行下列操作来确定该端口是否正在实际侦听:

  1. 如果 NetBIOS 在运行 PortQry 的计算机上可用,PortQry 将向目标计算机发送 NetBIOS 适配器状态查询。
  2. 如果目标计算机响应此查询,PortQry 将报告目标端口正在侦听 ,然后将目标计算机的媒体访问控制 (MAC) 地址返回给用户。

如果 NetBIOS 在运行 PortQry 的计算机上不可用,PortQry 不会尝试将 NetBIOS 适配器状态查询发送到目标计算机。

SNMP 支持

SNMP 支持是 PortQry 版本 2.0 中的一项新功能。 默认情况下,SNMP 服务侦听 UDP 端口 161。 为了确定端口 161 是否正在侦听,PortQry 会发送 SNMP 服务接受的格式设置查询。 SNMP 服务使用社区名称或字符串进行配置,您必须知道这些名称才能从服务器获取响应。 通过 PortQry,可以在查询此端口时指定 SNMP 社区名称。 默认情况下,PortQry 使用社区名称"Public"。 若要指定其他社区名称,请使用 -cn 命令行选项。 在命令中指定社区名称时,请用感叹号 PortQry.exe (!) 。 例如,若要指定社区名称(如 secure123), 请键入与以下命令类似的命令: portqry -n 127.0.0.1 -e 161 -p udp -cn !secure123!

示例输出

Querying target system called:

127.0.0.1

querying...

UDP port 161 (snmp service): LISTENING or FILTERED

community name for query:

secure123

Sending SNMP query to UDP port 161...

UDP port 161 is LISTENING

ISA 服务器支持

Microsoft ISA Server 支持是 PortQry 版本 2.0 中的一项新功能。 默认情况下,ISA 服务器使用 TCP 端口 1745 和 UDP 端口 1745 与 Winsock 代理客户端和防火墙客户端通信。 安装了 Winsock 代理客户端程序或防火墙客户端程序的计算机使用这些端口从 ISA 服务器请求服务并下载配置信息。 通常,这些服务包括名称解析服务和其他不基于 HTTP 的服务 (例如 Winsock) 。 为了确定端口是否正在侦听,PortQry 会以 ISA Server 接受的方式发送格式化的查询。

示例输出

例如,键入与以下命令类似的命令: portqry -n myproxy-server -p udp -e 1745

您会收到以下输出:

Querying target system called:

myproxy-server

Attempting to resolve name to IP address...

Name resolved to 169.254.24.86

querying...

UDP port 1745 (unknown service): LISTENING or FILTERED

Sending ISA query to UDP port 1745...

UDP port 1745 is LISTENING

当 PortQry 查询 TCP 端口 1745 时,如果 Mspclnt.ini 文件可用于该端口,PortQry 会从 ISA 服务器下载 Mspclnt.ini 文件。 安全Mspclnt.ini文件包含 Winsock 代理客户端和防火墙客户端使用的配置信息。

示例输出

TCP port 1745 (unknown service): LISTENING

Sending ISA query to TCP port 1745...

ISA query response:

10.0.0.0 10.255.255.255  
127.0.0.1 127.0.0.1  
169.254.0.0 169.254.255.255  
192.168.0.0 192.168.255.255  
127.0.0.0 127.255.255.255  

;  
; This file should not be edited.  
; Changes to the client configuration should only be made using ISA Management.  
;  
[Common]  
myproxy-server.example.com  
Set Browsers to use Auto Detect=1  
AutoDetect ISA Servers=1  
WebProxyPort=8080  
Port=1745  
Configuration Refresh Time (Hours)=2  
Re-check Inaccessible Server Time (Minutes)=10  
Refresh Give Up Time (Minutes)=15  
Inaccessible Servers Give Up Time (Minutes)=2  
[Servers Ip Addresses]  
Name=myproxy-server  
[My Config]  
Path1=\\myproxy-server\mspclnt\  

======== End of ISA query response ========

SQL Server 2000 支持

Microsoft SQL Server 2000 支持是 PortQry 版本 2.0 中的一项新功能。 PortQry 查询 UDP 端口 1434 以查询 SQL Server 2000 计算机上运行的所有 SQL Server 命名实例。 PortQry 发送的格式设置为 2000 SQL Server确定此端口是否侦听的查询。

示例输出

例如,键入与以下命令类似的命令: portqry -n 192.168.1.20 -e 1434 -p udp

您会收到以下输出:

Querying target system called:

192.168.1.20

querying...

UDP port 1434 (ms-sql-m service): LISTENING or FILTERED

Sending SQL Server query to UDP port 1434...

Server's response:

ServerName SQL-Server1  
InstanceName MSSQLSERVER  
IsClustered No  
Version 8.00.194  
tcp 1433  
np \SQL-Server1\pipe\sql\query

==== End of SQL Server query response ====

UDP port 1434 is LISTENING

TFTP 支持

TFTP 支持是 PortQry 版本 2.0 中的一项新功能。 默认情况下,TFTP 服务器侦听 UDP 端口 69。 PortQry 以 TFTP 服务器接受的方式发送格式化的查询,以确定此端口是否正在侦听。

示例输出

例如,键入与以下命令类似的命令: portqry -n myserver.example.com -p udp -e 69

您会收到以下输出:

Querying target system called:

myserver.example.com

Attempting to resolve name to IP address...

Name resolved to 169.254.23.4

querying...

UDP port 69 (tftp service): LISTENING or FILTERED

Sending TFTP query to UDP port 69...

UDP port 69 is LISTENING

L2TP 支持

L2TP 支持是 PortQry 版本 2.0 中的一项新功能。 路由和远程访问服务器以及其他虚拟专用网络 (VPN) 在 UDP 端口 1701 上侦听入站 L2TP 连接。 PortQry 以 VPN 服务器接受的方式发送格式化的查询,以确定此端口是否正在侦听。

示例输出

例如,键入与以下命令类似的命令: portqry -n vpnserver.example.com -e 1701-p udp

您会收到以下输出:

Querying target system called:

vpnserver

Attempting to resolve name to IP address...

Name resolved to 169.254.12.225

querying...

UDP port 1701 (l2tp service): LISTENING or FILTERED

Sending L2TP query to UDP port 1701...

UDP port 1701 is LISTENING

自定义查询使用的端口

默认情况下,每个基于 Windows Server 2003、Windows XP 和 Windows 2000 的计算机都有一个位于 %SYSTEMROOT%\System32\Drivers\Etc 文件夹中的服务文件。 PortQry 使用此文件将端口号解析为相应的服务名称。 此文件的内容指示使用命令时 PortQry 发送格式化邮件的 PortQry.exe 端口。 可以编辑此文件以指示 PortQry 将格式化邮件发送到备用端口。 例如,以下条目出现在典型的服务文件中:

ldap              389/tcp                           #Lightweight Directory Access Protocol

可以编辑此端口条目或添加其他条目。 若要使 PortQry 将 LDAP 查询发送到端口 1025,请将条目修改为以下条目:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

返回的其他服务信息

PortQry 显示某些端口可能返回的扩展信息。 PortQry 在下列服务侦听的端口上查找此"扩展信息":

  • 简单邮件传输协议 (SMTP)
  • Microsoft Exchange POP3
  • Microsoft Exchange IMAP4
  • FTP 发布服务
  • ISA 服务器服务

例如,默认情况下,FTP 服务侦听 TCP 端口 21。 当 PortQry 确定目标计算机上 TCP 端口 21 正在侦听时,它将使用服务文件中的信息来确定 FTP 服务正在此端口上侦听。

备注

通过编辑服务文件,可以更改 PortQry 确定正在侦听端口的服务。 有关详细信息,请参阅本文的"自定义查询使用的端口"部分。

在此方案中,PortQry 尝试使用匿名用户帐户登录到 FTP 服务器。 此登录尝试的结果指示目标 FTP 服务器是否接受匿名登录。 PortQry 返回服务器的响应。

示例 1: 键入与以下命令类似的命令,然后按 portqry -n MyFtpServer -p tcp -e 21 Enter:。

您收到类似于以下响应的响应:

TCP port 21 (ftp service): LISTENING

Data returned from port:  
220 Microsoft FTP Service

331 Anonymous access allowed, send identity (e-mail name) as password.

在示例 1 中,可以确定在目标端口上侦听的 FTP 服务器的类型,以及是否将 FTP 服务器配置为允许匿名用户登录。

示例 2: 键入与以下命令类似的命令,然后按 portqry -n MyMailServer -p tcp -e 25 Enter:。

您收到类似于以下响应的响应:

TCP port 25 (smtp service): LISTENING

Data returned from port:  
220 MyMailServer.domain.example.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.0 ready at Mon, 15 Dec 2003 10:24:50 -0800

在示例 2 中,可以确定在目标端口上侦听的 SMTP 服务器的类型。

PortQry 命令行选项

可以将以下命令行选项与 PortQry 一同使用:

  • -n (name) :此参数是必需的。 使用此参数指定目标计算机。 可以指定主机名或主机 IP 地址。 但是,不能将空格嵌入主机名或 IP 地址中。 PortQry 将主机名解析为 IP 地址。 如果 PortQry 无法将主机名解析为 IP 地址,该工具将报告错误,然后退出。 如果输入 IP 地址,PortQry 会解析为主机名。 如果解决方案不成功,PortQry 将报告错误,但将继续处理该命令。

    示例

    portqry -n myserver

    portqry -n www.widgets.microsoft.com

    portqry -n 192.168.1.10

  • -p (协议) :此参数是可选的。 使用此参数指定用于连接到目标计算机上目标端口的端口或协议的类型。 如果不指定协议,PortQry 将使用 TCP 作为协议。

    有效参数

    • TCP (默认) :指定 TCP 结束点。
    • UDP: 指定 UDP 终点。
    • BOTH:指定 TCP 结束点和 UDP 结束点。 使用此选项时,PortQry 将同时查询您指定的 TCP 结束点和 UDP 结束点。

    示例

    portqry -n myDomainController.example.com -p tcp

    portqry -n myServer -p udp

    portqry -n 192.168.1.20 -p 两者

    portqry -n www.widgets.microsoft.com (此命令使用默认参数 tcp。 )

  • -e (终结点) :此参数是可选的。 使用此参数指定目标 (的终点或) 端口号。 这必须是介于 1 和 65535(含 1 和 65535)之间的有效端口号。 此参数不能与 -o 参数或 -r 参数一同使用。 如果不指定端口号,PortQry 将查询端口 80。

    示例

    portqry -n myserver -p udp -e 139

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

    portqry -n myserver (此命令使用端口 80.)

    portqry -n 192.168.1.20 -p both -e 60897

  • -o (顺序) :此参数是可选的。 使用此参数指定要按特定顺序查询的一定数量的端口。 不能将此选项与 -e 参数或 -r 参数一同使用。 使用此参数时,请使用逗号分隔端口号。 可以按任意顺序输入端口号。 但是,不能在端口号和逗号分隔符之间留空格。

    示例

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

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

    portqry -n 192.168.1.20 -p both -o 100,1000,10000

  • -r (range) :此参数是可选的。 使用此参数指定要按顺序查询的端口号的范围。 不能将此选项与 -e 参数或 -o 参数一同使用。 使用此参数时,请使用分号 (;) 分隔起始端口号和结束端口号。 指定小于结束端口的起始端口。 此外,不能将空格放在端口号和分号之间。 使用此参数时,不查询 RPC 终点映射器。

    示例

    portqry -n myserver -p udp -r 135;139

    portqry-n www.widgets.microsoft.com -p tcp -r 10;20

    portqry -n 192.168.1.20 -p both -r 25;120

  • -l (日志文件) :此参数是可选的。 使用此参数指定用于日志文件 PortQry 生成的输出的项。 使用此参数时,请指定文件名和文件扩展名。 在名称中不能键入空格日志文件空格。 The 日志文件 is created in the folder where PortQry runs. PortQry 以文本日志文件生成输出结果。 如果存在日志文件名称的现有文件,则系统提示在运行命令时覆盖 PortQry 它。

    示例

    portqry -n myserver -p udp -r 135;139 -l myserverlog.txt

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

    portqry -n 192.168.1.20 -p both -e 500 -l ipsec.txt -y

  • -y (是,覆盖) :此参数是可选的。 当存在与命令中指定的同名的 日志文件 时,此参数与 -l 参数一起用于禁止显示"覆盖" PortQry 提示。 使用此参数时,PortQry 会覆盖现有日志文件而不提示您。

    示例

    portqry -n myserver -p udp -r 135;139 -l myserverlog.txt -y

    portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -l portqry.log -y

  • -sl (慢速链接) :此参数是可选的。 使用此参数会导致 PortQry 等待来自 UDP 查询的响应更长时间。 由于 UDP 是无连接协议,PortQry 无法确定端口响应速度慢还是端口已筛选。 此选项使 PortQry 在 PortQry 确定端口未侦听或已筛选之前等待来自 UDP 端口的响应的时间翻倍。 在慢速或不可靠的网络链接中查询 UDP 端口时,请使用此选项。

    示例

    portqry -n myserver -p udp -r 135;139 -l myserver.txt -sl

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

    portqry -n 192.168.1.20 -p both -e 500 -sl

  • -nr (反向名称查找) :此参数是可选的。 使用此参数可以绕过 PortQry 在您指定 IP 地址和 -n 参数时执行的反向名称查找。 默认情况下,当您将 IP 地址与 -n 参数一起指定时,PortQry 会尝试将 IP 地址解析为主机名。 此过程可能非常耗时,尤其是当 PortQry 无法解析 IP 地址时。 指定 -nr 参数 时,PortQry 不会查找 IP 地址以返回主机名。 PortQry 会立即查询目标端口。 如果同时指定主机名和 -n 参数,则忽略 -nr 参数。

    示例

    portqry -n 192.168.22.21 -p udp -r 135:139 -l myserver.txt -s -nr

    portqry -n 10.1.1.10 -p tcp -o 143,110,25 -s -nr

    portqry -n 169.254.18.22 -p 两者 -e 500 -s -nr

  • -q (安静模式) :此参数是可选的。 使用此参数会导致 PortQry 禁止显示屏幕的所有输出,错误消息除外。 当您将 PortQry 配置为在批处理文件中使用时,此参数尤其有用。 根据端口的状态,此参数返回以下输出:

    • 如果 (侦听) ,则返回 零。

    • 如果目标端口未侦听 ,则返回 1。

    • 如果目标端口为 LISTENINGFILTERED, 则返回 2。

      此参数只能与 -e 参数一同使用。 此参数不能与 -o 参数或 -r 参数一同使用。 此外,当您将 -p 参数的值设置为 Both 时,不能同时使用此参数和 -p 参数

      重要

      当您将 -q 参数与 -l (日志文件) 参数一同使用时,PortQry 会覆盖具有相同名称的现有 日志文件,而不会先提示您授予这样做的权限。

      示例批处理文件

      :Top  
      portqry -n 169.254.18.22 -e 135 -p tcp -q  
      if errorlevel = 2 goto filtered  
      if errorlevel = 1 goto failed  
      if errorlevel = 0 goto success  
      goto end
    
      :filtered  
      Echo Port is listening or filtered  
      goto end  
    
      :failed  
      Echo Port is not listening  
      Goto end  
    
      :success  
      Echo Port is listening  
      goto end  
    
      :end
    
  • -cn (社区) :此参数是可选的。 使用此参数指定发送 SNMP 查询时将使用的社区字符串或社区名称。 在此参数中,必须将社区字符串括在感叹号 (!) 。 如果不查询 SNMP 正在侦听的端口,则忽略此参数。

    示例

    portqry -n myserver -p udp -e 161 -l myserver.txt -cn ! snmp string

    portqry -n www.widgets.microsoft.com -p both -r 150:170 -sl -cn ! my_snmp_community_name

  • -sp (源端口) :此参数是可选的。 使用此参数指定在连接到目标计算机上指定的 TCP 和 UDP 端口时将使用的初始源端口。 此功能有助于测试防火墙或路由器规则,这些规则根据端口的源端口筛选端口。

    示例

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

    本示例中,PortQry 在本地计算机上使用 UDP 端口 3001 发送查询。 来自此查询的答复将转到本地计算机上 UDP 端口 3001。 如果另一个进程已绑定到该端口,PortQry 将不使用指定的源端口。 在这种情况下,PortQry 将返回以下错误消息:

    不能使用指定的源端口。
    端口已在使用中。
    指定一个不使用的端口,然后再次运行该命令。

    PortQry 在将初始查询发送到目标计算机时使用指定的源端口。 如果 PortQry 尝试使用 FTP、SMTP、POP、IMAP、DNS、SNMP、ISA 服务器等协议查询目标计算机,则还会使用此指定的源端口。 此规则只有以下例外:

    RPC (TCP 和 UDP 端口 135)

    LDAP (UDP 端口 389)

    UDP 端口 137 (NetBIOS 适配器状态)

    ISAKMP (UDP 端口 500) (Internet 安全关联和密钥管理)

    在这些特殊情况中,PortQry 使用指定的源端口进行其初始查询。 当它尝试通过例外协议之一查询目标计算机时,它将通过临时源端口查询目标计算机。 例如,如果在查询 UDP 端口 389 (LDAP) 时指定源端口 3000,PortQry 将使用 UDP 端口 3000(如果可用于发送到 LDAP 端口的初始 UDP 数据报)。 当 PortQry 将 LDAP 查询发送到 LDAP 端口时,PortQry 使用临时端口,而不是指定的源端口。 (此示例中,指定的源端口为 3000) 。 当 PortQry 将临时端口用于特定查询时,PortQry 将发送以下消息:

    使用临时源端口 通过 ISAKMP/IPSec,IPSec 策略代理只能将来自查询的响应发送回 UDP 端口 500。 在这种情况下,最好让 PortQry 将 UDP 端口 500 用作查询的源端口。 如果 IPSec 策略代理在运行 PortQry 的计算机上运行,则 UDP 端口 500 不可用,因为策略代理正在使用该端口。 在这种情况下,PortQry 返回以下消息:无法使用源端口 500,此端口已在使用中。 远程 ISAKMP/IPSec 服务只能与源端口 500 通信。 暂时关闭运行 PortQry 的系统上的"IPSEC 策略代理"或"IPSEC 服务",然后再次运行命令

    示例:net stop PolicyAgent

    运行 Portqry 以查询 ISAKMP

    net start PolicyAgent

附加功能

PortQry 版本 2.0 包括以下新功能:

  • PortQry 交互模式
  • PortQry 本地模式

PortQry 交互模式

使用 PortQry 版本 1.22,用户可以在命令提示符窗口中从命令行查询端口。 解决计算机之间的连接问题时,可能必须键入许多重复的命令。 通过 PortQry 版本 2.0,您可以这样运行命令,但 PortQry 版本 2.0 也具有交互式模式。 交互模式类似于 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)

可以将其他参数与 -i 参数一同使用,以更改 PortQry 使用的设置。 例如,键入与以下命令类似的命令,然后按 portqry -i -e 53 -n 192.168.1.20 -p both -sp 2030 Enter:。

您会收到以下输出:

Portqry Interactive Mode

Type 'help' for a list of commands

Default Node: 192.168.1.20

Current option values:
end port= 53
protocol= BOTH
source port= 2300

PortQry 本地模式

PortQry 本地操作模式旨在提供有关运行 PortQry 的本地计算机上 TCP 端口和 UDP 端口的详细信息。 PortQry 有以下三个基本命令可用于本地模式:

  • portqry.exe -local:运行此命令时,PortQry 会尝试枚举本地计算机上当前处于活动状态的所有 TCP 和 UDP 端口映射。 此输出类似于命令 netstat.exe -an 生成的输出。

    示例输出

    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  
    UDP 161 0.0.0.0 :  
    TCP 445 0.0.0.0 LISTENING 0.0.0.0:34836  
    TCP 445 169.254.149.9 ESTABLISHED 169.254.53.54:4443  
    TCP 445 169.254.149.9 ESTABLISHED 169.254.112.122:2111  
    TCP 445 169.254.149.9 ESTABLISHED 169.254.112.199:1188  
    TCP 445 169.254.149.9 ESTABLISHED 169.254.113.96:1221  
    TCP 445 169.254.149.9 ESTABLISHED 169.254.200.222:3762  
    UDP 445 0.0.0.0 :  
    UDP 500 169.254.149.9 :  
    TCP 593 0.0.0.0 LISTENING 0.0.0.0:59532  
    UDP 1029 0.0.0.0 :  
    TCP 1040 127.0.0.1 LISTENING 0.0.0.0:18638  
    UDP 1045 0.0.0.0 :  
    TCP 1048 127.0.0.1 LISTENING 0.0.0.0:2240  
    TCP 1053 127.0.0.1 LISTENING 0.0.0.0:26649  
    TCP 1061 127.0.0.1 LISTENING 0.0.0.0:26874  
    TCP 1067 127.0.0.1 LISTENING 0.0.0.0:2288  
    TCP 1068 0.0.0.0 LISTENING 0.0.0.0:2048  
    TCP 1088 127.0.0.1 LISTENING 0.0.0.0:35004  
    UDP 1089 0.0.0.0 :  
    TCP 1091 127.0.0.1 LISTENING 0.0.0.0:43085  
    TCP 1092 0.0.0.0 LISTENING 0.0.0.0:2096  
    TCP 1094 127.0.0.1 LISTENING 0.0.0.0:51268  
    TCP 1097 127.0.0.1 LISTENING 0.0.0.0:2104  
    TCP 1098 0.0.0.0 LISTENING 0.0.0.0:43053  
    TCP 1108 0.0.0.0 LISTENING 0.0.0.0:2160  
    TCP 1108 169.254.149.9 ESTABLISHED 169.254.12.210:1811  
    TCP 1117 127.0.0.1 LISTENING 0.0.0.0:26819  
    TCP 1118 0.0.0.0 LISTENING 0.0.0.0:43121  
    TCP 1119 0.0.0.0 LISTENING 0.0.0.0:26795  
    TCP 1121 0.0.0.0 LISTENING 0.0.0.0:26646  
    UDP 1122 0.0.0.0 :  
    TCP 1123 0.0.0.0 LISTENING 0.0.0.0:35013  
    UDP 1126 0.0.0.0 :  
    TCP 1137 127.0.0.1 LISTENING 0.0.0.0:34820  
    TCP 1138 0.0.0.0 LISTENING 0.0.0.0:26696  
    TCP 1138 169.254.149.9 CLOSE WAIT 169.254.5.103:80  
    TCP 1170 127.0.0.1 LISTENING 0.0.0.0:34934  
    TCP 1179 127.0.0.1 LISTENING 0.0.0.0:59463  
    TCP 1228 127.0.0.1 LISTENING 0.0.0.0:2128  
    UDP 1352 0.0.0.0 :  
    TCP 1433 0.0.0.0 LISTENING 0.0.0.0:2064  
    UDP 1434 0.0.0.0 :  
    TCP 1670 0.0.0.0 LISTENING 0.0.0.0:2288  
    TCP 1670 169.254.149.9 ESTABLISHED 169.254.233.87:445  
    TCP 1686 127.0.0.1 LISTENING 0.0.0.0:51309  
    UDP 1687 127.0.0.1 :  
    TCP 1688 0.0.0.0 LISTENING 0.0.0.0:2135  
    TCP 1688 169.254.149.9 CLOSE WAIT 169.254.113.87:80  
    TCP 1689 0.0.0.0 LISTENING 0.0.0.0:51368  
    TCP 1689 169.254.149.9 CLOSE WAIT 169.254.113.87:80  
    TCP 1693 169.254.149.9 TIME WAIT 169.254.121.106:445  
    UDP 1698 0.0.0.0 :  
    TCP 1728 127.0.0.1 LISTENING 0.0.0.0:2077  
    TCP 1766 127.0.0.1 LISTENING 0.0.0.0:35061  
    TCP 2605 127.0.0.1 LISTENING 0.0.0.0:2069  
    TCP 3302 127.0.0.1 LISTENING 0.0.0.0:2048  
    TCP 3372 0.0.0.0 LISTENING 0.0.0.0:18612  
    TCP 3389 0.0.0.0 LISTENING 0.0.0.0:18542  
    TCP 3389 169.254.149.9 ESTABLISHED 169.254.112.67:2796  
    TCP 3389 169.254.149.9 ESTABLISHED 169.254.113.96:4603  
    TCP 3389 169.254.149.9 ESTABLISHED 169.254.201.100:3917  
    UDP 3456 0.0.0.0 :  
    TCP 3970 0.0.0.0 LISTENING 0.0.0.0:35012  
    TCP 3970 169.254.149.9 CLOSE WAIT 169.254.5.138:80  
    TCP 3972 0.0.0.0 LISTENING 0.0.0.0:51245  
    TCP 3972 169.254.149.9 CLOSE WAIT 169.254.5.138:80  
    TCP 4166 127.0.0.1 LISTENING 0.0.0.0:2208  
    UDP 4447 0.0.0.0 :  
    TCP 4488 127.0.0.1 LISTENING 0.0.0.0:10358  
    UDP 4500 169.254.149.9 :  
    TCP 4541 127.0.0.1 LISTENING 0.0.0.0:10442  
    TCP 4562 0.0.0.0 LISTENING 0.0.0.0:2192  
    TCP 4562 169.254.149.9 ESTABLISHED 169.254.0.40:1025  
    UDP 4563 0.0.0.0 :  
    UDP 4564 0.0.0.0 :  
    TCP 4566 0.0.0.0 LISTENING 0.0.0.0:51257  
    TCP 4566 169.254.149.9 ESTABLISHED 169.254.12.18:1492  
    TCP 4568 127.0.0.1 LISTENING 0.0.0.0:26665  
    TCP 4569 0.0.0.0 LISTENING 0.0.0.0:43186  
    TCP 4569 169.254.149.9 CLOSE WAIT 169.254.4.38:80  
    TCP 4756 0.0.0.0 LISTENING 0.0.0.0:51268  
    UDP 4758 0.0.0.0 :  
    TCP 8953 0.0.0.0 LISTENING 0.0.0.0:26667  
    TCP 42510 0.0.0.0 LISTENING 0.0.0.0:51323  
    UDP 43508 169.254.149.9 :  
    
    Port Statistics
    
    TCP mappings: 74  
    UDP mappings: 22
    
    TCP ports in a LISTENING state: 51 = 68.92%  
    TCP ports in a ESTABLISHED state: 14 = 18.92%  
    TCP ports in a CLOSE WAIT state: 6 = 8.11%  
    TCP ports in a TIME WAIT state: 3 = 4.05%
    

    在支持进程 ID (PID) 到端口映射的计算机上,输出包括使用本地计算机上的端口的进程的进程 ID。 如果将详细选项用于 (-v) ,则输出还包括进程 ID 所属的服务的名称,并列出进程已加载的所有模块。 对一些信息的访问受到限制。 例如,禁止访问 Idle 和 CSRSS 进程模块信息,因为它们的访问限制阻止用户级代码打开它们。 PortQry 报告每个进程可以访问的信息。 为了获得最佳结果,请在本地管理员或具有类似凭据的帐户的上下文中 Portqry -local 运行命令。 以下示例摘录日志文件运行命令时可能收到的报告 Portqry -local 级别:

    TCP/UDP Port to Process Mappings
    
    55 mappings found
    
    PID:ProcessPortLocal IPState Remote IP:Port  
    0:System IdleTCP 4442 169.254.113.96 TIME WAIT 169.254.5.136:80  
    0:System IdleTCP 4456 169.254.113.96 TIME WAIT 169.254.5.44:445  
    4:SystemTCP 445 0.0.0.0 LISTENING 0.0.0.0:2160  
    4:SystemTCP 139 169.254.113.96 LISTENING 0.0.0.0:24793  
    4:SystemTCP 1475 169.254.113.96 ESTABLISHED 169.254.8.176:445  
    4:SystemUDP 445 0.0.0.0 :  
    4:SystemUDP 137 169.254.113.96 :  
    4:SystemUDP 138 169.254.113.96 :  
    424:winlogon.exeTCP 1200 169.254.113.96 CLOSE WAIT 169.254.5.44:389  
    424:winlogon.exeUDP 1100 0.0.0.0 :  
    484:lsass.exeTCP 1064 0.0.0.0 LISTENING 0.0.0.0:2064  
    484:lsass.exeUDP 500 0.0.0.0 :  
    484:lsass.exeUDP 1031 0.0.0.0 :  
    484:lsass.exeUDP 4500 0.0.0.0 :  
    668:svchost.exeTCP 135 0.0.0.0 LISTENING 0.0.0.0:16532  
    728:svchost.exeTCP 3389 0.0.0.0 LISTENING 0.0.0.0:45088  
    800UDP 1026 0.0.0.0 :  
    800UDP 1027 0.0.0.0 :  
    836:svchost.exeTCP 1025 0.0.0.0 LISTENING 0.0.0.0:43214  
    836:svchost.exeTCP 1559 169.254.113.96 CLOSE WAIT 169.254.5.44:389  
    836:svchost.exeUDP 1558 0.0.0.0 :  
    836:svchost.exeUDP 123 127.0.0.1 :  
    836:svchost.exeUDP 3373 127.0.0.1 :  
    836:svchost.exeUDP 123 169.254.113.96 :  
    1136:mstsc.exeTCP 2347 169.254.113.96 ESTABLISHED 172.30.137.221:3389  
    1136:mstsc.exeUDP 2348 0.0.0.0 :  
    1276:dns.exeTCP 53 0.0.0.0 LISTENING 0.0.0.0:2160  
    1276:dns.exeTCP 1087 0.0.0.0 LISTENING 0.0.0.0:37074  
    1276:dns.exeUDP 1086 0.0.0.0 :  
    1276:dns.exeUDP 2126 0.0.0.0 :  
    1276:dns.exeUDP 53 127.0.0.1 :  
    1276:dns.exeUDP 1085 127.0.0.1 :  
    1276:dns.exeUDP 53 169.254.113.96 :  
    1328:InoRpc.exeTCP 42510 0.0.0.0 LISTENING 0.0.0.0:220  
    1328:InoRpc.exeUDP 43508 169.254.113.96 :  
    1552:CcmExec.exeUDP 1114 0.0.0.0 :  
    1896:WINWORD.EXETCP 3807 169.254.113.96 CLOSE WAIT 169.254.237.37:3268  
    1896:WINWORD.EXEUDP 3806 0.0.0.0 :  
    1896:WINWORD.EXEUDP 1510 127.0.0.1 :  
    2148:IEXPLORE.EXETCP 4446 169.254.113.96 ESTABLISHED 169.254.113.92:80  
    2148:IEXPLORE.EXEUDP 4138 127.0.0.1 :  
    3200:program.exeTCP 1906 169.254.113.96 ESTABLISHED 169.254.0.40:1025  
    3200:program.exeTCP 4398 169.254.113.96 ESTABLISHED 169.254.209.96:1433  
    3200:program.exeTCP 4438 169.254.113.96 ESTABLISHED 169.254.209.96:1433  
    3592:OUTLOOK.EXETCP 1256 169.254.113.96 ESTABLISHED 169.254.1.105:1025  
    3592:OUTLOOK.EXETCP 2214 169.254.113.96 CLOSE WAIT 169.254.237.37:3268  
    3592:OUTLOOK.EXETCP 2971 169.254.113.96 ESTABLISHED 169.254.5.216:1434  
    3592:OUTLOOK.EXETCP 4439 169.254.113.96 ESTABLISHED 169.254.47.242:1788  
    3592:OUTLOOK.EXEUDP 1307 0.0.0.0 :  
    3592:OUTLOOK.EXEUDP 1553 0.0.0.0 :  
    3660:IEXPLORE.EXETCP 4452 169.254.113.96 ESTABLISHED 169.254.9.74:80  
    3660:IEXPLORE.EXETCP 4453 169.254.113.96 ESTABLISHED 169.254.9.74:80  
    3660:IEXPLORE.EXETCP 4454 169.254.113.96 ESTABLISHED 169.254.230.88:80  
    3660:IEXPLORE.EXEUDP 4451 127.0.0.1 :  
    4048:program2.exeUDP 3689 127.0.0.1 :  
    
    Port Statistics
    
    TCP mappings: 27
    UDP mappings: 28
    
    TCP ports in a LISTENING state: 9 = 33.33%  
    TCP ports in a ESTABLISHED state: 12 = 44.44%  
    TCP ports in a CLOSE WAIT state: 4 = 14.81%  
    TCP ports in a TIME WAIT state: 2 = 7.41%  
    
    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
    
    ======================================================
    
    Process ID: 4 (System Process)
    
    PIDPortLocal IPState Remote IP:Port  
    4TCP 445 0.0.0.0 LISTENING 0.0.0.0:2160  
    4TCP 139 169.254.113.96 LISTENING 0.0.0.0:24793  
    4TCP 1475 169.254.113.96 ESTABLISHED 169.254.8.176:445  
    4UDP 445 0.0.0.0 :  
    4UDP 137 169.254.113.96 :  
    4UDP 138 169.254.113.96 :  
    
    Port Statistics
    
    TCP mappings: 3  
    UDP mappings: 3
    
    TCP ports in a LISTENING state: 2 = 66.67%  
    TCP ports in a ESTABLISHED state: 1 = 33.33%
    
    Could not access module information for this process
    
    ======================================================
    
    Process ID: 352 (smss.exe)
    
    Process doesn't appear to be a service
    
    Port Statistics
    
    TCP mappings: 0  
    UDP mappings: 0
    
    Loaded modules:  
    \SystemRoot\System32\smss.exe (0x48580000)
    
    C:\WINDOWS\system32\ntdll.dll (0x77F40000)  
    
    ======================================================
    
    Process ID: 484 (lsass.exe)
    
    Service Name: Netlogon  
    Display Name: Net Logon  
    Service Type: shares a process with other services
    
    Service Name: PolicyAgent  
    Display Name: IPSEC Services  
    Service Type: shares a process with other services
    
    Service Name: ProtectedStorage  
    Display Name: Protected Storage
    
    Service Name: SamSs  
    Display Name: Security Accounts Manager  
    Service Type: shares a process with other services
    
    PIDPortLocal IPState Remote IP:Port  
    484TCP 1064 0.0.0.0 LISTENING 0.0.0.0:2064  
    484UDP 500 0.0.0.0 :  
    484UDP 1031 0.0.0.0 :  
    484UDP 4500 0.0.0.0 :
    
    Port Statistics
    
    TCP mappings: 1  
    UDP mappings: 3
    
    TCP ports in a LISTENING state: 1 = 100.00%
    
    Loaded modules:  
    C:\WINDOWS\system32\lsass.exe (0x01000000)  
    C:\WINDOWS\system32\ntdll.dll (0x77F40000)  
    C:\WINDOWS\system32\kernel32.dll (0x77E40000)  
    C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000)  
    C:\WINDOWS\system32\RPCRT4.dll (0x77C50000)  
    C:\WINDOWS\system32\LSASRV.dll (0x742C0000)  
    C:\WINDOWS\system32\msvcrt.dll (0x77BA0000)  
    C:\WINDOWS\system32\Secur32.dll (0x76F50000)  
    C:\WINDOWS\system32\USER32.dll (0x77D00000)  
    C:\WINDOWS\system32\GDI32.dll (0x77C00000)  
    C:\WINDOWS\system32\SAMSRV.dll (0x741D0000)  
    C:\WINDOWS\system32\cryptdll.dll (0x766E0000)  
    C:\WINDOWS\system32\DNSAPI.dll (0x76ED0000)  
    C:\WINDOWS\system32\WS2_32.dll (0x71C00000)  
    C:\WINDOWS\system32\WS2HELP.dll (0x71BF0000)  
    C:\WINDOWS\system32\MSASN1.dll (0x76190000)  
    C:\WINDOWS\system32\NETAPI32.dll (0x71C40000)  
    C:\WINDOWS\system32\SAMLIB.dll (0x5CCF0000)  
    C:\WINDOWS\system32\MPR.dll (0x71BD0000)  
    C:\WINDOWS\system32\NTDSAPI.dll (0x766F0000)  
    C:\WINDOWS\system32\WLDAP32.dll (0x76F10000)  
    C:\WINDOWS\system32\IMM32.DLL (0x76290000)  
    C:\WINDOWS\system32\LPK.DLL (0x62D80000)  
    
    ======================================================
    
    Process ID: 668 (svchost.exe)
    
    Service Name: RpcSs  
    Display Name: Remote Procedure Call (RPC)  
    Service Type: shares a process with other services
    
    PIDPortLocal IPState Remote IP:Port  
    668TCP 135 0.0.0.0 LISTENING 0.0.0.0:16532
    
    Port Statistics
    
    TCP mappings: 1  
    UDP mappings: 0
    
    TCP ports in a LISTENING state: 1 = 100.00%
    
    Loaded modules:  
    C:\WINDOWS\system32\svchost.exe (0x01000000)  
    C:\WINDOWS\system32\ntdll.dll (0x77F40000)  
    C:\WINDOWS\system32\kernel32.dll (0x77E40000)  
    C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000)  
    C:\WINDOWS\system32\RPCRT4.dll (0x77C50000)  
    c:\windows\system32\rpcss.dll (0x75700000)  
    C:\WINDOWS\system32\msvcrt.dll (0x77BA0000)  
    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\Secur32.dll (0x76F50000)  
    C:\WINDOWS\system32\IMM32.DLL (0x76290000)  
    C:\WINDOWS\system32\LPK.DLL (0x62D80000)  
    C:\WINDOWS\system32\USP10.dll (0x73010000)  
    C:\WINDOWS\system32\mswsock.dll (0x71B20000)  
    C:\Program Files\Microsoft Firewall Client\wspwsp.dll (0x55600000)  
    C:\WINDOWS\system32\iphlpapi.dll (0x76CF0000)  
    C:\WINDOWS\System32\wshqos.dll (0x57B60000)  
    C:\WINDOWS\system32\wshtcpip.dll (0x71AE0000)  
    C:\WINDOWS\system32\CLBCatQ.DLL (0x76F90000)  
    C:\WINDOWS\system32\OLEAUT32.dll (0x770E0000)  
    C:\WINDOWS\system32\ole32.dll (0x77160000)  
    C:\WINDOWS\system32\COMRes.dll (0x77010000)  
    C:\WINDOWS\system32\VERSION.dll (0x77B90000)  
    C:\WINDOWS\system32\msi.dll (0x76300000)  
    C:\WINDOWS\system32\WTSAPI32.dll (0x76F00000)  
    C:\WINDOWS\system32\WINSTA.dll (0x76260000)  
    C:\WINDOWS\system32\NETAPI32.dll (0x71C40000)  
    C:\WINDOWS\system32\USERENV.dll (0x75970000)  
    
    ========= end of log file =========
    

    可以使用此信息来确定哪些端口与计算机上运行的特定程序或服务相关联。 在某些情况下,Portqry 可能会报告 PID 0 (PID 0) 正在使用某些 TCP 端口。 如果本地程序连接到 TCP 端口,然后停止,则可能会发生此行为。 程序与端口的 TCP 连接可能以"Timed Wait"状态存在,即使程序不再运行。 在这种情况下,Portqry 可能会检测到端口在使用中。 但是,Portqry 无法标识使用该端口的程序,因为程序已停止。 PID 已发布。 即使使用端口的进程已停止,该端口也可能在数分钟内"Timed Wait"状态。 默认情况下,该端口保持"Timed Wait"状态的时间为最长段生存期的两倍。

  • portqry.exe -wport port_number ( 监视端口) :通过监视端口命令,PortQry 可以监视指定端口的更改。 这些更改可能包括增加或减少与端口的连接数或更改任何一个现有连接的连接状态。 例如,键入以下命令,然后按 portqry -wport 53 Enter:。

    因此,PortQry 监视 TCP 和 UDP 端口 53。 PortQry 报告何时对此端口建立任何新的 TCP 连接。 PortQry 还会报告指定 TCP 端口的以下一个或多个状态更改:

    CLOSE_WAIT

    CLOSED

    ESTABLISHED

    FIN_WAIT_1

    LAST_ACK

    LISTEN

    SYN_RECEIVED

    SYN_SEND

    TIMED_WAIT

    例如,如果连接的状态从 ESTABLISHED 更改为 CLOSE_WAIT,则状态发生了更改。 当端口的状态更改时,PortQry 将显示端口的连接表。 Portqry 报告程序是否绑定到 UDP 端口,但不报告 UDP 端口是否接收数据报。

    可选参数

    • -v (详细) :有关其他状态信息,在 PortQry 命令行中包括 -v 参数。 使用此参数时,PortQry 还会显示使用这些端口的模块。 例如,键入 portqry.exe -wport 135 -v

    • -wt (监视) :默认情况下,PortQry 每 60 秒检查一次指定端口的连接表中的更改。 若要配置此间隔,请使用 -wt 参数。 例如,键入以下命令,然后按 portqry.exe -wport 135 -v -wt 2 Enter:。

      因此,PortQry 每 2 秒检查 TCP 端口 135 和 UDP 端口 135 的更改。 你可以指定从 1 到 1200 之间的时间间隔, (包含) 。 通过此参数,可以每 1 秒监视一次更改,最多每 20 分钟监视一次更改。

    • -l (日志文件) :若要记录监视端口命令的输出,请使用 -l 参数。 例如,键入以下命令,然后按 portqry.exe -wport 2203 -v -wt 30 -l test.txt Enter:。

      因此,会生成日志文件与以下日志文件类似的代码:

      Portqry Version 2.0 Log File
      
      System Date: <DateTime>
      
      Command run:  
      portqry -wport 135 -v -l test.txt
      
      Local computer name:
      
      host123
      
      Watching port: 135
      
      Checking for changes every 60 seconds
      
      verbose output requested
      
      ============  
      System Date: <DateTime>
      
      ======================================================
      
      Process ID: 952 (svchost.exe)
      
      Service Name: RpcSs  
      Display Name: Remote Procedure Call (RPC)  
      Service Type: shares a process with other services
      
      PIDPortLocal IPState Remote IP:Port  
      952TCP 135 0.0.0.0 LISTENING 0.0.0.0:45198  
      952UDP 135 0.0.0.0 :
      
      Port Statistics
      
      TCP mappings: 1  
      UDP mappings: 1
      
      TCP ports in a LISTENING state: 1 = 100.00%
      
      Loaded modules:  
      D:\WINDOWS\system32\svchost.exe (0x01000000)
      
      D:\WINDOWS\System32\ntdll.dll (0x77F50000)  
      D:\WINDOWS\system32\kernel32.dll (0x77E60000)  
      D:\WINDOWS\system32\ADVAPI32.dll (0x77DD0000)  
      D:\WINDOWS\system32\RPCRT4.dll (0x78000000)  
      d:\windows\system32\rpcss.dll (0x75850000)  
      D:\WINDOWS\system32\msvcrt.dll (0x77C10000)  
      d:\windows\system32\WS2_32.dll (0x71AB0000)  
      d:\windows\system32\WS2HELP.dll (0x71AA0000)  
      D:\WINDOWS\system32\USER32.dll (0x77D40000)  
      D:\WINDOWS\system32\GDI32.dll (0x77C70000)  
      d:\windows\system32\Secur32.dll (0x76F90000)  
      D:\WINDOWS\system32\userenv.dll (0x75A70000)  
      D:\WINDOWS\system32\mswsock.dll (0x71A50000)  
      D:\WINDOWS\System32\wshtcpip.dll (0x71A90000)  
      D:\WINDOWS\system32\DNSAPI.dll (0x76F20000)  
      D:\WINDOWS\system32\iphlpapi.dll (0x76D60000)  
      D:\WINDOWS\System32\winrnr.dll (0x76FB0000)  
      D:\WINDOWS\system32\WLDAP32.dll (0x76F60000)  
      D:\WINDOWS\system32\rasadhlp.dll (0x76FC0000)  
      D:\WINDOWS\system32\CLBCATQ.DLL (0x76FD0000)  
      D:\WINDOWS\system32\ole32.dll (0x771B0000)  
      D:\WINDOWS\system32\OLEAUT32.dll (0x77120000)  
      D:\WINDOWS\system32\COMRes.dll (0x77050000)  
      D:\WINDOWS\system32\VERSION.dll (0x77C00000)  
      System Date: <DateTime>
      
      ======================================================
      
      Process ID: 952 (svchost.exe)
      
      Service Name: RpcSs  
      Display Name: Remote Procedure Call (RPC)  
      Service Type: shares a process with other services
      
      PIDPortLocal IPState Remote IP:Port  
      952TCP 135 0.0.0.0 LISTENING 0.0.0.0:45198  
      952UDP 135 0.0.0.0 :  
      952UDP 135 0.0.0.0 :
      
      Port Statistics
      
      TCP mappings: 1  
      UDP mappings: 2
      
      TCP ports in a LISTENING state: 1 = 100.00%  
      Loaded modules:  
      D:\WINDOWS\system32\svchost.exe (0x01000000)  
      D:\WINDOWS\System32\ntdll.dll (0x77F50000)  
      D:\WINDOWS\system32\kernel32.dll (0x77E60000)  
      D:\WINDOWS\system32\ADVAPI32.dll (0x77DD0000)  
      D:\WINDOWS\system32\RPCRT4.dll (0x78000000)  
      d:\windows\system32\rpcss.dll (0x75850000)  
      D:\WINDOWS\system32\msvcrt.dll (0x77C10000)  
      d:\windows\system32\WS2_32.dll (0x71AB0000)  
      d:\windows\system32\WS2HELP.dll (0x71AA0000)  
      D:\WINDOWS\system32\USER32.dll (0x77D40000)  
      D:\WINDOWS\system32\GDI32.dll (0x77C70000)  
      d:\windows\system32\Secur32.dll (0x76F90000)  
      D:\WINDOWS\system32\userenv.dll (0x75A70000)  
      D:\WINDOWS\system32\mswsock.dll (0x71A50000)  
      D:\WINDOWS\System32\wshtcpip.dll (0x71A90000)  
      D:\WINDOWS\system32\DNSAPI.dll (0x76F20000)  
      D:\WINDOWS\system32\iphlpapi.dll (0x76D60000)  
      D:\WINDOWS\System32\winrnr.dll (0x76FB0000)  
      D:\WINDOWS\system32\WLDAP32.dll (0x76F60000)  
      D:\WINDOWS\system32\rasadhlp.dll (0x76FC0000)  
      D:\WINDOWS\system32\CLBCATQ.DLL (0x76FD0000)  
      D:\WINDOWS\system32\ole32.dll (0x771B0000)  
      D:\WINDOWS\system32\OLEAUT32.dll (0x77120000)  
      D:\WINDOWS\system32\COMRes.dll (0x77050000)  
      D:\WINDOWS\system32\VERSION.dll (0x77C00000)  
      
      escape key pressed: stopped watching port 135  
      System Date: <DateTime>
      
      ========= end of log file =========
      
  • portqry.exe -wpid process_number ( PID) :通过监视 PID 命令,PortQry 将监视 PID (PID) 的更改。 这些更改可能包括增加或减少与端口的连接数,或者任何现有连接的连接状态更改。 此命令支持与监视端口命令相同的可选参数。 例如,键入以下命令,然后按 portqry.exe -wpid 1276 -wt 2 -v -l pid.txt Enter:。

    因此,会生成日志文件与以下日志文件类似的代码:

    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)  
    C:\WINDOWS\system32\WLDAP32.dll (0x76F10000)  
    C:\WINDOWS\System32\DNSAPI.dll (0x76ED0000)  
    C:\WINDOWS\System32\NTDSAPI.dll (0x766F0000)  
    C:\WINDOWS\System32\Secur32.dll (0x76F50000)  
    C:\WINDOWS\system32\SHLWAPI.dll (0x77290000)  
    C:\WINDOWS\System32\iphlpapi.dll (0x76CF0000)  
    C:\WINDOWS\System32\MPRAPI.dll (0x76CD0000)  
    C:\WINDOWS\System32\ACTIVEDS.dll (0x76DF0000)  
    C:\WINDOWS\System32\adsldpc.dll (0x76DC0000)  
    C:\WINDOWS\System32\credui.dll (0x76B80000)  
    C:\WINDOWS\system32\SHELL32.dll (0x77380000)  
    C:\WINDOWS\System32\ATL.DLL (0x76A80000)  
    C:\WINDOWS\system32\ole32.dll (0x77160000)  
    C:\WINDOWS\system32\OLEAUT32.dll (0x770E0000)  
    C:\WINDOWS\System32\rtutils.dll (0x76E30000)  
    C:\WINDOWS\System32\SAMLIB.dll (0x5CCF0000)  
    C:\WINDOWS\System32\SETUPAPI.dll (0x765A0000)  
    C:\WINDOWS\system32\IMM32.DLL (0x76290000)  
    C:\WINDOWS\System32\LPK.DLL (0x62D80000)  
    C:\WINDOWS\System32\USP10.dll (0x73010000)  
    C:\WINDOWS\System32\netman.dll (0x76D80000)  
    C:\WINDOWS\System32\RASAPI32.dll (0x76E90000)  
    C:\WINDOWS\System32\rasman.dll (0x76E40000)  
    C:\WINDOWS\System32\TAPI32.dll (0x76E60000)  
    C:\WINDOWS\System32\WINMM.dll (0x76AA0000)  
    C:\WINDOWS\system32\CRYPT32.dll (0x761B0000)  
    C:\WINDOWS\system32\MSASN1.dll (0x76190000)  
    C:\WINDOWS\System32\WZCSvc.DLL (0x76D30000)  
    C:\WINDOWS\System32\WMI.dll (0x76CC0000)  
    C:\WINDOWS\System32\DHCPCSVC.DLL (0x76D10000)  
    C:\WINDOWS\System32\WTSAPI32.dll (0x76F00000)  
    C:\WINDOWS\System32\WINSTA.dll (0x76260000)  
    C:\WINDOWS\System32\ESENT.dll (0x69750000)  
    C:\WINDOWS\System32\WZCSAPI.DLL (0x730A0000)  
    C:\WINDOWS\system32\mswsock.dll (0x71B20000)  
    C:\WINDOWS\System32\wshtcpip.dll (0x71AE0000)  
    C:\WINDOWS\System32\winrnr.dll (0x76F70000)  
    C:\WINDOWS\System32\rasadhlp.dll (0x76F80000)  
    C:\WINDOWS\system32\kerberos.dll (0x71CA0000)  
    C:\WINDOWS\System32\cryptdll.dll (0x766E0000)  
    C:\WINDOWS\system32\msv1_0.dll (0x76C90000)  
    C:\WINDOWS\System32\security.dll (0x71F60000)
    
    escape key pressed: stopped watching PID 1276  
    System Date: <DateTime>
    
    ========= end of log file =========
    

    使用 命令,可以监视单个端口的更改,但使用 命令,可以监视指定的 PID 用于更改 -wport -wpid 的所有端口。 进程可能使用了许多端口,PortQry 会监视所有这些端口的更改。

    重要

    将命令或命令与日志记录参数 ( -l) 一同使用时,必须按 Esc 键停止 -wport -wpid PortQry for PortQry 以正确关闭 日志文件 并退出。 如果按 Ctrl+C 停止 PortQry 而不是 ESC,日志文件无法正确关闭。 在此方案中,日志文件可能为空或损坏。

参考

有关如何使用 PortQry 的其他信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

310099 Portqry.exe命令行实用程序的说明

重要

PortQueryUI 工具提供图形用户界面并可供下载。 PortQueryUI 具有多个功能,可简化使用 PortQry。 若要获取 PortQueryUI 工具,请访问以下 Microsoft 网站:

https://download.microsoft.com/download/3/f/4/3f4c6a54-65f0-4164-bdec-a3411ba24d3a/PortQryUI.exe