深入解析 hping3网络探测与测试利器
一、什么是 hping3?
- 体量轻巧:安装包仅约 255 KB。
- 协议多样:支持 TCP、UDP、ICMP、RAW IP 四种模式。
- 灵活定制:可设置任意报文头、分片、Payload 长度;还支持伪造源地址、随机目标等高级操作。
- 脚本化:集成 Tcl 解释器,可编写脚本自动完成复杂任务。
应用场景包括:
- 防火墙规则测试
- (伪造)端口扫描
- 不同协议下的网络性能基准测试
- Path MTU 探测
- 多协议“Traceroute”
- 操作系统 TCP/IP 栈指纹识别
- 网络攻击面审计
二、安装与依赖
在 Debian/Ubuntu、Kali 等发行版下,直接使用 APT 即可安装:
sudo apt update
sudo apt install -y hping3
安装完成后,可通过 hping3 -V
查看版本,或 hping3 -h
查看帮助:
root@kali:~# hping3 -V
hping3 version 3.0.0root@kali:~# hping3 -h
usage: hping3 host [options]-h --help show this help-v --version show version-c --count packet count-i --interval wait (uX for X microseconds, for example -i u1000)--fast alias for -i u10000 (10 packets/sec)--faster alias for -i u1000 (100 packets/sec)--flood send packets as fast as possible, without showing replies-n --numeric numeric output-q --quiet quiet-I --interface interface name-V --verbose verbose-D --debug debugging--beep beep for each matching replyModes:(default) TCP -0 RAW IP -1 ICMP -2 UDP-8 --scan [ports] SCAN mode (e.g. `-8 1-1024`)-9 --listen LISTEN modeIP options:-a --spoof spoof source address--rand-dest random destination--rand-source random source-t --ttl set TTL (default 64)-f --frag fragment packets-x --morefrag set “more fragments” flag-y --dontfrag set “don’t fragment” flag-g --fragoff set fragment offset-m --mtu set virtual MTU (implies --frag)-o --tos type of service-G --rroute include Record Route option--lsrr loose source routing
三、基本用法示例
1. 类似 ping 的 ICMP 探测
hping3 -1 www.example.com
-1
:ICMP 模式- 默认每秒发送一次“Echo Request”,并显示 RTT
2. Traceroute 模式
hping3 --traceroute -V -1 www.example.com
--traceroute
:自动递增 TTL,模拟多跳探测-V
:显示详细调试信息-1
:ICMP 模式
示例输出:
using eth0, addr: 192.168.1.15, MTU: 1500
HPING www.example.com (eth0 93.184.216.119): icmp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=192.168.1.1 name=UNKNOWN hoprtt=0.3 ms
hop=2 TTL 0 during transit from ip=192.168.0.1 name=UNKNOWN hoprtt=3.3 ms
...
四、常见场景与参数详解
1. 防火墙策略测试
验证对特定端口或协议的阻断规则
# 测试 TCP 80 端口是否被过滤
hping3 -S -p 80 --flood www.example.com
-S
:发送 TCP SYN-p 80
:目标端口 80--flood
:尽可能快地发送,不打印回复
如果无法收到回复,表示 SYN 被丢弃或被重置。
2. 端口扫描 (SCAN 模式)
hping3 --scan 1-1024 -S www.example.com
--scan 1-1024
:扫描端口 1 到 1024-S
:TCP SYN
开放端口会收到 SYN+ACK,应答会被打印。
3. Path MTU 探测
# 强制分片,探测 MTU 边界
hping3 -1 -d 2000 --mtu 1500 --frag www.example.com
-d 2000
:数据长度 2000 字节--mtu 1500
:虚拟 MTU 1500--frag
:分片
通过逐步减小数据长度,可定位路径中最小 MTU。
4. 操作系统指纹识别
hping3 -1 -c 1 -V --ttl 64 www.example.com
- 观察 ICMP 时间戳、TTL 初始值、窗口大小等差异
- 结合脚本化分析,可识别常见操作系统
五、高级技巧与脚本化
hping3 嵌入 Tcl 解释器,适合编写自动化测试脚本:
#!/usr/bin/hping3
# File: fw-test.tcl# 定义目标列表
set targets {www.example.com 10.0.0.5 192.168.1.100}foreach t $targets {puts "Testing $t..."hping3 -S -p 22 -c 5 $tputs "\n"
}
以上脚本依次对所有目标的 22 端口发送 5 个 SYN,再输出结果。
六、总结
- 安装简单:
sudo apt install hping3
- 模式丰富:TCP/UDP/ICMP/RAWIP,SCAN、TRACEROUTE、LISTEN 等多种模式
- 参数灵活:支持报文分片、伪造源地址、路径记录、TOS、TTL 调优等
- 脚本驱动:内置 Tcl,可实现复杂自动化流程
无论是网络性能测试、漏扫检测,还是防火墙策略验证,hping3 都能胜任。建议在实验环境中多加练习,并结合自身脚本或 CI/CD 流程,构建一套完善的网络安全与性能测试体系。
参考资料
- hping3 官方文档与源码
- Kali Linux 包管理 (APT)
- “TCP/IP Illustrated” 网络协议详解书籍