网络设备通用排障思路与命令速查模板

网络设备通用排障思路模板

遇到问题时按此顺序排查,避免东一榔头西一棒子。

一、分层排障模型(OSI 自下而上)

层级 检查项 常用命令
物理层 线缆、光模块、端口灯 display interface
数据链路层 VLAN、MAC、STP、聚合 display mac-address、display stp brief
网络层 IP、路由、ARP display ip routing-table、display arp
传输层 TCP/UDP、端口、ACL display acl all、display firewall session
应用层 DNS、HTTP、业务 nslookup、curl、traceroute

二、排障四问

  1. 什么业务不通?(源 IP、目的 IP、端口)
  2. 什么时候开始的?(最近做过什么变更)
  3. 是单点还是全网?(一台终端 / 一个部门 / 全部)
  4. 是偶发还是必现?(丢包率、时间段)

三、常用诊断命令速查

华为 / H3C

1
2
3
4
5
6
7
8
display interface brief
display ip routing-table
display arp
display logbuffer
display cpu-usage
display memory
ping -c 100 -s 1500 <目标>
tracert <目标>

思科

1
2
3
4
5
6
7
8
show ip interface brief
show ip route
show arp
show logging
show processes cpu
show memory statistics
ping <目标> repeat 100 size 1500
traceroute <目标>

四、抓包要点

  • 先在离故障点最近的接口抓
  • 关注握手包(SYN / SYN-ACK / ACK)
  • 关注 ICMP 超时、ICMP 不可达
  • 关注 RST 包(端口被拒绝)

五、变更前必做

  • display current-configuration 备份
  • 记录变更前的端口、路由、会话状态
  • 预留回退方案(undo 命令写好)

六、记录模板

1
2
3
4
5
6
7
【故障现象】
【影响范围】
【排查过程】
【根因】
【解决方案】
【预防措施】
【责任人 / 时间】

终端无法获取 DHCP 地址排查笔记

终端无法获取 DHCP 地址

现象

  • 客户端网卡显示”正在获取网络地址”或自动配置 169.254.x.x
  • 拿到的 IP 不在预期网段

排查步骤

1. 确认 DHCP 服务器状态(华为)

1
2
display dhcp server ip-in-use
display ip pool
  • 地址池是否耗尽
  • 是否有静态绑定占满了地址池

2. 确认全局 DHCP 开启

1
display current-configuration | include dhcp enable
  • 全局必须先 dhcp enable
  • 接口下要选择接口地址池还是全局地址池:
    • dhcp select interface(接口地址池)
    • dhcp select global(全局地址池)

3. 跨 VLAN / 跨中继场景

若 DHCP 服务器在别的网段,终端所在网关必须配置中继:

1
2
3
interface Vlanif10
dhcp select relay
dhcp relay server-ip 192.168.1.100
  • 检查中继地址是否正确
  • 检查 DHCP 服务器是否放行了 DHCP 广播(UDP 67/68)

4. 排除地址冲突

1
display dhcp server conflict all
  • 若存在冲突地址,服务器会暂时跳过该 IP

5. 抓包验证

  • 在网关端口抓包看 DISCOVER 是否到达服务器
  • OFFER 是否返回客户端

链路聚合 LACP 协商失败排查笔记

链路聚合(Eth-Trunk / Port-channel)协商失败

现象

  • 多根网线互联,但只有一根在跑流量
  • 或聚合接口显示 Down

排查步骤(华为 Eth-Trunk)

1. 查看聚合组状态

1
display eth-trunk 1
  • 查看成员口数量、选中(Selected)数量
  • 若成员口 Unselected:查看原因字段

2. 模式必须一致

  • 两端要么都手工负载分担(manual),要么都 LACP 动态模式
  • 一端 manual、一端 LACP 会导致只有一个口 Up
1
2
interface Eth-Trunk1
mode lacp-static

3. 成员口配置必须一致

所有加入 Eth-Trunk 的物理口必须:

  • 相同的 VLAN 配置(PVID、Trunk 放行)
  • 相同的速率、双工模式
  • 相同的端口类型(都 Access 或都 Trunk)
  • 不能有其他业务配置(如端口隔离)

4. LACP 系统优先级与接口优先级

1
display lacp eth-trunk
  • 若一端优先级更高,会主动决定选中端口
  • 可通过 lacp priority 调整

思科 Port-channel

1
2
show etherchannel summary
show lacp neighbor
  • 同样要求两端模式一致:on / desirable / auto / active / passive
  • 推荐两端都是 active(LACP)

内网通但无法访问外网 NAT 故障排查笔记

内网通但无法访问外网(NAT 故障)

现象

  • 内网互 ping 正常
  • ping 内网网关正常
  • 但 ping 公网 IP(如 223.5.5.5)不通
  • 或能 ping 通 IP 但打不开网页(DNS 问题)

排查步骤

1. 先确认是 NAT 问题还是路由问题

1
ping -a 内网源IP 公网IP
  • 若不通:在出口路由器上 ping -a 公网接口IP 公网IP
  • 出口自己能 ping 通 → 内网没走 NAT,或 NAT 规则没命中

2. 检查 NAT 配置(华为)

1
2
3
display nat outbound
display nat address-group
display acl 3000
  • ACL 是否匹配了内网网段
  • Outbound 接口是否正确应用
  • 地址池是否用尽(display nat session all)

3. 检查 Easy IP / PAT

1
2
interface GigabitEthernet0/0/1
nat outbound 3000
  • Easy IP 方式直接复用出接口公网 IP

4. 检查会话表

1
display nat session destination 223.5.5.5
  • 有会话但回包不到:检查回程路由
  • 无会话:ACL 没匹配,或流量没走到出接口

5. DNS 问题

  • 能 ping 通 IP 但域名解析失败:
1
2
display dhcp server lease   # 看下发的 DNS
nslookup www.baidu.com

思科对比

1
2
3
show ip nat translations
show ip nat statistics
show access-lists

二层环路检测与 STP 排查笔记

二层环路检测与 STP 排查

现象

  • 全网突然变慢,广播风暴
  • 交换机 CPU 占用率飙高
  • 端口指示灯疯狂闪烁

快速判断

1
2
display interface | include rate
display cpu-usage
  • 广播/组播包速率接近线速:基本可判定环路

排查步骤

1. 查看 STP 状态

1
2
display stp brief
display stp topology-change
  • 根桥是否正确
  • 端口角色是否符合预期(ROOT / DESI / ALTE)

2. 定位环路端口

1
display stp interface GigabitEthernet0/0/1
  • 若端口同时被 STP 阻塞但仍有大量流量,说明 STP 未生效(可能被关闭)

3. 检查是否有端口未参与 STP

1
display stp | include Protocol
  • 若 Protocol*: stp 为 disabled,说明该端口被配置为 stp edged-port 且连接了另一台交换机

4. 紧急处置

1
shutdown GigabitEthernet0/0/X
  • 先拔/关怀疑链路,恢复业务
  • 再慢慢定位私接交换机、网线误接

预防

  • 所有接终端端口配置 stp edged-port enable
  • 开启 BPDU 保护:stp bpdu-protection
  • 开启环路检测:loopback-detection enable

华为设备 Console 密码忘记恢复笔记

华为设备 Console 密码忘记恢复

适用场景

  • 忘记 Console 口登录密码,无法进入设备配置
  • 设备物理可接触(机房本地操作)

恢复步骤

1. 重启设备,按 Ctrl+B 进入 BootROM

  • 串口波特率 9600,重启后在出现 Press Ctrl+B to enter BootROM menu 时快速按键
  • 默认 BootROM 密码通常为 Admin@huawei.com(不同版本可能不同)

2. 选择跳过配置启动

1
2
3
4
BootROM  Menu:
1. Startup switch
2. Password recovery
...
  • 选择 Password recovery 或直接选跳过配置文件启动

3. 进入系统后重置密码

1
2
3
4
5
6
system-view
user-interface console 0
authentication-mode password
set authentication password cipher NewPass@123
return
save

4. 注意事项

  • 跳过配置启动后原配置仍在闪存中,需手动 display saved-configuration 确认
  • 恢复完成后必须 save 保存新配置
  • 此操作会中断业务,仅在业务维护窗口执行

思科对比

  • 思科:Break 键进入 ROMMON,修改配置寄存器值为 0x2142 跳过启动配置
  • 启动后 copy startup-config running-config,再改密码
  • 最后把配置寄存器改回 0x2102 并保存

