网络协议常见错误排查手册

20 个常见协议错误的系统化排查指南

🗺️ 协议错误排查知识图谱

flowchart TD subgraph 网络层 IP_E[IP错误
TTL过期/端口不可达] DNS_E[DNS错误
解析失败/超时] ARP_E[ARP错误
MAC地址未找到] end subgraph 传输层 TCP_E[TCP错误
连接重置/超时] UDP_E[UDP错误
丢包/校验失败] end subgraph 应用层 HTTP_E[HTTP错误
4xx/5xx状态码] TLS_E[TLS错误
证书验证失败] SSH_E[SSH错误
认证失败/连接断开] end IP_E --> TCP_E DNS_E --> HTTP_E TCP_E --> HTTP_E UDP_E --> DNS_E TLS_E --> HTTP_E style IP_E fill:#dc2626,color:#fff style TCP_E fill:#7c3aed,color:#fff style HTTP_E fill:#2563eb,color:#fff
400

Bad Request - 错误请求

错误含义

  • 服务器无法理解请求,通常因语法错误

常见原因

  • 请求头格式错误
  • 请求体 JSON 格式无效
  • 缺少必需参数
  • URL 包含非法字符

排查步骤

  • 检查请求头格式是否正确
  • 验证 JSON 请求体语法
  • 确认必需参数已提供
  • 使用浏览器开发者工具查看原始请求

解决方案

  • 修复请求格式错误
  • 使用 JSON 验证工具检查请求体
  • 参考 API 文档补充必需参数
  • 对 URL 特殊字符进行编码
401

Unauthorized - 未授权

错误含义

  • 请求需要用户认证,但未提供或认证失败

常见原因

  • 未提供认证令牌(Token)
  • Token 已过期或无效
  • 认证凭证错误
  • 认证头格式不正确

排查步骤

  • 检查请求是否包含 Authorization 头
  • 验证 Token 是否有效且未过期
  • 确认认证方式(Bearer/Basic)正确
  • 检查服务器认证配置

解决方案

  • 重新获取有效的 Token
  • 检查认证头格式:Authorization: Bearer <token>
  • 实现 Token 自动刷新机制
  • 验证用户名密码是否正确
403

Forbidden - 禁止访问

错误含义

  • 服务器理解请求但拒绝执行,权限不足

常见原因

  • 用户无访问该资源的权限
  • IP 地址被服务器封禁
  • CORS 跨域限制
  • 目录列表被禁用

排查步骤

  • 确认用户权限配置
  • 检查服务器访问控制列表
  • 验证 CORS 配置
  • 查看服务器错误日志

解决方案

  • 联系管理员获取相应权限
  • 检查并调整服务器权限配置
  • 配置正确的 CORS 响应头
  • 确保请求的资源存在且可访问
404

Not Found - 资源未找到

错误含义

  • 服务器找不到请求的资源

常见原因

  • URL 路径错误或拼写错误
  • 资源已被删除或移动
  • 服务器配置问题
  • 大小写敏感问题(Linux 服务器)

排查步骤

  • 仔细检查 URL 拼写
  • 确认资源是否存在于服务器
  • 检查服务器路由配置
  • 查看服务器访问日志

解决方案

  • 修正 URL 路径
  • 恢复或重新创建资源
  • 配置 301 重定向到正确位置
  • 设置友好的 404 页面
405

Method Not Allowed - 方法不允许

错误含义

  • 请求方法(GET/POST 等)不被该资源支持

常见原因

  • 使用了错误的 HTTP 方法
  • 服务器未配置该方法的处理
  • API 不支持该操作

排查步骤

  • 检查 API 文档确认支持的方法
  • 验证请求方法是否正确
  • 检查服务器路由配置

解决方案

  • 使用正确的 HTTP 方法
  • 在服务器配置中允许该方法
  • 返回 Allow 头告知支持的方法
408

Request Timeout - 请求超时

错误含义

  • 服务器等待请求的时间过长

常见原因

  • 网络延迟过高
  • 请求体过大上传缓慢
  • 客户端发送请求过慢
  • 服务器超时设置过短

排查步骤

  • 检查网络连接质量
  • 测量请求上传时间
  • 查看服务器超时配置

解决方案

  • 优化网络环境
  • 压缩请求体减小体积
  • 增加服务器超时时间
  • 实现请求重试机制
429

Too Many Requests - 请求过多

错误含义

  • 用户在给定时间内发送了过多请求

常见原因

  • 触发 API 速率限制
  • 频繁请求被识别为攻击
  • 未遵守 API 调用频率限制

排查步骤

  • 检查 API 速率限制政策
  • 统计请求频率
  • 查看响应头中的限流信息

解决方案

  • 实现请求限流和退避策略
  • 使用指数退避算法重试
  • 申请更高的速率限制
  • 缓存响应减少重复请求
500

Internal Server Error - 服务器内部错误

错误含义

  • 服务器遇到意外情况,无法完成请求

常见原因

  • 服务器代码异常或崩溃
  • 数据库连接失败
  • 服务器配置错误
  • 资源耗尽(内存、磁盘)

排查步骤

  • 查看服务器错误日志
  • 检查应用程序日志
  • 监控服务器资源使用
  • 检查数据库连接状态

解决方案

  • 修复代码中的 bug
  • 重启相关服务
  • 增加服务器资源
  • 优化数据库连接池配置
502

Bad Gateway - 网关错误

错误含义

  • 网关或代理服务器从上游服务器收到无效响应

常见原因

  • 上游服务器宕机
  • 代理配置错误
  • 网络连接中断
  • 上游服务器响应超时

排查步骤

  • 检查上游服务器状态
  • 验证代理服务器配置
  • 测试网络连接
  • 查看网关日志

