导读:
Shadowrocket(小火箭)常见错误代码及解决方案
-1001 / Timeout / i/o timeout
- 含义:连接超时,无法与服务器建立连接
- 常见原因:
- 节点被墙或服务器宕机
- 端口被封锁(常见于 443/80 以外的端口)
- 本地网络到服务器路由质量差
- 解决方案:
- 更换其他节点测试
- 尝试切换 4G/5G 与 Wi-Fi
- 检查服务器防火墙是否放行对应端口
-1004 / Connection refused
- 含义:连接被拒绝
- 常见原因:
- 服务端程序未运行(如 V2Ray/Xray 进程崩溃)
- 端口配置错误(客户端与服务器端口不一致)
- 服务器防火墙拦截
- 解决方案:
- SSH 登录服务器检查服务状态:
systemctl status v2ray或xray - 核对配置文件中的端口设置
- 检查
iptables/ufw防火墙规则
- SSH 登录服务器检查服务状态:
-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 被污染
- 解决方案:
- 检查域名拼写
- 使用
ping或nslookup测试域名解析 - 在 Shadowrocket 中更换 DNS 服务器(如
https://dns.google/dns-query)
其他常见错误
Too many open files
- 含义:文件描述符耗尽
- 解决:重启应用或设备,减少并发连接数
No route to host
- 含义:路由不可达
- 解决:服务器 IP 可能被墙,更换 IP 或端口
Stream closed / Broken pipe
- 含义:连接被意外中断
- 解决:通常是网络波动或服务器主动断开,尝试更换节点
通用排查流程
遇到错误时建议按以下顺序排查:
- 检查基础配置:地址、端口、UUID/密码、协议类型、传输层设置
- 测试服务器连通性:使用其他设备或 Ping 工具测试服务器 IP 是否可达
- 检查系统时间:确保设备时间准确(TLS 错误 90% 是时间问题)
- 查看日志:Shadowrocket → 设置 → 延迟测试方法 → 改为 TCP,查看具体握手阶段错误
- 简化配置:关闭 Mux、关闭 UDP 转发、关闭 IPv6,逐步排除干扰项
- 对比测试:用其他客户端(如 V2RayN、Surge)测试同一配置,判断是配置问题还是客户端问题
提示:Shadowrocket 的日志可在 设置 → 诊断 → 日志 中查看,遇到复杂错误时建议开启详细日志记录具体握手失败阶段。