# windows PortQry测试udp端口以及tcp端口是否通 在 Windows 系统中,**PortQry** 是一款经典的命令行工具(由微软提供),可用于检测 TCP/UDP 端口的状态(开放、关闭或被过滤)。以下是详细的使用方法和示例: ## 一、PortQry 简介 - **功能**:查询远程或本地主机的 TCP/UDP 端口是否开放、被过滤或无响应。 - **适用场景**:网络故障排查、端口连通性验证。 - **版本**:推荐使用 **PortQry v2**(支持更多功能,如本地端口映射),可从微软官网或可信渠道下载(如 [Microsoft Download Center](https://www.microsoft.com/en-us/download/details.aspx?id=17148))。 ## 二、基本语法 ``` portqry -n <目标IP/域名> -p <协议> -e <端口号> ``` - `-n`:指定目标主机的 IP 地址或域名(必选)。 - `-p`:指定协议(`tcp`或 `udp`,必选)。 - `-e`:指定单个端口号(如 `-e 80`);若需测试多个端口,可用 `-r`(范围,如 `-r 50-100`)或 `-o`(列表,如 `-o 21,22,80`)。 - 可选参数: - `-l <日志文件>`:将结果保存到日志文件(如 `-l C:\log.txt`)。 - `-v`:显示详细信息(Verbose)。 ## 三、测试 TCP 端口 TCP 是面向连接的协议,PortQry 会主动建立连接,结果更明确。 ### 示例 1:测试单个 TCP 端口(如 80 端口) ``` portqry -n www.example.com -p tcp -e 80 ``` - **输出说明**: - `LISTENING`:目标主机的 80 端口已开放并监听(可正常连接)。 - `NOT LISTENING`:目标主机的 80 端口未开放(无进程监听)。 - `FILTERED`:端口被防火墙/网络设备过滤(无法判断具体状态)。 ### 示例 2:测试多个 TCP 端口(如 20-25 端口) ``` portqry -n 192.168.1.1 -p tcp -r 20-25 -v ``` ## 四、测试 UDP 端口 UDP 是无连接协议,PortQry 通过发送 UDP 数据包并等待响应来判断状态(若目标无响应,可能显示 `FILTERED`)。 ### 示例 1:测试单个 UDP 端口(如 DNS 的 53 端口) ``` portqry -n 8.8.8.8 -p udp -e 53 ``` - **输出说明**: - `LISTENING`:目标主机的 53 端口响应了请求(可能开放)。 - `NOT LISTENING`:目标返回 ICMP 不可达消息(端口关闭或被过滤)。 - `FILTERED`:无响应(可能被防火墙拦截,或目标端口开放但未响应用户数据报)。 ### 示例 2:测试多个 UDP 端口(如 161-162 端口,SNMP 常用) ``` portqry -n 10.0.0.1 -p udp -r 161-162 ``` ## 五、常见状态解释 | 状态 | 含义 | | --- | --- | | `LISTENING` | 目标端口已开放并监听(TCP 为已建立连接;UDP 为收到有效响应)。 | | `NOT LISTENING` | 目标端口未开放(TCP 无进程监听;UDP 收到 ICMP 不可达消息)。 | | `FILTERED` | 端口被防火墙/网络设备过滤(无明确响应,可能开放但被拦截,或完全关闭)。 | ## 六、注意事项 1. **权限要求**:无需管理员权限,但部分防火墙可能限制工具的网络访问。 2. **UDP 局限性**:UDP 无连接特性可能导致误判(如目标端口开放但未响应用户数据报)。 3. **替代工具**:若 PortQry 不可用,可尝试: - TCP:`telnet
<端口>`(需启用 Telnet 客户端)。 - UDP:`nc -u
<端口>`(需安装 NetCat)。 通过以上步骤,你可以使用 PortQry 快速验证 TCP/UDP 端口的连通性。如果需要更深入的分析,建议结合抓包工具(如 Wireshark)观察网络交互细节。 ## 七、真机测试 ```bash # 请求超时,端口不通 C:\PortQryV2>PortQry.exe -n 192.168.0.1 -p UDP -e 53 Querying target system called: 192.168.0.1 Attempting to resolve IP address to a name... Failed to resolve IP address to name querying... UDP port 53 (domain service): LISTENING or FILTERED Sending DNS query to UDP port 53... DNS query timed out # 没有监听,端口不通 C:\PortQryV2>PortQry.exe -n 1.1.1.1 -p UDP -e 53 Querying target system called: 1.1.1.1 Attempting to resolve IP address to a name... IP address resolved to one.one.one.one querying... UDP port 53 (domain service): NOT LISTENING # 监听正常,端口可通 C:\PortQryV2>PortQry.exe -n 1.0.0.1 -p UDP -e 53 Querying target system called: 1.0.0.1 Attempting to resolve IP address to a name... IP address resolved to one.one.one.one querying... UDP port 53 (domain service): LISTENING or FILTERED Sending DNS query to UDP port 53... UDP port 53 is LISTENING ``` ## 快照 - https://i.788910.xyz/t/26/03/mCYIpvqlEy.jpg - https://i3.wp.com/i.788910.xyz/t/26/03/mCYIpvqlEy.jpg - https://788910.xyz/api/snapshot?p=0c99ae2cdc18acddb59265ccb6f75943&u=https://i.788910.xyz/t/26/03/mCYIpvqlEy.jpg