解决方案

  • 重启上游服务器
  • 修复代理配置
  • 增加上游服务器超时时间
  • 配置健康检查和故障转移
503

Service Unavailable - 服务不可用

错误含义

  • 服务器暂时无法处理请求,通常因过载或维护

常见原因

  • 服务器过载
  • 计划内维护
  • 后端服务不可用
  • 连接池耗尽

排查步骤

  • 检查服务器负载情况
  • 查看维护公告
  • 检查后端服务状态
  • 监控连接池使用

解决方案

  • 增加服务器容量
  • 实现负载均衡
  • 配置服务降级策略
  • 设置 Retry-After 响应头
504

Gateway Timeout - 网关超时

错误含义

  • 网关或代理服务器等待上游服务器响应超时

常见原因

  • 上游服务器响应过慢
  • 网络延迟过高
  • 超时设置过短
  • 上游服务器处理复杂请求

排查步骤

  • 测量上游服务器响应时间
  • 检查网络延迟
  • 查看超时配置
  • 分析慢查询日志

解决方案

  • 增加网关超时时间
  • 优化上游服务器性能
  • 实现异步处理
  • 添加缓存层减少后端压力
520

Web Server Returned an Unknown Error

错误含义

  • Cloudflare 收到源服务器空或无效响应

常见原因

  • 源服务器返回空响应
  • 响应头过大
  • SSL/TLS 握手失败

排查步骤

  • 检查源服务器日志
  • 验证 SSL 证书配置
  • 检查响应头大小

解决方案

  • 修复源服务器问题
  • 更新 SSL 证书
  • 减小响应头大小
DNS

DNS 解析失败

错误含义

  • 无法将域名解析为 IP 地址

常见原因

  • DNS 服务器故障
  • 域名记录配置错误
  • 本地 DNS 缓存问题
  • 域名已过期

排查步骤

  • 使用 nslookup 或 dig 测试解析
  • 检查 DNS 记录配置
  • 清除本地 DNS 缓存
  • 尝试更换 DNS 服务器

解决方案

  • 修正 DNS 记录配置
  • 使用公共 DNS(如 8.8.8.8)
  • 续费域名
  • 等待 DNS 传播完成
TCP

TCP 连接超时

错误含义

  • 无法在指定时间内建立 TCP 连接

常见原因

  • 目标服务器宕机
  • 防火墙阻止连接
  • 网络路由问题
  • 端口未开放

排查步骤

  • 使用 ping 测试连通性
  • 使用 telnet 测试端口
  • 检查防火墙规则
  • 追踪路由路径

解决方案

  • 启动目标服务
  • 配置防火墙允许连接
  • 联系网络管理员
  • 增加连接超时时间
SSL

SSL/TLS 握手失败

错误含义

  • 无法建立安全的 HTTPS 连接

常见原因

  • SSL 证书过期
  • 证书链不完整
  • 协议版本不匹配
  • 加密套件不兼容

排查步骤

  • 使用 SSL Labs 测试证书
  • 检查证书有效期
  • 验证证书链完整性
  • 检查服务器 SSL 配置

解决方案

  • 更新 SSL 证书
  • 安装中间证书
  • 启用兼容的协议版本
  • 配置兼容的加密套件
WS

WebSocket 连接失败

错误含义

  • 无法建立 WebSocket 连接

常见原因

  • 服务器不支持 WebSocket
  • 代理服务器拦截
  • 握手请求格式错误
  • 跨域限制

排查步骤

  • 检查服务器 WebSocket 配置
  • 查看浏览器控制台错误
  • 测试直接连接(绕过代理)
  • 验证握手请求头

解决方案

  • 启用服务器 WebSocket 支持
  • 配置代理允许 Upgrade 头
  • 修正握手请求格式
  • 配置 CORS 允许跨域
CORS

CORS 跨域错误

错误含义

  • 浏览器阻止跨域请求

常见原因

  • 缺少 Access-Control-Allow-Origin 头
  • Origin 不匹配
  • 预检请求失败
  • 凭证模式配置错误

排查步骤

  • 查看浏览器控制台 CORS 错误
  • 检查服务器响应头
  • 验证预检请求(OPTIONS)
  • 检查请求凭证配置

解决方案

  • 添加正确的 CORS 响应头
  • 配置允许的 Origin 列表
  • 处理预检请求
  • 正确配置 withCredentials
CONN

连接被重置(ECONNRESET)

错误含义

  • TCP 连接被对端强制关闭

常见原因

  • 服务器崩溃或重启
  • 防火墙拦截
  • 请求体过大
  • 连接超时

排查步骤

  • 检查服务器日志
  • 验证防火墙规则
  • 测量请求大小
  • 监控连接状态

解决方案

  • 增加服务器稳定性
  • 调整防火墙配置
  • 分块发送大数据
  • 实现连接重试机制
CERT

证书验证失败

错误含义

  • SSL/TLS 证书验证不通过

常见原因

  • 证书已过期
  • 证书颁发机构不受信任
  • 域名不匹配
  • 系统时间不正确

排查步骤

  • 检查证书有效期
  • 验证证书颁发机构
  • 确认域名匹配
  • 检查系统时间

解决方案

  • 更新证书
  • 使用受信任的 CA 证书
  • 申请正确的域名证书
  • 同步系统时间
PROXY

代理服务器错误

错误含义

  • 通过代理服务器请求时发生错误

常见原因

  • 代理服务器配置错误
  • 代理服务器不可用
  • 认证失败
  • 协议不支持

排查步骤

  • 验证代理配置
  • 测试代理连通性
  • 检查代理认证
  • 尝试直接连接

解决方案

  • 修正代理配置
  • 更换可用的代理服务器
  • 提供正确的认证凭证
  • 配置代理绕过规则