0 理解TCP和UDP端口
在深入探讨工具和技巧之前,首先需要了解TCP和UDP端口的基本概念及其重要性。
0.1 TCP(传输控制协议):
TCP是一种面向连接的协议,确保数据可靠传输。在数据交换前会建立连接,适合需要数据完整性的应用,如网页浏览或文件传输。
0.2 UDP(用户数据报协议):
UDP是一种无连接协议,不需要在发送数据前建立连接。速度快但可靠性较低,常用于视频流或在线游戏等对速度要求高的场景。
0.3 为什么需要测试端口?
测试端口有助于:
验证特定端口上是否运行服务。
识别可能的安全风险开放端口。
排查设备间的连接问题。
确保防火墙规则配置正确。
1 TCP
1.1 telnet(需要开启telnet功能)
控制面板 -> 程序 -> 启用或关闭 Windows功能 -> Telnet client
cmd 指令:telnet ip port,如 telnet 192.168.2.2 8888
成功会直接从cmd切换成telnet的窗体:
失败会在cmd提示:
1.2 ssh
cmd 指令:ssh -v -p port ip,如ssh -v -p 8888 192.168.2.2
成功会在cmd显示详情:
失败会在cmd提示time out:
1.3 curl
cmd 指令:curl -v ip:port,如curl 192.168.2.2:8888(-v指令用于显示详情,可以不加,但加上会更直观)
成功会在cmd显示详情:
失败会在cmd提示Fail
3 UDP
3.1 Nmap
由于UDP是无连接的,测试UDP端口更具挑战性。以下是几种方法:
3.1 PowerShell为何不适合UDP测试
描述: 虽然PowerShell可用于发送UDP数据包,但不适合测试端口连通性。
原因: 发送UDP数据包并不能确认端口是否监听,因为UDP没有应答机制。
建议: 避免使用PowerShell进行UDP端口测试。
3.2 使用PortQryV2
描述: PortQryV2是微软提供的命令行工具,专为排查TCP/IP连接问题设计,包括UDP端口。
下载: PortQryV2下载
使用方法:
命令:portqry -n <IP> -p UDP -e <端口>(例如,portqry -n 192.168.2.2 -p UDP -e 53)。
成功/失败指示:
“Listening”:端口上有进程监听。
“Not Listening”:无进程监听。
“Filtered”:端口被防火墙阻塞。
3.3 使用Nmap
描述: Nmap是一个强大的开源端口扫描工具,支持TCP和UDP扫描。
下载: Nmap下载
使用方法:
命令:nmap -sU -p <端口> <IP>(例如,nmap -sU -p 53 192.168.2.2)。
结果解读:
“Open”:端口开放并监听。
“Closed”:端口关闭。
“Filtered”:端口被防火墙阻塞。
3.4 使用Netcat
描述: Netcat(nc)是一个多功能网络工具,可测试TCP和UDP端口。
下载: Netcat下载
使用方法:
命令:nc -u -v -z <IP> <端口>(例如,nc -u -v -z 192.168.2.2 53)。
局限性: 能检测端口是否开放,但无法确认是否有进程监听。
3.5 使用Advanced Port Scanner
描述: 这是一个用户友好的GUI工具,可扫描TCP和UDP端口。
下载: Advanced Port Scanner下载 网盘:https://pan.baidu.com/s/1-geIj2AqvYHzhskJfZQRPA?pwd=h3sp 提取码: h3sp,安装的时候如果想修改文件夹位置记得勾上高级设置。
使用方法:
在GUI中输入IP地址和端口,选择TCP或UDP进行扫描。
优点: 易用,支持批量查询。
这个是带图形化界面的,操作比较简单,可以批量查询,填上IP跟端口号即可:
这个如果UDP没有在发送数据,就检测不到。
4. 工具对比
为了帮助您选择合适的工具,以下是所讨论方法的对比:
工具 | 支持TCP | 支持UDP | 易用性 | 内置/第三方 | 备注 |
---|---|---|---|---|---|
Telnet | 是 | 否 | 中等 | 内置 | 需要启用Telnet客户端。 |
SSH | 是 | 否 | 中等 | 第三方 | 适合安全连接。 |
Curl | 是 | 否 | 易用 | 第三方 | 轻量级,多功能。 |
PortQryV2 | 是 | 是 | 中等 | 第三方 | TCP和UDP均可靠。 |
Nmap | 是 | 是 | 中等 | 第三方 | 功能强大,支持高级扫描。 |
Netcat | 是 | 是 | 中等 | 第三方 | 可能触发防病毒软件;UDP有限。 |
Advanced Port Scanner | 是 | 是 | 易用 | 第三方 | GUI界面,适合初学者。 |
5. 结论
测试Windows上的TCP和UDP端口对于网络故障排查和安全至关重要。对于快速TCP检查,Telnet或Curl已足够;但对于全面扫描,特别是UDP,PortQryV2、Nmap或Advanced Port Scanner更可靠。选择工具时,请考虑其局限性和具体使用场景。
建议:
建议:
TCP测试:快速检查用Telnet、SSH或Curl;详细扫描用Nmap。
UDP测试:使用PortQryV2或Nmap,避免PowerShell。