诞生 1997 年至今, 全球 300万+ 安全从业者首选, 27年 持续迭代, 100+ 种扫描技术

7.95
当前版本
27年
持续维护
1000+
NSE脚本
300万+
全球用户

为什么 Nmap 是 网络安全第一课

从入门到精通,每个安全从业者都是从 nmap 开始的。

🎯

端口扫描引擎

支持 TCP SYN(隐形扫描)、TCP Connect、UDP、ACK、FIN、NULL、Xmas 等十余种扫描技术。SYN 扫描不需要完整握手,速度快、难以被日志记录,是渗透测试的首选方式。

🏷️

服务版本检测

-sV 参数能识别端口上运行的具体软件及版本号。不只是知道 80 端口开了 http,还能精确到 nginx 1.24.0、Apache 2.4.56,为漏洞匹配提供精确依据。

🐧

操作系统指纹

通过分析 TCP/IP 协议栈实现的细微差异,推断目标主机的操作系统类型及版本。准确率极高,能区分 Linux 发行版、Windows 版本甚至内核补丁级别。

📜

NSE 脚本引擎

Nmap Scripting Engine 内置 1000+ Lua 脚本,覆盖漏洞检测、暴力破解、后门识别、恶意软件检测等场景。比如 `http-vuln-cve2017-5638` 直接检测 Struts2 漏洞。

🖥️

Zenmap 图形界面

官方 GUI 前端 Zenmap,把复杂的命令行参数变成可视化的配置面板。适合初学者上手,同时保留命令行全部能力。扫描结果以拓扑图形式展示,网络结构一目了然。

高性能并发

异步扫描引擎支持数千并发连接,全网段扫描也能在几分钟内完成。配合 `--min-rate`、`--max-retries` 等参数精细控制扫描速度和隐蔽性,适应各种网络环境。

实时扫描演示:192.168.1.0/24

一个典型的内网扫描结果,包含路由器、服务器、IoT 设备和终端。

nmap -sS -sV -O 192.168.1.0/24 --top-ports 100
HostLatencyOpen PortsServicesOS
192.168.1.1 3ms 22,53,80,443 ssh,dns,http,https Linux 3.x (Router)
192.168.1.10 1ms 22,80,3306,6379 ssh,http,mysql,redis Ubuntu 22.04 LTS
192.168.1.23 2ms 135,139,445,3389 rpc,netbios,smb,rdp Windows Server 2019
192.168.1.45 4ms 80,554,8000,8080 http,rtsp,http-alt Linux 4.x (Camera)
192.168.1.88 2ms 22,111,2049 ssh,rpcbind,nfs CentOS 7.9
192.168.1.102 1ms 445,5357 smb,wsd Windows 11 Pro
192.168.1.156 6ms Unknown (Firewalled)

谁在用 Nmap

从白帽黑客到运维工程师,从渗透测试到合规审计。

🛡️

安全渗透测试

渗透测试的第一步永远是信息收集。用 Nmap 摸清目标开放了哪些端口、跑了什么服务、有没有已知漏洞。配合 NSE 脚本直接验证漏洞是否存在,生成完整的资产清单交给客户。

📋

合规审计

等保2.0、ISO27001 都要求对网络边界进行定期评估。Nmap 的扫描报告可以作为审计证据,证明你做了端口级的安全检查,满足合规要求。

常见问题 FAQ

关于 Nmap 的法律边界和技术细节。

扫描别人的网络违法吗?

这要看具体情况。未经授权扫描他人网络在大多数国家和地区都属于违法行为,可能被认定为"未经授权访问计算机系统"。但在你自己拥有或获得书面授权的网络上扫描是完全合法的。企业内网、个人设备、授权渗透测试都不存在问题。建议扫描前务必确认你有合法权限。

SYN 扫描为什么需要管理员权限?

SYN 扫描(半开扫描)需要构造原始 TCP 数据包,而发送原始包在 Linux/Unix 系统上需要 root 权限,Windows 上需要管理员权限。如果不想提权,可以使用 TCP Connect 扫描(-sT),它通过系统调用完成三次握手,不需要特殊权限但更容易被日志记录。

扫描会被防火墙/IDS 发现吗?

肯定会。现代防火墙和入侵检测系统都能识别 Nmap 的特征签名。SYN 扫描比 Connect 扫描隐蔽一些,但依然可以被检测到。如果需要更高的隐蔽性,可以调整扫描速度(-T0 到 -T5)、分散源端口、使用诱饵主机(-D)等技术手段,但这也会显著降低扫描速度。

Windows 版和 Linux 版有什么区别?

核心功能完全一致。主要区别是 Windows 不支持原始套接字,所以 SYN 扫描在 Windows 上实际会降级为 Connect 扫描。另外 Windows 版的 Npcap 驱动负责底层包捕获,需要单独安装。Linux 版可以直接使用内核的网络栈,性能略好。

NSE 脚本怎么写?

NSE 使用 Lua 语言编写。每个脚本包含 description、author、license、categories 等元数据和一个 action 函数。官方文档有完整的 API 参考。写好的脚本放到 `scripts/` 目录下,执行 `nmap --script-updatedb` 更新数据库后即可使用。社区有大量现成脚本可以参考学习。

扫描大型网络要多久?

取决于扫描参数和网络规模。扫描一个 /24 网段(254 台主机)的 TOP 100 端口,默认速率下大约需要 3-8 分钟。如果是全网段 SYN 扫描加服务版本检测,可能要 20-40 分钟。可以通过 `-T4` 提高速度,但要注意不要触发防护机制或被网络管理员封禁。

Zenmap 还需要单独下载吗?

Windows 版 Nmap 安装包默认包含 Zenmap。Linux 用户需要从发行版仓库单独安装(如 `apt install zenmap`)。不过官方从 Nmap 7.80 之后就不再积极维护 Zenmap 了,主要原因是 Python 2 停止支持导致迁移成本较高。命令行依然是主要使用方式。

有没有图形化的替代品?

除了 Zenmap,还有一些第三方 GUI 工具。Angry IP Scanner 适合快速 ping 扫描;Advanced Port Scanner(Windows)界面友好但功能有限;Masscan 是另一个命令行工具,专为超大规模扫描设计,速度比 Nmap 快得多但精度稍低。专业用户通常还是回归 Nmap 命令行。

行业怎么说

来自 DEF CON、Black Hat、Hacker News 的声音

★★★★★

"Fyodor 在 1997 年写出 Nmap 的时候大概没想到它会成为整个安全行业的基石。二十多年过去了,我教学生渗透测试第一课还是 `nmap -sC -sV`。它不性感,但它管用。每个安全工程师的工具箱里都有它。"

G
Gordon · 安全研究员
★★★★★

"作为运维,我每周用 Nmap 扫一次内网。不是因为我 paranoid,而是因为总有人偷偷在内网开服务忘记关。上个月就是靠 Nmap 发现一台废弃服务器还开着 Redis 没认证,差点酿成大祸。它是我的数字守夜人。"

老陈 · SRE 工程师
★★★★☆

"CTF 比赛里 Nmap 永远是最先用的工具。有时候 flag 就藏在某个奇怪端口的服务 banner 里。新手总想着上来就 exploit,老手先花十分钟做 recon。Nmap 教会了我一件事:知道你在攻击什么比怎么攻击更重要。"

K
Kira · CTF 选手
前往下载页面 →