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
3.3 使用Nmap
3.4 使用Netcat
3.5 使用Advanced Port Scanner
优点: 易用,支持批量查询。
这个是带图形化界面的,操作比较简单,可以批量查询,填上IP跟端口号即可:
这个如果UDP没有在发送数据,就检测不到。
4. 工具对比
工具 | 支持TCP | 支持UDP | 易用性 | 内置/第三方 | 备注 |
---|---|---|---|---|---|
Telnet | 是 | 否 | 中等 | 内置 | 需要启用Telnet客户端。 |
SSH | 是 | 否 | 中等 | 第三方 | 适合安全连接。 |
Curl | 是 | 否 | 易用 | 第三方 | 轻量级,多功能。 |
PortQryV2 | 是 | 是 | 中等 | 第三方 | TCP和UDP均可靠。 |
Nmap | 是 | 是 | 中等 | 第三方 | 功能强大,支持高级扫描。 |
Netcat | 是 | 是 | 中等 | 第三方 | 可能触发防病毒软件;UDP有限。 |
Advanced Port Scanner | 是 | 是 | 易用 | 第三方 | GUI界面,适合初学者。 |
5. 结论
建议: