Naabu 是 ProjectDiscovery 团队打造的一款现代化端口扫描器,
以 Go 编写,专注于高性能、易集成与工程化流水线使用。
如果说 Nmap 是经典全能型选手、Masscan 是极限速度的代表,
那么 Naabu 则是两者之间“现代化、自动化、可编排”的中间态。


🚀 工具定位

Naabu 通过 SYN/CONNECT/UDP 三种探测方式实现端口扫描,支持:

  • DNS 解析与自动去重
  • IPv4 / IPv6 混合扫描(实验性)
  • 被动端口枚举(Shodan / InternetDB)
  • 主机发现与 Nmap 集成
  • 多输入(域名 / IP / CIDR / ASN)与多输出格式(JSON / TXT / STDOUT)

⚙️ Naabu 中的关键技术与实现

1️⃣ 并发模型:Goroutine + Worker Pool

Naabu 使用 Go 原生的 goroutine 与通道(channel)模型来驱动大规模扫描任务。
每个探测任务被分配到 worker 池中异步执行,实现“海量任务 → 轻量线程 → 聚合输出”的流程。

flowchart LR A[输入域名/IP] --> B[解析与去重] B --> C[任务队列] C --> D[Worker Goroutine 并发探测] D --> E[结果聚合/输出]

2️⃣ 可控速率与并发:令牌桶思路

通过 -rate(速率)与 -c(并发数)参数控制发送速率与线程上限, 底层逻辑类似令牌桶限流机制,防止扫描过快导致丢包或被防护系统拦截。

naabu -list targets.txt -rate 5000 -c 200

💡 实战经验:VPS 通常可用较高 -rate;本地或代理环境建议 <2000。

3️⃣ 探测模式与权限回退

SYN 扫描(需要 root 权限):最快,直接基于原始 TCP 报文。 CONNECT 扫描:在无 root 权限下回退使用。 UDP 扫描:可指定自定义 payload,提高识别精度。

sudo naabu -p 80,443,8080 -host example.com -scan-type syn

4️⃣ DNS 解析与 IP 去重

Naabu 会自动解析输入域名并去重相同 IP,避免重复扫描,提高效率。

echo "a.example.com\nb.example.com" | naabu  #若两者解析到相同 IP,则只扫描一次

✨ 这使 Naabu 非常适合在资产发现流水线中处理大量子域名。

5️⃣ 地址洗牌(Shuffle)算法

为减轻单目标压力并规避防御系统,Naabu 在内部对待扫描目标做随机化处理。 类似 Masscan 的“地址混洗算法”,这让扫描流量更分散、更隐蔽。

6️⃣ 被动信息整合(Shodan / InternetDB)

Naabu 可结合 Shodan 与 InternetDB,被动拉取已知端口信息,用于补全扫描结果或加速探测。

naabu -list ips.txt -passive

🔍 “主动扫描 + 被动情报” 的混合策略,使其兼顾速度与覆盖率。

7️⃣ Nmap 无缝集成

Naabu 支持在发现端口后自动调用 Nmap 进行服务识别。

naabu -host target.com -nmap-cli "nmap -sV -p {{port}} {{host}}"

⚙️ Naabu 负责发现开放端口,Nmap 负责识别服务与指纹,是典型的现代化分层扫描架构。

8️⃣ 工程化输出设计

输出可为 JSON、TXT 或 STDOUT,天然支持管道化与自动化处理:

naabu -list targets.txt -json | jq
naabu -list targets.txt -o results.txt

💬 输出设计对后续工具(如 httpx、nuclei)非常友好。

9️⃣ 重试、退避与 Warm-up

Naabu 提供 -retries、-warm-up-time 参数,用于在网络波动时进行重试与预热。 例如在开始扫描前等待几秒,让路由表和 socket 初始化稳定。 naabu -list hosts.txt -retries 2 -warm-up-time 5s

🧠 小结:Naabu 的设计哲学

Naabu 并非追求极限速度(如 Masscan),而是平衡速度、易用性与可集成性。它将端口扫描器从“黑客工具”进化为“自动化资产发现模块”,让安全研究员与蓝队都能在 CI/CD 流水线中优雅地使用。

特性 Nmap Masscan Naabu (ProjectDiscovery)
开发语言 C C Go
探测模式 SYN/ACK/UDP/Script SYN Only (极快) SYN/CONNECT/UDP
优势方向 功能全面 速度极致 工程化 & 自动化集成
输出格式 XML/Nmap Script Binary / JSON JSON / TXT / STDOUT
与其他工具集成 手动调用 需自写脚本 原生支持 Nmap / httpx / nuclei