IPSec VPN 隧道建立失败排查笔记

IPSec VPN 隧道建立失败

现象

  • 两端配置完整,但 display ike sa / display ipsec sa 无建立成功的 SA

排查步骤(以华为为例)

1. IKE 第一阶段(主模式)

1
display ike sa
  • 无 SA:检查 IKE proposal 参数(加密、认证、DH 组)两端是否一致
  • 对端地址、预共享密钥是否正确

2. UDP 500/4500 是否放通

  • 边界 ACL / NAT 是否放过 IKE 流量
  • 若中间有 NAT,确认开启 NAT-T(UDP 4500)

3. IKE 第二阶段

1
display ipsec sa brief
  • 第一阶段 OK 但第二阶段失败:检查 IPSec 策略、ACL 匹配的感兴趣流
  • 封装模式(传输/隧道)、PFS 设置两端必须一致

4. 触发流量

  • 隧道不会自动建立,需要有感兴趣流命中 ACL 才会发起协商
  • 可在两端用 ping -a 源IP 对端私网IP 触发

思科对比命令

1
2
3
4
show crypto isakmp sa
show crypto ipsec sa
debug crypto isakmp
debug crypto ipsec

H3C AC 旁挂瘦 AP 离线排查笔记

H3C AC 旁挂瘦 AP 离线

现象

  • AC 上 display wlan ap all 显示 AP 状态为 Idle/Fault
  • AP 上线失败,SSID 不广播

排查步骤

1. 确认 AP 与 AC 二层/三层连通

1
2
display dhcp server ip-in-use
ping <AC管理IP>
  • AP 需从 DHCP 获取到包含 Option 43 的地址
  • 三层组网时检查 Option 43 是否指向 AC

2. 检查 AP 模板与注册状态

1
2
display wlan ap all
display wlan ap name <ap-name>
  • State: Run 正常;Idle 表示未注册;Fault 表示版本不匹配或认证失败

3. 检查 CAPWAP 链路

1
2
display capwap ap all
display capwap statistics
  • UDP 5247/5246 端口是否被防火墙拦截
  • DTLS 隧道建立是否成功

4. 版本与授权

  • AP 与 AC 软件版本不匹配会导致下载镜像失败
  • AC 的 AP License 数量是否已满

快速恢复

1
reset wlan ap name <ap-name>

让 AP 重新向 AC 发起注册。

思科路由器路由表缺失排查笔记

思科路由器路由表缺失

现象

  • 配置了静态路由或运行动态路由协议,但 show ip route 看不到目标网段

排查步骤

1. 确认出接口状态

1
show ip interface brief
  • 出接口必须是 Up/Up 才会在路由表中生效

2. 静态路由检查

1
2
show ip route static
show running-config | section ip route
  • 静态路由下一跳是否可达
  • 若指定了出接口(点对点),需确保该接口 Up

3. OSPF 邻居状态

1
2
show ip ospf neighbor
show ip ospf interface brief
  • 邻居必须达到 Full 状态才会交换 LSA
  • 常见卡在 INIT:单通、区域 ID 不匹配、Hello/Dead 间隔不一致

4. EIGRP 邻居状态

1
2
show ip eigrp neighbors
show ip eigrp topology
  • K 值不匹配、AS 号不一致、被动接口都会导致邻居建立失败

5. 检查分发列表 / 路由策略

1
show ip protocols
  • 是否有 distribute-list 过滤了对应网段

验证

1
2
ping x.x.x.x source y.y.y.y
traceroute x.x.x.x

Hexo博客部署到CloudflarePages完整教程

================================================================================
Hexo 博客部署到 Cloudflare Pages 完整笔记(全量版)
================================================================================

目标:本地写 Markdown → 推到 GitHub → Cloudflare Pages 自动构建 → 用 readhaven567.top 访问
作者环境:Windows 11 / Node.js v24.15.0 / Git / GitHub / Cloudflare / GoDaddy
最后更新:2026-10-13
博客地址:https://readhaven567.top
GitHub 仓库:https://github.com/suvenG123/hexo-blog

================================================================================
一、需要的软件和账号

软件 / 平台 作用 下载地址

