---
title: 网络故障诊断方法论
url: https://doc.liz6.com/networking/13-network-diagnostics/02-network-troubleshooting-methodology
locale: zh
area: networking
tags:
- networking
- 网络诊断
date: 2026-06-30
modified: 2026-06-30
description: 分层定位——从 L1 到 L7 每次排除一层。MTU black hole(ICMP 被过滤导致 TCP 握手完成但数据传不动)、DNS 解析异常、TCP 握手超时——每种经典故障都有特定的诊断路径。mtr 比 ping/traceroute 更适合定位间歇性丢包。
---

# 网络故障诊断方法论

> 分层定位——从 L1 到 L7 每次排除一层。MTU black hole(ICMP 被过滤导致 TCP 握手完成但数据传不动)、DNS 解析异常、TCP 握手超时——每种经典故障都有特定的诊断路径。mtr 比 ping/traceroute 更适合定位间歇性丢包。

## 概述

网络故障诊断的核心方法论是分层定位：从 L1（物理）到 L7（应用），每次排除一层。最常见的故障模式有：MTU black hole（ICMP 被过滤导致 TCP 卡死）、DNS 解析异常、TCP 连接建立后数据传输卡住（buffer/窗口问题）。mtr 比 ping/traceroute 更适合长期丢包监控——它显示了端到端每一跳的丢包率和延迟抖动。

## 分层诊断

```
L1 (物理): ip link, ethtool eth0 | grep Link
L2 (数据链): ip neigh, tcpdump arp
L3 (网络): ping -M do, traceroute, ip route
L4 (传输): ss -tlnp, tcpdump 'tcp[tcpflags] & tcp-syn != 0'
L5-6 (TLS): openssl s_client -connect host:443, tshark 'tls.alert_message.level==2'
L7 (应用): curl -v, dig, ss -tianp (Recv-Q / Send-Q)
```

## 经典故障模式

### "网络通但访问不了"

```
ping 通 → L3 OK, L4 可能有问题

检查:
  ss -tlnp | grep <port>            服务在监听?
  iptables -L -n -v                  防火墙 block?
  tcpdump 'tcp[tcpflags] & tcp-rst != 0'  谁在发 RST?
  cat /proc/sys/net/netfilter/nf_conntrack_count  conntrack 表满?
```

### MTU Black Hole

```
症状: ping 通, TCP SYN+ACK 完成, 数据传输卡住。

根因: 路径上 MTU 小于发送的包大小 + DF=1 + ICMP Frag Needed 被过滤
  → 包在路径上被丢弃, 发送方不知道

检测: ping -M do -s 1472 <target> → 失败 (但小 ping 通) → MTU black hole
缓解: iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
```

### DNS 问题

```
dig <domain> +short                   返回了什么?
dig +trace <domain>                   递归路径上哪一步断了?
tcpdump -nn 'port 53'                 请求发出去了吗? 有响应吗?
```

### 间歇性超时

```
mtr -r -c 100 <target>               哪一跳开始丢包+抖动?
ethtool -S eth0 | grep -E 'err|drop'  网卡丢包?
cat /proc/net/dev                      软丢包?
tc -s qdisc show dev eth0              qdisc 丢包 (bufferbloat?)
```

## 参考

- **mtr**: bitwizard.nl/mtr
- **iptables**: netfilter.org/documentation

*Keywords: network troubleshooting, L1-L7, MTU black hole, DNS, TCP RST, conntrack, bufferbloat*
