Skip to content
银河录像局

2026 年代理错误代码大全:科学上网常见报错一站式排查手册 ​

发布时间:2026年7月11日

用代理工具遇到报错是家常便饭——节点变红、连不上网、TLS 握手失败、端口被占用……问题五花八门,但大部分错误都有规律可循。

这篇文章把 2026 年主流代理客户端(Clash Verge Rev / v2rayN / Shadowrocket / V2RayNG / Hiddify)和协议层最常见的报错按类型整理,每个错误都给出原因分析 + 解决方案。

建议收藏本页,遇到报错时按图索骥。

使用方法

按 Ctrl+F(Mac 用 Cmd+F)搜索你遇到的错误关键词,直接跳到对应章节。


🔍 快速定位表 ​

你遇到的问题跳转章节
客户端启动报错 / 服务启动失败一、客户端启动类错误
节点变红 / 连不上节点二、节点连接类错误
TLS / 证书相关报错三、TLS 证书类错误
开了代理但上不了网四、代理已开但无法上网
DNS 解析失败 / DNS 泄露五、DNS 类错误
速度慢 / 频繁断连六、速度与稳定性类错误
订阅更新失败七、订阅更新类错误
手机端特有问题八、移动端特有错误
协议层错误码九、协议层错误码速查

一、客户端启动类错误 ​

1.1 Start Service Failed(Clash Verge Rev) ​

出现位置: Clash Verge Rev 启动时右下角红色弹窗

原因分析: Clash/Mihomo 内核服务未能正常启动。常见原因:

  • 端口被其他程序占用(默认 7890/9090)
  • 管理员权限不足(TUN 模式需要管理员权限)
  • 内核文件损坏或版本不匹配
  • 杀毒软件拦截了内核进程

解决方案:

  1. 检查端口占用:打开终端执行 lsof -i :7890,找到占用进程并关闭
  2. 以管理员身份运行:右键 Clash Verge Rev → 以管理员身份运行
  3. 关闭杀毒软件临时测试:如果关闭后正常,将 Clash 加入白名单
  4. 重装内核:设置 → Clash 内核 → 切换到另一个内核(如从 Mihomo 切到 Clash Premium)
  5. 终极方案:卸载后重新安装最新版
详细排查步骤

如果你用的是 macOS,还需要检查是否在「系统设置 → 隐私与安全性」中允许了 Clash Verge Rev 运行。macOS 对未签名应用有严格限制,首次运行可能会被阻止。

更详细的 Clash Verge Rev 排错请看 Clash Verge Rev 排障急救室


1.2 Failed to start: exit code 1(v2rayN) ​

出现位置: v2rayN 主界面底部状态栏

原因分析: v2rayN 调用的 V2Ray/Xray 内核启动失败。常见原因:

  • 配置文件格式错误(手动编辑后语法不对)
  • inbound 端口与其他程序冲突
  • 内核版本过旧,不支持新协议

解决方案:

  1. 检查配置文件:日志 → 查看 v2ray.log,找到具体错误行
  2. 重置端口:设置 → 核心基础设置 → 把 SOCKS 端口改为 10808,HTTP 端口改为 10809
  3. 更新内核:设置 → 检查更新 → 更新 V2Ray 核心
  4. 删除自定义配置:如果手动改过配置文件,备份后删除让客户端重新生成

1.3 Permission denied / Operation not permitted(macOS/Linux) ​

出现位置: 终端启动代理内核时

原因分析: 文件权限不足,或 macOS 的 SIP(系统完整性保护)阻止了操作。

解决方案:

bash
# 赋予执行权限
chmod +x /path/to/v2ray

# 如果是 TUN 模式需要 root 权限
sudo ./v2ray run -c config.json

macOS 用户如果遇到 SIP 拦截,不建议关闭 SIP,改用 Clash Verge Rev 的图形化 TUN 模式更安全。


1.4 Port already in use(全客户端通用) ​

原因分析: 代理客户端设置的监听端口被其他程序占用。

解决方案:

bash
# macOS / Linux 查看端口占用
lsof -i :7890
# 或
netstat -tlnp | grep 7890

# Windows 查看端口占用
netstat -ano | findstr :7890

找到占用端口的进程后:

  • 如果是另一个代理客户端:先关闭旧客户端
  • 如果是其他程序:在客户端设置中更换端口(如 7891、7892)

常见端口冲突

  • 7890:Clash 默认混合端口
  • 1080:Shadowsocks / SOCKS 默认端口
  • 10808:v2rayN 默认 SOCKS 端口
  • 9090:Clash Dashboard 默认端口
  • 53:DNS 端口,常与系统 DNS 冲突

二、节点连接类错误 ​

2.1 节点显示红色 / connection refused ​

原因分析: 节点服务器拒绝连接。常见原因:

  • 节点服务器已关机或 IP 变更
  • 节点端口被防火墙封锁
  • 机场已停用该节点
  • 你的 IP 被节点服务器封禁

解决方案:

  1. 切换其他节点测试:如果其他节点正常,说明是该节点的问题,联系机场客服
  2. 尝试不同协议的节点:如果 SS 节点不通,试试 VMess/Trojan 节点
  3. 更新订阅:可能节点信息已变更,更新订阅获取最新节点列表
  4. 联系机场客服:确认该节点是否在维护

2.2 connection timeout / dial timeout ​

原因分析: 连接节点超时(通常 5-10 秒内无响应)。常见原因:

  • 网络到节点服务器之间被 GFW 阻断
  • 节点服务器负载过高响应慢
  • 本地网络不稳定(如弱 WiFi 信号)
  • 节点 IP 被 ISP 封锁

解决方案:

  1. 换节点:优先尝试不同地区的节点(如从日本切到香港)
  2. 换协议:如果用 SS,试试 Trojan 或 VLESS+Reality(抗封锁更强)
  3. 检查本地网络:ping 一下国内网站确认本地网络正常
  4. 尝试 IPLC/IEPL 专线节点:如果中转节点全部超时,专线节点可能还通

IP 被封锁的判断方法

在终端执行 ping 节点IP,如果 100% 丢包且显示 Request timeout,而其他网站正常,说明该节点 IP 可能被 GFW 封锁了。此时只能等机场更换 IP,或切换其他节点。


2.3 proxy dial failed / shadowsocks cipher not supported ​

原因分析: 协议或加密方式不匹配。常见于:

  • 客户端版本过旧,不支持新加密方式
  • 订阅链接中的加密方式与服务端不一致
  • 使用了已弃用的加密方式(如 aes-256-cfb)

解决方案:

  1. 更新客户端到最新版
  2. 检查加密方式:推荐使用 aes-256-gcm 或 chacha20-ietf-poly1305
  3. 切换协议:如果 SS 持续报错,建议换用 Trojan 或 VLESS

2.4 all nodes failed / no available proxy ​

原因分析: 所有节点都连不上。这通常不是单个节点的问题,而是:

  • 订阅过期或被重置
  • 本地网络完全中断
  • ISP 大规模封锁代理协议
  • 客户端配置错误(如 DNS 配置导致无法解析节点域名)

解决方案:

  1. 先确认本地网络正常:关闭代理,打开百度,确认能上网
  2. 更新订阅:手动更新订阅链接,看是否获取到新节点
  3. 检查 DNS:如果节点用域名连接,尝试手动 ping 域名看能否解析
  4. 换客户端测试:用另一个客户端导入相同订阅,排除客户端问题
  5. 备用机场:如果所有节点都失败,切换到备用机场

防患于未然

这就是为什么我们一直建议 一主一备机场。主力全挂时备用机场可以救急。


三、TLS 证书类错误 ​

3.1 TLS handshake failed / certificate verification failed ​

原因分析: TLS 握手失败,证书验证不通过。常见原因:

  • 节点服务端证书过期
  • 客户端时间不正确(证书验证依赖系统时间)
  • 使用了自签名证书但客户端开启了严格验证
  • MITM 中间人攻击(极少数情况)

解决方案:

  1. 检查系统时间:确保系统时间和日期准确(设置 → 时间和日期 → 自动设置)
  2. 更新订阅:获取最新节点信息,可能机场已更换证书
  3. 检查 allowInsecure 设置:
    • 如果是自建节点:在客户端配置中设置 allowInsecure: true(仅测试用)
    • 如果是机场节点:联系客服确认证书状态
  4. 换节点:如果只有部分节点报此错,切换到其他节点

关于 allowInsecure

开启 allowInsecure: true 会跳过证书验证,降低安全性,仅在自建节点调试时临时使用。机场节点不建议开启。


3.2 x509: certificate has expired or is not yet valid ​

原因分析: 节点服务端的 TLS 证书已过期,或系统时间错误导致证书验证失败。

解决方案:

  1. 检查系统时间(最常见原因):系统时间差超过证书有效期就会报此错
  2. 联系机场客服:如果是机场节点,证书过期是服务端问题,需要机场更新
  3. 自建节点续签证书:如果用 Let's Encrypt,执行 certbot renew

3.3 remote error: tls: alert (1160) / tls: unknown certificate ​

原因分析: Reality 协议的特殊报错。Reality 协议通过伪装成正常 TLS 流量来抗封锁,如果配置不当会出现此错误。

解决方案:

  1. 检查 dest/publicKey/shortId 配置:这三项必须与服务端完全一致
  2. 确认 dest 域名可访问:客户端必须能正常访问 dest 指定的域名
  3. 更新客户端:旧版客户端可能不支持 Reality 协议,需要 v2rayN 6.x+ 或 Xray 1.8+

Reality 协议详解请看 VLESS Reality 协议科普


3.4 tls: first record does not look like a TLS handshake ​

原因分析: 客户端尝试用 TLS 协议连接,但服务端返回的不是 TLS 响应。通常是因为:

  • 协议类型选错了(如服务端是 SS 但客户端选了 Trojan)
  • 端口号填错了
  • 节点已经被封并降级为 HTTP 响应

解决方案:

  1. 核对协议类型:确保客户端的协议设置与服务端一致
  2. 核对端口号:确认端口号正确
  3. 换节点:如果配置正确但仍报错,节点可能已失效

四、代理已开但无法上网 ​

这是最让人抓狂的问题——代理明明开着,但网页打不开。

4.1 国内国外网站都打不开 ​

原因分析: 代理客户端接管了所有流量但节点不通,导致全部流量被丢弃。

解决方案:

  1. 立即关闭系统代理:先恢复网络
  2. 检查节点是否正常:在客户端内测速,确认有可用节点
  3. 检查 TUN 模式:如果开了 TUN 模式,确保有管理员权限
  4. 检查路由规则:确保规则没有把所有流量都 REJECT
yaml
# Clash 规则检查:确保没有 catch-all 的 REJECT
# 错误示例(会拒绝所有流量):
# - MATCH,REJECT

# 正确示例:
- MATCH,节点选择

4.2 国外能上但国内打不开 ​

原因分析: 国内流量也被代理转发了(没有正确分流),导致国内网站走了境外节点被拒绝。

解决方案:

  1. 检查分流规则:确保有 GEOIP,CN,DIRECT 规则
  2. 启用规则模式:不要用全局模式(Global),改用规则模式(Rule)
  3. 检查 DNS:确保国内域名走国内 DNS 解析
yaml
# Clash 标准分流规则
rules:
  - GEOIP,CN,DIRECT
  - MATCH,节点选择

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://223.5.5.5/dns-query  # 国内 DNS
  fallback:
    - https://8.8.8.8/dns-query     # 国外 DNS

详细配置参考 Clash Verge Rev 进阶设置


4.3 国内能上但国外打不开 ​

原因分析: 代理没有正确接管流量,或节点不通但分流规则把国外流量也 DIRECT 了。

解决方案:

  1. 检查系统代理是否开启:确保客户端的"系统代理"开关已打开
  2. 检查节点连通性:在客户端内做延迟测试
  3. 检查端口:确保浏览器使用的代理端口与客户端设置一致
  4. 关闭浏览器代理插件:如果装了 SwitchyOmega 等,确保设为"系统代理"或关闭

