网络一慢,八成是路径或MTU出了问题。
通过跟踪数据包经过的每一跳路由器及其延迟/MTU,你能:
traC++eroute
:瑞士军刀级工具需要 root 权限(部分系统) | 支持 ICMP/UDP/TCP | 功能最全
traceroute [选项] <目标IP或域名>
基本跟踪 traceroute 8.8.8.8
限制最大跳数 traceroute -m 15 8.8.8.8
用 ICMP Echo traceroute -I 8.8.8.8
ping
,易被放行跟踪 TCP 80 traceroute -T -p 80 example.com
指定源地址 traceroute -s 192.168.1.100 8.8.8.8
1 192.168.1.1 1.2 ms 0.8 ms 0.7 ms
2 10.10.10.1 12.4 ms 11.5 ms 10.7 ms
3 * * * ← 这一跳无响应或丢弃
*
星号 = 超时/丢包tracepath
:轻量级诊断利器无需 root | 默认 ICMP | 自动显示 MTU
tracepath [选项] <目标IP或域名>
tracepath 8.8.8.8
输出示例:
1: 192.168.1.1 1.14 ms pmtu 1500
2: 10.10.10.1 12.35 ms
...
4: 216.58.202.202 29.74 ms reached
MTU: 1500
pmtu 1500
:路径最小 MTU 为 1500 字节asymm 2
,提示非对称路由,可能是 MTU/路由故障traceroute -T -p 443 example.com
tracepath -n 10.0.0.1
traceroute -q 10 1.1.1.1
-q 10
每跳发 10 包,统计丢包率flowchart TD
A(网络慢?) --> B{用 traceroute}
B -->|定位高延迟/丢包| C[调整路由/联系ISP]
A --> D{用 tracepath}
D -->|发现MTU问题| E[修改MTU/MSS]
把以下函数贴进 ~/.bashrc
,随时调用:
# 快速诊断函数
tracefast() {
echo "=== tracepath (MTU) ==="
tracepath "$1"
echo -e "\n=== traceroute TCP/80 ==="
traceroute -T -p 80 "$1"
}
用法:
1 192.168.1.1 1.2 ms 0.8 ms 0.7 ms
2 10.10.10.1 12.4 ms 11.5 ms 10.7 ms
3 * * * ← 这一跳无响应或丢弃
0