Node.js(LTS) 运行 Hexo https://nodejs.org
Git 推送代码到 GitHub https://git-scm.com
Hexo-CLI 生成博客框架 npm 安装
GitHub 存放博客源码 https://github.com
Cloudflare 托管静态站 + CDN + SSL https://dash.cloudflare.com
GoDaddy 域名注册商(只改 NS) —

注意:不需要安装 hexo-deployer-git,也不需要 GitHub Pages。
走的是「Cloudflare Pages 拉 GitHub 源码自动构建」。

================================================================================
二、本地安装 Node.js 和 Git

  1. 安装 Node.js

    • 去 nodejs.org 下载 LTS 版本(v24.15.0)
    • 一路下一步安装
    • 安装完打开终端验证:
      node -v
      npm -v
      能看到版本号 = 成功
  2. 安装 Git

    • 去 git-scm.com 下载
    • 安装时默认选项即可
    • 验证:
      git –version
  3. 配置 Git 用户名(第一次必做)
    git config –global user.name “你的GitHub用户名”
    git config –global user.email “你的GitHub邮箱”

================================================================================
三、安装 Hexo 并初始化博客

  1. 全局安装 Hexo-CLI
    npm install -g hexo-cli
    验证:hexo -v

  2. 新建博客目录
    D:
    mkdir hexo-blog
    cd hexo-blog

  3. 初始化 Hexo
    hexo init
    npm install

  4. 本地预览
    hexo clean
    hexo generate
    hexo server
    浏览器打开 http://localhost:4000

================================================================================
四、写文章

方式一:命令行新建(推荐)
hexo new “文章标题”
生成位置:source/_posts/文章标题.md

方式二:手动放文件
直接把写好的 .md 文件放进 source/_posts/ 文件夹。

⚠️ 文章格式注意事项(非常重要!)
每篇文章最顶部必须有 Front-matter 头信息,否则 Hexo 会报错(js-yaml 报错)并跳过渲染:


title: 文章标题
date: 2026-10-13 10:00:00
tags: [标签1, 标签2]
categories: 分类名

正文内容写在这里…

常见格式错误:

  • title: 后面没打空格(正确:title: 标题,错误:title:标题)
  • 少了开头或结尾的 —
  • 日期格式不对
  • 文件名带 .md.md 双后缀

================================================================================
五、创建 GitHub 仓库

  1. 登录 GitHub → New repository
  2. 仓库名:hexo-blog
  3. 选 Public
  4. 不要勾 Add README
  5. 点 Create repository

================================================================================
六、推送代码到 GitHub

方式一:命令行
cd D:\hexo-blog
git init
git add .
git commit -m “初始化Hexo博客”
git branch -M main
git remote add origin https://github.com/suvenG123/hexo-blog.git
git push -u origin main

方式二:GitHub Desktop
1. 打开 GitHub Desktop → File → Add local repository → 选 D:\hexo-blog
2. 左侧 Changes 里勾选要提交的文件
(不要勾 node_modules/、public/、多余副本文件)
3. 底部输入 Summary(如”初始化Hexo博客”)
4. 点 Commit to main
5. 点顶部的 Push origin

⚠️ 只 Commit 不 Push = 代码只在本地,云端不会更新!

================================================================================
七、Cloudflare Pages 部署

  1. 登录 dash.cloudflare.com
  2. Workers 和 Pages → 创建应用程序 → 选 Pages(不是 Worker!)
  3. 连接到 Git → 选 hexo-blog 仓库
  4. 构建设置:
    • 项目名称:hexo-blog
    • 生产分支:main
    • 框架预设:无
    • 构建命令:npx hexo generate
    • 输出目录:public
    • 根目录:留空
    • 环境变量:NODE_VERSION = 24
  5. 保存并部署 → 等变绿 ✅

部署日志正常应该包含:

  • Installing dependencies…
  • Running build command…
  • Generated:(后面列出生成的文章)
  • Uploading…
  • Success!

================================================================================
八、GoDaddy 改 NS(接入 Cloudflare)

  1. Cloudflare 添加站点 readhaven567.top → 拿到两个 NS 地址
  2. 去 GoDaddy → 域名 → DNS → Nameservers → Change
  3. 删掉原来的 ns63/ns64.domaincontrol.com
  4. 填 Cloudflare 给的两个 NS → Save
  5. 关闭 DNSSEC(重要!否则证书可能签发失败)
  6. 等状态从 Pending 变 Active(几分钟到 24 小时)