4.4 只有部分网站打不开 ​

原因分析:

  • DNS 污染导致域名解析到错误 IP
  • 该网站被节点服务器封禁(如某些 AI 网站封了代理 IP)
  • 分流规则错误把该网站走了 DIRECT

解决方案:

  1. 强制该网站走代理:在规则中添加 DOMAIN-SUFFIX,xxx.com,节点选择
  2. 换节点:某些网站封了特定代理 IP,换个节点可能就好了
  3. 清 DNS 缓存:
    bash
    # macOS
    sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
    # Windows
    ipconfig /flushdns

五、DNS 类错误 ​

5.1 dns resolve failed / domain not found ​

原因分析: DNS 解析失败,无法将域名转换为 IP。常见原因:

  • DNS 服务器不可用
  • DNS 被污染,返回了错误结果
  • fake-ip 模式配置有误
  • 节点域名本身已失效

解决方案:

  1. 检查 DNS 配置:确保 DNS 服务器地址正确
  2. 切换 DNS:尝试使用 223.5.5.5(阿里 DNS)或 1.1.1.1(Cloudflare DNS)
  3. 开启 fake-ip 模式:在 Clash 中设置 enhanced-mode: fake-ip
  4. 手动指定节点 IP:如果节点域名解析失败,在客户端中直接填 IP

详细 DNS 配置方案请看 DNS 泄露防护指南


5.2 DNS 泄露 ​

现象: 代理已开,但 DNS 请求泄露到了 ISP,可能导致被识别。

原因分析:

  • 系统 DNS 没有走代理通道
  • 浏览器使用了 DoH(DNS over HTTPS)绕过了代理 DNS
  • TUN 模式未开启,部分流量绕过了代理

解决方案:

  1. 开启 TUN 模式:接管所有流量包括 DNS
  2. 关闭浏览器 DoH:Chrome → 设置 → 隐私和安全 → 安全 → 关闭"使用安全 DNS"
  3. 使用 fake-ip 模式:所有域名在 Clash 内部解析
  4. 验证泄露:访问 dnsleaktest.com 检查

5.3 fake-ip filter 导致某些 App 异常 ​

现象: 开启 fake-ip 后,部分国内 App(如微信、支付宝、银行 App)无法正常使用。

原因分析: fake-ip 模式会给所有域名分配虚拟 IP,部分 App 的安全检测会拒绝虚拟 IP 的连接。

解决方案: 在 fake-ip-filter 中添加这些域名:

yaml
dns:
  enhanced-mode: fake-ip
  fake-ip-filter:
    - "*.wechat.com"
    - "*.weixin.qq.com"
    - "*.alipay.com"
    - "*.alipayobjects.com"
    - "*.tenpay.com"
    - "*.cmbchina.com"
    - "*.icbc.com.cn"
    - "*.bankcomm.com"

六、速度与稳定性类错误 ​

6.1 速度极慢(< 1Mbps) ​

原因分析:

  • 节点负载过高(晚高峰尤其严重)
  • 中转节点被限速
  • 本地网络问题
  • 客户端配置不当(如选了错误的拥塞控制算法)

解决方案:

  1. 换节点:测速选延迟最低、速度最快的节点
  2. 换时段:避开 20:00-23:00 晚高峰
  3. 换机场:如果长期慢,考虑换 IPLC 专线机场
  4. Hysteria2 协议:如果自建,Hy2 的 Brutal 模式可以突破限速
  5. 检查本地网络:确保不是 WiFi 信号问题

参考我们的 7月机场测速报告 选速度快的机场


6.2 频繁断连 / 每隔几分钟断一次 ​

原因分析:

  • 节点不稳定或服务器重启
  • ISP 对长连接做 QoS 限速
  • Keep-alive 配置不当
  • 运营商对 UDP 流量限速(Hysteria2/TUIC 协议)

解决方案:

  1. 开启 TCP Keep-alive:在配置中添加
    yaml
    sockopt:
      tcpKeepAliveInterval: 15
      tcpKeepAliveIdle: 15
  2. 换 TCP 协议节点:如果是 UDP 协议(Hy2/TUIC)断连,试试 TCP 协议(Trojan/VMess)
  3. 换节点:某节点频繁断连说明该节点不稳定
  4. 检查路由器:某些路由器会主动断开长连接,检查路由器超时设置

6.3 视频卡顿 / 1080p 缓冲慢 ​

原因分析:

  • 节点带宽不足
  • 流媒体 CDN 路由不优
  • 代理协议开销大

解决方案:

  1. 选流媒体优化节点:部分机场有专门的"流媒体"标签节点
  2. 换协议:Trojan 和 Hysteria2 的视频流体验通常好于 SS
  3. 降低画质:临时降到 720p 先看
  4. 开 CDN 加速:部分流媒体平台支持自选 CDN 节点

流媒体解锁教程参考 夏季流媒体解锁指南


七、订阅更新类错误 ​

7.1 subscription update failed / 获取订阅返回 404 ​

原因分析:

  • 订阅链接已过期或被重置
  • 订阅地址变更
  • 网络问题导致请求失败

解决方案:

  1. 登录机场官网:检查订阅链接是否更新
  2. 重新复制订阅链接:确保没有多复制或少复制字符
  3. 手动导入:如果客户端更新失败,在浏览器中打开订阅链接看是否有内容返回
  4. 换 User-Agent:部分机场对 User-Agent 敏感,在客户端中设置正确的 UA(如 clash-verge/v2.0)

7.2 订阅更新后节点全部消失 ​

原因分析:

  • 机场重置了订阅(换了新地址)
  • 订阅返回了空内容
  • 客户端解析订阅失败(格式不兼容)

解决方案:

  1. 不要清空旧节点:先保留旧节点作为备份
  2. 浏览器打开订阅链接:查看返回内容是否正常
  3. 检查订阅格式:确保客户端支持该订阅格式(Clash 订阅 / V2Ray 订阅 / Base64 订阅)
  4. 联系机场客服:确认订阅是否正常

7.3 subscription expired / 订阅过期 ​

原因分析: 机场套餐到期。

解决方案:

  1. 续费:登录机场官网续费
  2. 临时方案:如果有自建节点,手动导入使用
  3. 换机场:参考我们的 机场选购指南 选择新机场

八、移动端特有错误 ​

8.1 iOS Shadowrocket:VPN Session Timeout ​

原因分析: iOS 系统对 VPN 会话有时间限制,长时间后台运行会被系统断开。

解决方案:

  1. 重新连接:打开 App 点击开关重新连接
  2. 关闭"按需连接":设置 → 关闭"Only When Needed"
  3. 开启后台保活:参考 手机省电与保活指南

8.2 Android V2RayNG:App keeps stopping ​

原因分析:

  • v2rayNG 版本过旧
  • 配置文件格式错误导致内核崩溃
  • Android 系统内存不足杀掉了后台进程

解决方案:

  1. 更新 v2rayNG:从 GitHub 下载最新版
  2. 清除配置重新导入:设置 → 清除配置 → 重新导入订阅
  3. 关闭电池优化:系统设置 → 电池 → v2rayNG → 不优化
  4. 锁定后台:最近任务页面向下拉动锁定 v2rayNG

详细教程参考 V2RayNG 完整使用指南


8.3 iOS:Shadowrocket cannot be verified ​

原因分析: Shadowrocket 是非中国区 App Store 应用,如果 Apple ID 区域不对或证书过期会无法验证。

解决方案:

  1. 确保使用美区/港区 Apple ID 下载
  2. 更新到最新版:App Store → 更新 Shadowrocket
  3. 重新登录 Apple ID:设置 → App Store → 退出重新登录

美区 Apple ID 注册教程请看 美区 Apple ID 指南


8.4 手机发热严重 ​

