按 TTL 过滤
IP 头的 TTL 字段每经过一跳就减一,用 ip.ttl 过滤可以推断对端发送时的初始值(常见 64、128、255),初始值减当前值近似等于经过的跳数。排查异常路径、判断报文是否来自可疑位置、识别 traceroute 探测包都用得上。要注意 TTL 可被中间设备改写,推断只能当作旁证。
基本信息
| 适用平台 | Wireshark 显示过滤器(ip.ttl) |
|---|---|
| 常见初始值 | Linux/Unix 64、Windows 128、网络设备 255 |
| 跳数估算 | 初始值减去当前 TTL |
| 协议依据 | RFC 791 定义 TTL,IPv6 中对应跳数上限 |
典型使用场景
- 推断对端系统类型:TTL 初值在操作系统间差异明显,可作旁证
- 定位异常路径:同一目标出现两种初值,说明中间存在多路径或代理
- 识别 traceroute:TTL 为 1、2、3 的报文属正常探测行为
- 判断源地址可疑:TTL 与物理位置明显不符时提高警惕
- 与设备日志联动:日志里记录的跳数可与抓包互相印证
常用示例
常用示例
ip.ttl < 64 && ip.src == 203.0.113.10 # 该源来的包经过了至少一跳
ip.ttl == 1 # 常见于 traceroute 的首跳探测
dns && ip.ttl < 60 # 找出可能被改写过的 DNS 应答
ip.ttl == 255 && ip.src == 10.0.0.1 # 同网段网络设备发来的包初值速查
| 初始 TTL | 常见来源 | 可作推断 |
|---|---|---|
| 64 | Linux、Unix、macOS 及多数网络服务 | 类 Unix 系统 |
| 128 | Windows 系列 | Windows 客户端或服务器 |
| 255 | 路由器、交换机等网络设备 | 网络基础设施 |
| 两种混用 | 存在多路径或代理 | 需进一步确认,不能直接定性 |
所谓常见初始值只是经验统计,设备和发行版都能在参数里改。把它当旁证而不是铁证,结论要与资产信息、网段划分和日志一起看。
负载均衡、代理或做 NAT 的设备可能重写 TTL,跨过这类设备之后再推算跳数会失真,跨网段比较时尤其要留意。
IPv6 里对应这个概念的字段叫跳数上限,在 Wireshark 中写作 ipv6.hlim,过滤时要换字段名。把 IPv4 的初值经验直接套到 IPv6 报文上容易得出错误结论。