Nmap 安装与部署:各平台安装与扫描前的准备
二、安装与部署:各平台安装与扫描前的准备
Nmap 在各主流平台上都有支持,安装方式差异不大,Windows 上需要额外注意抓包驱动。
- Linux 上安装。Debian 与 Ubuntu 系列:
RHEL 与 CentOS 系列:sudo apt update && sudo apt install -y nmap nmap --versionsudo yum install -y nmap # 或 sudo dnf install -y nmap - macOS 上安装。可以用 Homebrew:
brew install nmap - Windows 上安装。到官方站点下载安装包,安装过程中会提示同时安装 Npcap(抓包驱动)。如果不装 Npcap,SYN 扫描与操作系统探测等需要原始套接字的功能会报错无法使用。安装完成后在命令行确认:
nmap --version - 确认权限。SYN 扫描、操作系统探测、原始报文发送等能力需要管理员或 root 权限。在 Linux 上可以用能力授权的方式让普通用户也能用:
若不加权限,用sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap) getcap $(which nmap)-sT(Connect 扫描)也能完成大部分工作,只是速度慢一些且更容易被记录。 - 准备目标清单与授权文件。把授权范围内的网段写成一个文件,每行一个目标或 CIDR,扫描时用
-iL读取。这样做的好处是范围明确、可复核,也便于在报告里引用:cat > targets.txt <<'EOF' 192.168.10.0/24 192.168.20.0/24 EOF wc -l targets.txt - 选择输出方式。生产环境的扫描一定要落盘留痕,用
-oA同时输出三种格式,分别是普通文本、XML 与可继续处理的格式:
XML 格式便于后续用脚本解析与做资产比对,建议每次扫描都保留。nmap -iL targets.txt -oA scan-2026-01-01 - 先做一次小范围试扫。在正式扫全网段之前,先挑一台主机确认参数与网络可达性符合预期,避免带着错误的参数扫了几小时才发现问题:
nmap -sS -sV -p 22,80,443 192.168.10.10
常见报错与排查。
| 现象 | 根因 | 处理方式 |
|---|---|---|
Couldn't open a raw socket 或权限相关报错 | 没有管理员权限 | 用 sudo 运行,或授予 cap_net_raw 能力,或改用 -sT |
所有主机都显示 Host seems down | 目标或中间设备丢弃了探测包 | 加 -Pn 跳过主机发现,直接扫端口 |
| Windows 上报找不到网卡或驱动错误 | Npcap 未安装 | 重新运行安装包勾选 Npcap,或单独安装后重启 |
| UDP 扫描极慢 | UDP 无连接,需等待超时 | 只扫常见端口,配合 --max-retries 与较长超时并接受不确定结果 |
| 结果与实际情况不符 | 目标限速、丢包,或中间有负载均衡 | 降低速率重扫一次,把两次结果做对比;对疑似结果用单端口精扫验证 |
| 扫描触发目标告警 | 速率过高或使用了侵入性脚本 | 降低 -T 等级,避免 intrusive 脚本,并提前向对方报备 |
| 扫描占用大量带宽 | 全端口扫描大网段 | 分片扫描,或先做主机发现再扫开放主机 |
| XML 结果解析时字段缺失 | 扫描中途被中断 | 确认扫描完整结束;用 --resume 继续未完成的扫描 |
扫描前的准备还包括一项常被忽略的工作:确认本次扫描不会影响业务。带有版本探测与脚本执行的扫描会向服务发送非标准请求,某些老旧的服务实现可能因此异常。对于承载关键业务的设备,建议先在测试环境验证,或把这类设备排除在自动扫描范围之外,单独安排时间做人工确认。