原因分析:

  • 代理加密解密消耗 CPU
  • 后台保活持续唤醒
  • 节点质量差导致频繁重连

解决方案:

  1. 选高效协议:Shadowsocks 的 CPU 开销小于 Trojan
  2. 关闭不必要的后台保活
  3. 减少规则数量:过多的分流规则会增加 CPU 负担
  4. 用 fake-ip 替代 redir-host:减少 DNS 查询开销

九、协议层错误码速查 ​

9.1 Shadowsocks 错误 ​

错误信息含义解决方案
cipher not supported加密方式不支持更新客户端 / 换加密方式
aead decrypt failedAEAD 解密失败密码或加密方式不对
connecting to unreachable server服务器不可达换节点
malformed response响应格式错误协议版本不匹配

9.2 VMess/VLESS 错误 ​

错误信息含义解决方案
invalid user用户 ID 错误检查 UUID 是否正确
invalid request请求格式错误alterId 不匹配
unexpected EOF连接被中途切断节点不稳定,换节点
vmess: invalid versionVMess 版本不匹配更新客户端

9.3 Trojan 错误 ​

错误信息含义解决方案
trojan: handshake failedTLS 握手失败检查证书 / SNI 配置
trojan: auth failed密码错误检查 password 是否正确
trojan: unexpected response服务端返回异常节点可能已被封

9.4 Hysteria2 错误 ​

错误信息含义解决方案
auth failed认证失败检查 password / auth
bandwidth too low带宽协商失败检查 up/down 带宽设置
masquerade failed伪装失败检查 masquerade 配置
UDP blockedUDP 被封锁换 TCP 协议节点

Hysteria2 详细排错请看 Hysteria2 自建与高级配置指南

9.5 HTTP 状态码 ​

状态码含义解决方案
407 Proxy Authentication Required代理需要认证检查代理用户名密码
502 Bad Gateway节点服务器故障换节点
503 Service Unavailable服务不可用节点过载,换节点
521 Web Server Is DownCloudflare 防护节点 IP 被目标网站封

🔧 通用排查流程 ​

如果上面的分类没有覆盖你的问题,按这个流程排查:

第1步:关闭代理,确认本地网络正常
  ├─ 能上网 → 进入第2步
  └─ 不能上网 → 修复本地网络

第2步:开启代理,检查节点连通性
  ├─ 节点测试有延迟 → 进入第3步
  └─ 节点全部超时 → 更新订阅 / 换机场

第3步:检查系统代理是否正确开启
  ├─ 已开启 → 进入第4步
  └─ 未开启 → 手动开启系统代理 / TUN 模式

第4步:检查 DNS 配置
  ├─ 解析正常 → 进入第5步
  └─ 解析失败 → 开启 fake-ip / 换 DNS

第5步:检查分流规则
  ├─ 规则正确 → 进入第6步
  └─ 规则有误 → 添加 GEOIP,CN,DIRECT

第6步:查看客户端日志
  ├─ 有明确错误 → 回到上方对应章节
  └─ 无明确错误 → 换客户端测试 / 换节点

📌 各客户端日志查看方法 ​

排查问题时,日志是最重要的信息源:

客户端日志位置
Clash Verge Rev日志页面(左侧导航栏 → 日志)
v2rayN主界面底部状态栏 → 右键 → 查看日志
Shadowrocket设置 → 日志
V2RayNG主界面 → 日志(右上角图标)
Hiddify设置 → 日志

日志怎么看

重点关注 ERROR、FATAL、failed 关键词所在的行。日志通常包含时间戳 + 错误级别 + 错误详情,找到最新的错误行就能定位问题。


🆘 还是解决不了? ​

如果以上方法都不能解决你的问题:

  1. 查看客户端的 FAQ / 官方文档:各客户端的 GitHub Wiki 通常有详细排错指南
  2. 查看各专题的故障排除文章:
  3. 联系机场客服:如果是机场节点问题,客服能直接查看服务端状态
  4. 换客户端 / 换机场:排除法是最快的定位手段

本文持续更新,如遇到未收录的报错,欢迎反馈。

相关阅读: