端口扫描器(port scanner)是什么?能扫出什么、怎么选和用
端口扫描器是一种探测目标主机上哪些 TCP/UDP 端口处于开放、关闭或过滤状态的工具。它回答的核心问题是:某台机器上正在监听哪些服务。适合网络管理员做资产盘点、开发运维排查服务是否正常监听,以及安全人员做授权范围内的自查。前提是——你只能扫描自己拥有或已获得明确授权的网络和主机。
端口扫描器能扫出什么
一次扫描通常返回三类状态:
| 状态 | 含义 | 常见原因 |
|---|---|---|
| 开放(open) | 端口有服务在监听 | Web、SSH、数据库等服务正在运行 |
| 关闭(closed) | 主机可达但该端口无监听 | 服务未启动或被停用 |
| 过滤(filtered) | 无法确定,探测被丢弃 | 防火墙、安全组拦截 |
结合端口号可以初步推断服务类型,例如 80/443 常对应 Web,22 对应 SSH,3306 对应 MySQL。但端口号只是约定,服务实际监听在哪个端口由配置决定,所以扫描结果需要结合实际情况确认,不能只凭端口号下结论。
常见用途
- 网络资产盘点:列出网段内哪些主机在线、各开放了哪些端口,形成清单。
- 服务排查:确认某个服务是否真的在目标端口上监听,排除“进程起了但端口没通”的问题。
- 安全自查:在授权范围内检查是否有不该对外开放的端口,例如数据库端口暴露在公网。
工具怎么选:命令行型 vs 图形化型
选择取决于你的使用场景,而不是哪个“更强”。
| 维度 | 命令行型(如 Nmap) | 图形化型(如 Angry IP Scanner) |
|---|---|---|
| 上手门槛 | 需要记参数 | 界面点选,门槛低 |
| 批量与自动化 | 适合脚本、批量任务 | 适合手动、一次性扫描 |
| 结果呈现 | 文本输出,便于管道处理 | 表格展示,直观 |
| 适用人群 | 运维、安全、需要自动化的人 | 想快速看结果、不熟悉命令行的人 |
Angry IP Scanner 的定位是“快速、友好”的跨平台网络扫描器,支持扫描 IP 地址和端口,可扫描本地网络和互联网 IP 范围,结果能导出为多种格式,并提供命令行接口,可扩展数据获取器。它免费、开源(GPL),运行在 Windows、Mac 和 Linux 上,安装不是必需的。这些特性说明它更适合需要图形界面、想快速得到一份可导出清单的用户;如果你需要复杂的探测脚本和精细的扫描策略,命令行工具通常更合适。
基本使用步骤
以 Angry IP Scanner 这类图形化工具为例,通用流程如下:
- 确定扫描范围:输入一个 IP 范围、随机地址,或从文件导入地址列表。只填你被授权扫描的范围。
- 选择端口范围:指定要探测的端口,例如常见端口集合或自定义区间。范围越大,耗时越长。
- 执行扫描:启动后工具会逐个探测目标。预期结果是每个地址对应一组端口状态。
- 解读结果:区分开放、关闭、过滤。开放的端口再进一步确认对应服务。
- 导出结果:将结果保存为便于记录或后续处理的格式,用于资产清单或排查记录。
验证方法:对某个已知在运行的服务(例如本机开启的 Web 服务)扫描其端口,若显示开放,说明扫描链路和配置正确;再扫描一个确定未使用的端口,应显示关闭或过滤。
常见卡点
- 结果全是过滤:多半是防火墙或安全组拦截,不代表主机不存在。
- 扫描很慢:端口范围过大或目标过多,缩小范围或分批扫描。
- 端口开放但连不上服务:可能是服务绑定在特定地址,或中间有代理、NAT。
- 把端口号当成服务结论:端口号只是线索,需实际验证。
风险与合规
未经授权扫描他人的网络或主机,在很多地区可能违法或违反服务条款。动手前先确认:这台机器、这个网段是否属于你,或你是否拿到了书面授权。授权范围之外的地址,不要扫。
结果之后做什么
扫描结果本身只是清单。接下来通常是把开放端口对应到具体服务、记录到资产表,或针对不该开放的端口做关闭和加固。把导出文件按时间归档,便于后续对比“哪些端口是新出现的”,这比单次扫描结果更有价值。