================================================================================
九、绑定自定义域名

  1. Pages 项目 → 自定义域 → 设置域
  2. 输入 readhaven567.top → 确认
  3. Cloudflare 自动添加 DNS 记录
  4. 等证书签发完,状态变 Active
  5. 访问 https://readhaven567.top

SSL 设置:
左侧 SSL/TLS → 加密模式选 完全(Full)→ 开「始终使用 HTTPS」

================================================================================
十、修改 Hexo 的 url 配置

编辑 D:\hexo-blog_config.yml:
url: https://readhaven567.top
root: /

然后重新生成并推送:
hexo clean && hexo generate
git add . && git commit -m “绑定正式域名” && git push

================================================================================
十一、日常写文章流程

   hexo new "文章标题"
   # 用 VS Code 编辑 source/_posts/文章标题.md
   hexo clean && hexo generate
   git add .
   git commit -m "新文章:文章标题"
   git push

等 1-3 分钟 → Cloudflare 自动部署 → 刷新网页

⚠️ 不需要每次开 hexo server,除非你想本地预览。

================================================================================
十二、常见报错排查

问题 原因 解决

js-yaml 报错 / Cannot GET/ 文章 Front-matter 格式错误 检查 title: 后是否有空格
检查 — 是否完整
部署红色失败 构建命令没填或 Node 版本 检查 npx hexo generate
不对 和 NODE_VERSION=24
.pages.dev 能开域名打不开 NS 没生效或自定义域没绑 等 NS 传播 / Pages 里绑
ERR_CONNECTION_CLOSED 域名绑到了 Worker 而不是 去 Worker 解绑,在 Pages 绑
Pages
重定向次数过多 SSL 模式用了 Flexible 改成 完全(Full)
手机能开电脑不能 电脑 DNS 缓存旧了 ipconfig /flushdns
推送后网页没更新 浏览器/CDN 缓存 Ctrl + F5 强刷
/ Cloudflare 清缓存
本地 hexo s 看不到新文章 文章格式错误或文件放错 检查 Front-matter
位置 / 确认在 _posts 里
GitHub Desktop 显示 0 文件已提交或未检测到变化 点 Ctrl+R 刷新
changed files 检查文件是否在正确目录

================================================================================
十三、Cloudflare 缓存 vs 构建缓存

类型 位置 什么时候清

CDN 缓存 域名 → 缓存 → 清除所有内容 网页更新后看不到
构建缓存 Pages 项目 → Settings → 构建结果异常时
Build → Clear Cache

================================================================================
十四、最终架构图

本地 Hexo (D:\hexo-blog)
↓ git push
GitHub 仓库(源码)
↓ Cloudflare Pages 拉取
npx hexo generate → public/
↓
Cloudflare CDN
↓
readhaven567.top

================================================================================
十五、关键文件路径速查

文件 / 目录 作用

source/_posts/ 所有文章放这里
_config.yml 博客主配置(url、title 等)
themes/ 主题目录
.gitignore 忽略 node_modules/、public/
package.json 依赖清单

================================================================================
十六、本次实战踩坑记录

  1. ❌ 文件名带 .md.md 双后缀
    ✅ 只用 hexo new “标题” 不加 .md

  2. ❌ 文章没写 Front-matter
    ✅ 顶部加 — + title: + date:

  3. ❌ 文件夹里有”副本.md”
    ✅ 删掉,避免重复渲染

  4. ❌ 域名绑到 Worker 导致 ERR_CONNECTION_CLOSED
    ✅ 解绑 Worker,在 Pages 绑

  5. ❌ SSL 用 Flexible 导致重定向循环
    ✅ 改 Full

  6. ❌ GitHub Desktop 只 Commit 没 Push
    ✅ 必须点 Push origin

  7. ❌ DNSSEC 没关
    ✅ GoDaddy 关闭 DNSSEC

================================================================================
十七、快速命令备忘

新建文章

hexo new “标题”

本地预览

hexo clean && hexo generate && hexo server

提交推送

git add .
git commit -m “说明”
git push

清 DNS 缓存

ipconfig /flushdns

查看 Git 状态

git status

================================================================================
—— 全文完 ——
================================================================================