首页/网络/网络排障速查/hping3:定制 TCP/UDP/ICMP 报文探测
连通性与链路检测54 条

hping3:定制 TCP/UDP/ICMP 报文探测

当 ICMP 被禁或需要「用 TCP 探测」时,hping3 可以构造带任意标志位与端口的报文:验证端口级路径、探测中间设备对特定流量放行规则。

网络排障速查网络更新于 2026-10-13

hping3 是什么

hping3 是能自主构造报文的探测工具:可以指定 TCP 标志位、端口、UDP 或 ICMP 模式与负载长度,用来在 ICMP 被禁或需要『用 TCP 探测』时验证路径与端口级策略。它常被用来确认中间设备是否对特定端口或标志位区别对待,也提供类似 traceroute 的 TCP 探测模式。

基本信息

适用平台Linux(多数发行版仓库提供);需 root 才能使用原始套接字模式
模式选项-1 ICMP、-2 UDP、-S SYN、-A ACK、--traceroute
常用参数-p 目标端口、-c 次数、-d 负载长度、-i 间隔
风险提示具备 --flood 洪泛能力,生产网段禁用

典型使用场景

  • ICMP 被禁的环境:用 TCP SYN 探测确认主机与端口是否可达
  • 验证防火墙对标志位的策略:对同一端口分别发 SYN 与 ACK 观察响应差异
  • 探测端口级路径:用 --traceroute 加 -S 走 TCP 方式逐跳
  • UDP 服务排查:用 -2 模式向 UDP 端口发包,确认是否有响应或 ICMP 差错返回
  • 对比不同端口的可达性:判断策略是按端口还是按地址生效

常用探测

常用探测
# 发 SYN:收到 SYN/ACK 说明端口开放且路径放行
sudo hping3 -S -p 443 -c 4 10.0.0.5
# 换端口对比,验证策略是否区分端口
sudo hping3 -S -p 80 -c 4 10.0.0.5
# UDP 模式,负载 20 字节
sudo hping3 -2 -p 53 -d 20 -c 4 10.0.0.5
# ICMP 模式
sudo hping3 -1 -c 4 10.0.0.5
# 类 traceroute,但用 TCP 探测
sudo hping3 --traceroute -S -p 443 10.0.0.5

响应判读

响应含义注意事项
SYN/ACK端口开放且策略放行最明确的开放信号
RST端口关闭或被策略代答防火墙也可能代答 RST,不能直接断定端口关闭
无响应被丢弃或主机不在线与 ICMP 探测结果交叉验证
ICMP 不可达路径中某跳明确拒绝差错类型可帮助定位策略位置
没有 root 权限时部分模式无法使用:ICMP 与原始套接字相关的选项会直接失败,这与『目标不通』是两回事,别把权限报错当成网络结论。
hping3 具备 --flood 与随机源地址能力:绝不要在生产网段开启洪泛模式,即便是短时间也可能打满链路并触发安全告警。

易错点

  • 无 root 权限时使用 -1 等模式:报错后误判为目标不通
  • 把收到的 RST 当成端口关闭的唯一证据:防火墙可能代答 RST,结论会错
  • 在共享链路使用 --flood:等同于对全网发起流量攻击,属事故行为
  • 不做端口对照就下结论:无法区分策略是按端口生效还是按地址生效
  • 忽略 ICMP 与 TCP 探测结论的差异:两种方式的路径与策略处理可能不同

数据来源与参考

  • hping3 官方手册(Salvatore Sanfilippo)
  • firewall 测试实践:TCP 探测

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