Skip to content
银河录像局gpt
山水云 机场

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-gcmchacha20-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设置 → 日志

日志怎么看

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


🆘 还是解决不了?

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

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

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

相关阅读: