百度 · 物理网络黑盒监控

nettools
大规模物理网络监控工具集

成千上万的网络设备、海量的链路——一个 ping 解决不了的问题,需要一套专业的工具。 nettools 是百度内部跑了多年的黑盒监控工具集,现在开源了。

500000+
内部部署节点
4
已开源工具
MIT
开源协议
60000/800000
单机 pps 探测上限, rawsocket/单五元组
一键安装
curl -fsSL https://nettools.rpcx.io/install.sh | sh
支持 Linux / macOS(amd64 / arm64),自动选择可写目录安装
工具集: baize(白泽) bitflip / bitflip6 lidar(激光雷达) mping / mping6

lidar(激光雷达)— TCP SYN 网络可达性探测

最新发布 使用指南 →

lidar 是一个基于 TCP SYN 的网络可达性探测工具。通过发送原始 SYN 报文并分析响应,判断目标端口是开放、关闭还是不可达。无需在远端部署任何软件。

🎯

零部署探测

无需在目标安装任何软件。只需目标 IP 和端口,利用内核 TCP 协议栈自动响应 SYN 报文即可判断可达性。

🔀

精准分类

SYN-ACK = 端口开放,RST = 端口关闭/拒绝,Timeout = 不可达/丢包。区分网络层和应用层故障。

📡

Raw Socket + BPF

原始套接字构造 TCP SYN,macOS 通过 BPF 设备接收响应。绕过内核 TCP 栈,不影响系统连接。

多目标并行

支持逗号分隔多 IP,统一速率限制下轮询探测。每个目标独立统计,适合批量场景。

典型场景

机房内网络探测 海外机房可达性监测 LCC 机房探测 防火墙策略验证 网络割接前后对比 上线前连通性检查

baize(白泽)— 毫秒级网络质量持续监控

最新发布 使用指南 →

baize 是一个配置驱动、单进程双角色、为长期部署而设计的网络质量持续监控工具。默认每秒 5000 个探测包,统计窗口可调至 100ms,让偶发轻微丢包无处遁形。

🔀

ECMP 全路径覆盖

确定性端口轮转算法,1000 个五元组同时探测,覆盖 ECMP 哈希空间所有路径。丢包五元组直接定位故障设备和端口。

⏱️

无需时钟同步的单向丢包检测

每个探测包携带上一个时间窗口的发包数和起始端口对,Server 端完整还原五元组。不需要 NTP,不需要维护 Client 状态。

🔍

互补比特翻转检测

4 种 Salt 填充模式,专门检测 TCP/UDP 校验和发现不了的互补翻转。精确到哪个字节的哪一位被篡改。

生产级性能

Raw IP Socket + BPF 过滤器 + 8 路并行读 + 无锁设计。百度内部几千台机器上跑了多年。

典型场景

集群间 fullmesh 高频探测 机房间链路监控 混合云持续探测 专线 SLA 监控 网络改造保障 故障回切验证
部署方式:一个 JSON 配置文件 + 一个二进制文件。配合 Puppet/Ansible 批量下发,几十台机器分分钟到位。日志按天轮转,pprof 内置,线上排查不需要重新编译。

bitflip / bitflip6 — 丢包与比特翻转检测

稳定版 使用指南 →

bitflip 是命令行驱动的高频 UDP 探测工具,用于快速排查网络丢包和比特翻转。支持单向丢包检测和五元组级定位。bitflip6 是其 IPv6 版本,使用方式完全一致。

📡

单向丢包定位

Client 和 Server 双端独立统计,对比两端数据即可判断丢包发生在正向路径还是回程路径,避免往返探测的误判。

🛡️

4 种 Salt 模式覆盖

全 1、全 0、交替位、互补交替,覆盖所有比特翻转类型。互补交替模式专门针对 TCP/IP Checksum 检测盲区。

🎯

五元组级定位

自动覆盖 ECMP 多路径,检测到丢包或改包时输出具体五元组。结合 traceroute 拓扑,直接定位到故障设备和端口。

🔄

IPv4 + IPv6 双栈

bitflip 覆盖 IPv4,bitflip6 覆盖 IPv6。相同的参数格式,相同的使用体验。

快速体验

# 克隆并编译
git clone https://github.com/baidu/nettools.git
cd nettools && make build

# 服务端
./bitflip

# 客户端 — 5000 pps 持续探测
sudo ./bitflip -r client -s 10.0.0.1
Note:Client 端需要 sudo 权限来设置 IP TOS/DSCP 值。

mping / mping6 — 多目标 ICMP 批量探测

最新发布 使用指南 →

mping 是多目标 ICMP Echo 探测工具,支持 CIDR 网段展开、DNS 解析、硬件时间戳,一次命令探测成百上千个目标。mping6 是其 IPv6 版本。

🌐

CIDR 批量展开

传入网段自动展开所有 IP,支持 IPv4 和 IPv6。--max-targets 防止意外展开过大网段。

⏱️

硬件时间戳

默认启用 SO_TIMESTAMPING,纳秒级延迟精度。macOS 自动回退到软件时间戳。

🔍

DNS + 多 IP

自动解析主机名(A/AAAA 记录),逗号分隔多 IP,混合使用 CIDR + DNS + 单 IP。

高速率 + 实时统计

令牌桶限速精确控制 pps,按秒报告延迟、丢包率。支持 Verbose 逐包详情。

典型场景

机房批量连通性巡检 CIDR 网段扫描 网络质量基线采集 割接前后对比 IPv6 网络验证 DNS 域名可达性

工具对比:怎么选?

bitflip / bitflip6 baize lidar mping / mping6
探测协议 UDP UDP TCP SYN ICMP Echo
需要服务端 需要 需要 不需要 不需要
探测内容 延迟 + 丢包 + bitflip 延迟 + 丢包 + bitflip 延迟 + 可达性(SYN-ACK/RST/Timeout) 延迟 + 丢包 + bitflip
配置方式 命令行参数 JSON 配置文件 命令行参数 命令行参数
多目标 多 IP 多 IP 多 IP CIDR + DNS + 多 IP
适用场景 临时排查、快速诊断 长期部署、持续监控 快速可达性探测 批量 ICMP 巡检
简单来说:UDP 质量监控用 bitflip/baize,TCP 可达性探测用 lidar,ICMP 批量巡检用 mping。bitflip 适合临时排查,baize 适合长期部署,lidar 适合无需服务端的 TCP 探测,mping 适合批量 ICMP 延迟和丢包检测。
网络监控不是能不能做的问题,是做得够不够细致的问题。
每一条链路、每一个端口、每一个场景,都值得被监控。