{关键词},连接类错误排查与解决

导读:

  1. TLS/SSL 证书错误
  2. 协议与认证错误
  3. DNS 与解析错误
  4. 其他常见错误
  5. 通用排查流程

Shadowrocket(小火箭)常见错误代码及解决方案

-1001 / Timeout / i/o timeout

  • 含义:连接超时,无法与服务器建立连接
  • 常见原因
    • 节点被墙或服务器宕机
    • 端口被封锁(常见于 443/80 以外的端口)
    • 本地网络到服务器路由质量差
  • 解决方案
    • 更换其他节点测试
    • 尝试切换 4G/5G 与 Wi-Fi
    • 检查服务器防火墙是否放行对应端口

-1004 / Connection refused

  • 含义:连接被拒绝
  • 常见原因
    • 服务端程序未运行(如 V2Ray/Xray 进程崩溃)
    • 端口配置错误(客户端与服务器端口不一致)
    • 服务器防火墙拦截
  • 解决方案
    • SSH 登录服务器检查服务状态:systemctl status v2rayxray
    • 核对配置文件中的端口设置
    • 检查 iptables/ufw 防火墙规则

-1005 / Network is unreachable

  • 含义:网络不可达
  • 常见原因
    • 本地网络断开
    • DNS 解析失败导致无法找到服务器 IP
  • 解决方案
    • 检查本地网络连接
    • 在配置中更换 DNS(如改为 8.8.8.8 或 1.1.1.1)

TLS/SSL 证书错误

-9806 / SSL Handshake Failed / TLS alert

  • 含义:TLS 握手失败
  • 常见原因
    • 系统时间不同步(最常见):设备时间与服务器时间相差超过 2 分钟会导致证书验证失败
    • 证书过期或自签名证书不受信任
    • SNI(Server Name Indication)设置错误
    • TLS 版本不匹配
  • 解决方案
    • 校准系统时间:设置 → 通用 → 日期与时间 → 开启自动设置
    • 检查证书有效期:echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
    • 确认 SNI 与证书域名一致(留空通常自动使用服务器地址)
    • 尝试开启"允许不安全"(仅测试用,生产环境不推荐)

协议与认证错误

Authentication failed / Invalid user

  • 含义:身份验证失败
  • 常见原因
    • UUID/密码输入错误(多复制了空格或换行符)
    • 服务端用户配置未包含当前用户
    • VMess/VLESS 协议 ID 不匹配
  • 解决方案
    • 重新复制 UUID,确保无多余字符
    • 检查服务端配置文件中的 clients 部分
    • 确认加密方式(Security)设置正确(如 VMess 的 auto/aes-128-gcm)

Protocol error / Malformed header / EOF

  • 含义:协议错误或数据格式异常
  • 常见原因
    • 协议类型不匹配(如服务端是 VLESS,客户端选成了 VMess)
    • 传输层设置错误(TCP/WebSocket/gRPC 不匹配)
    • WebSocket 路径错误或缺少
    • 开启了 Mux 但服务端不支持
  • 解决方案
    • 核对协议类型(VMess/VLESS/Trojan/Shadowsocks)
    • 检查传输层设置:路径(Path)、Host、是否开启 TLS/XTLS
    • 关闭 Mux 多路复用测试
    • 检查 WebSocket 路径是否以 开头

DNS 与解析错误

DNS lookup failed / NXDOMAIN

  • 含义:域名解析失败
  • 常见原因
    • 域名拼写错误
    • 域名未解析到服务器 IP(DNS 未生效)
    • 本地 DNS 被污染
  • 解决方案
    • 检查域名拼写
    • 使用 pingnslookup 测试域名解析
    • 在 Shadowrocket 中更换 DNS 服务器(如 https://dns.google/dns-query

其他常见错误

Too many open files

  • 含义:文件描述符耗尽
  • 解决:重启应用或设备,减少并发连接数

No route to host

  • 含义:路由不可达
  • 解决:服务器 IP 可能被墙,更换 IP 或端口

Stream closed / Broken pipe

  • 含义:连接被意外中断
  • 解决:通常是网络波动或服务器主动断开,尝试更换节点

通用排查流程

遇到错误时建议按以下顺序排查:

  1. 检查基础配置:地址、端口、UUID/密码、协议类型、传输层设置
  2. 测试服务器连通性:使用其他设备或 Ping 工具测试服务器 IP 是否可达
  3. 检查系统时间:确保设备时间准确(TLS 错误 90% 是时间问题)
  4. 查看日志:Shadowrocket → 设置 → 延迟测试方法 → 改为 TCP,查看具体握手阶段错误
  5. 简化配置:关闭 Mux、关闭 UDP 转发、关闭 IPv6,逐步排除干扰项
  6. 对比测试:用其他客户端(如 V2RayN、Surge)测试同一配置,判断是配置问题还是客户端问题

提示:Shadowrocket 的日志可在 设置 → 诊断 → 日志 中查看,遇到复杂错误时建议开启详细日志记录具体握手失败阶段。

您可以还会对下面的文章感兴趣: