Day 7-5 分层排障方法论 + 案例实战
核心原则:排障是从下到上逐层缩小的过程,不要一上来就看日志。
前面学了网络分层模型和诊断工具。但工具只是手段,怎么用工具一步步排查问题才是关键。
本节学习五层排查法——从物理层到应用层的系统化排障方法,以及两个真实场景的完整排障流程。
一、五层排查法概述
1.1 什么是五层排查法?
五层排查法是从物理层到应用层的系统化排障方法,按照从下到上的顺序逐层检查,缩小问题范围。

1.2 五层详解
| 层级 | 名称 | 检查内容 | 关键命令 |
|---|---|---|---|
| 第 1 层 | 物理层 | 网线、网卡、云实例状态 | ip link、云控制台 |
| 第 2 层 | 链路层 | MAC 地址、ARP、网卡状态 | ip neigh、arping |
| 第 3 层 | 网络层 | IP 地址、路由表、网关 | ip addr、ip route、ping |
| 第 4 层 | 传输层 | 端口监听、防火墙、连接状态 | ss -tlnp、firewall-cmd |
| 第 5 层 | 应用层 | 进程运行、配置错误、日志 | systemctl status、journalctl |
1.3 核心原则
核心原则:排障是从下到上逐层缩小的过程,不要一上来就看日志。

二、场景 A:SSH 无法连接

2.1 问题现象
【客户端】 ssh root@10.0.0.142
# 报错:Connection refused / timed out / denied
2.2 排查流程图

2.3 逐步排查步骤
第 1 层:物理层
【客户端】 ip link show
【服务器】 ip link show
# 确认网卡 state UP
第 2 层:链路层
【客户端】 ip neigh
# 状态为 REACHABLE 表示正常
第 3 层:网络层
【客户端】 ping 10.0.0.142
# 通则 → 网络正常
# 不通 → 检查 IP 配置
第 4 层:传输层
【服务器】 ss -tlnp | grep :22
# 有输出 → 服务在监听
# 无输出 → 服务未启动
【服务器】 firewall-cmd --list-all
# 确认 22 端口已放行
【客户端】 nc -zv 10.0.0.142 22
# 成功 → 端口通
# 失败 → 防火墙拦截
| 参数 | 含义 |
|---|---|
-z |
仅扫描端口,不发送任何数据(零 I/O 模式),只测试连通性 |
-v |
详细输出,显示连接结果(成功/失败) |
第 5 层:应用层
【服务器】 systemctl status sshd
# 状态为 running
【服务器】 tail -20 /var/log/secure
# 查看认证失败原因
三、场景 B:网站无法访问【待学完后续课程】

3.1 问题现象
【客户端】 curl http://10.0.0.142
# 或浏览器访问 http://10.0.0.142
# 报错:Connection refused / timed out / 404 / 502 / 503
3.2 排查流程图

3.3 逐层排查步骤
第 1 层:物理层
【客户端】 ip link show
【服务器】 ip link show
# 确认网卡 state UP
第 2 层:链路层
【客户端】 ip neigh show 10.0.0.142
# 状态为 REACHABLE 表示正常
第 3 层:网络层
【客户端】 ping 10.0.0.142
# 通则 → 网络正常
# 不通 → 检查 IP 配置
第 4 层:传输层
【服务器】 ss -tlnp | grep -E ":80|:443|:8080"
# 有输出 → 服务在监听
# 无输出 → 服务未启动
【服务器】 firewall-cmd --list-all
# 确认 Web 端口已放行
【客户端】 nc -zv 10.0.0.142 80
# 成功 → 端口通
# 失败 → 防火墙拦截
第 5 层:应用层
【服务器】 curl -I http://localhost:80
# 返回 200 → Web 服务正常,排查客户端/网络
# 失败 → Web 服务有问题
【服务器】 systemctl status nginx
# 状态为 running
【服务器】 nginx -t
# 检查配置文件语法
【服务器】 tail -20 /var/log/nginx/error.log
# 查看错误日志
【服务器】 getenforce
# Enforcing 可能拦截,临时关闭测试:setenforce 0
【服务器】 df -h
# 检查磁盘空间
# 验证
【客户端】 curl http://10.0.0.142
# 返回页面内容 → 故障已解决
四、排障决策树
4.1 SSH 问题决策树

4.2 Web 问题决策树

五、交付物
5.1 分层排障决策树
需绘制《后台管理系统分层排障决策树》(从现象到根因的五层分支流程图):

5.2 Linux 基础排障 Runbook
需编写《Linux 基础排障 Runbook》,含 SSH 和 Web 两类场景的症状、逐层检查命令、修复步骤、验证方法。
# Linux 基础排障 Runbook
## 场景 1:SSH 无法连接
### 症状
- Connection timed out
- Connection refused
- Permission denied
### 排查步骤
1. 物理层:检查云控制台实例状态。
2. 网络层:ping IP 检查连通性。
3. 传输层:telnet IP 22 检查端口。
4. 应用层:systemctl status sshd。
### 修复步骤
- 服务未启动:systemctl start sshd。
- 防火墙拦截:firewall-cmd --add-service=ssh。
- 认证失败:检查 /var/log/secure。
### 验证方法
- ssh user@IP 成功登录。
---
## 场景 2:网站无法访问
### 症状
- 浏览器返回 502/503/504。
- 页面加载超时。
### 排查步骤
1. 网络层:ping IP 检查连通性。
2. 传输层:ss -tlnp | grep :80 检查端口。
3. 应用层:curl -I http://localhost 本地测试。
### 修复步骤
- Nginx 未启动:systemctl start nginx。
- 配置错误:nginx -t 检查并修复。
- 后端服务未启动:systemctl start 后端服务。
### 验证方法
- curl -I http://IP 返回 200。
评论