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

Sing-box 故障排除:常见报错一站式解决手册

使用 Sing-box 遇到问题?先别急,90% 的问题都能在本页找到答案。

专题导航

首页下载安装快速上手进阶配置故障排除


快速定位

问题类型跳转
客户端无法启动 / TUN 失败第一节
节点连不上 / 超时第二节
TLS / 证书类报错第三节
能连上但上不了网第四节
DNS 泄漏 / 域名解析失败第五节
速度慢 / 频繁断连第六节
订阅更新失败第七节
配置文件报错第八节
移动端专属问题第九节

更多跨平台通用排错方法,可参考 2026年代理错误代码大全


一、启动与 TUN 类错误

1. Initialize TUN device failed

原因:虚拟网卡创建失败,通常是权限不足或被占用。

解决方案

  1. Windows:右键 sing-box → 「以管理员身份运行」
  2. macOS:在「系统设置」→「隐私与安全性」中允许 sing-box 的网络扩展
  3. Linuxsudo setcap cap_net_admin,cap_net_bind_service=ep $(which sing-box)
  4. 重启:如果以上无效,重启设备后再试
  5. 关闭其他 VPN:其他 VPN 客户端(Clash、WireGuard 等)可能占用了 TUN 接口,请先退出

2. TUN interface already exists

原因:上次异常退出,虚拟网卡未释放。

解决方案

bash
# Linux/macOS
sudo ip link delete sing-box-tun

# Windows:在设备管理器中卸载多余的网络适配器

3. Permission denied(Linux)

bash
# 赋予网络权限
sudo setcap cap_net_admin,cap_net_bind_service,cap_net_raw=ep /usr/local/bin/sing-box

4. 客户端闪退 / 一打开就退出

原因:配置文件语法错误导致启动崩溃。

解决方案

  1. 使用 JSON 验证工具 检查配置文件语法
  2. 查看日志文件(通常在 ~/.sing-box/ 或程序同目录下)
  3. 临时使用最简配置启动,逐步添加规则排查

二、节点连接类错误

1. connection refused

原因:目标服务器拒绝连接,可能是端口错误或服务器未运行。

排查步骤

  1. 检查节点 serverserver_port 是否正确
  2. 确认机场账号是否过期
  3. 尝试更新订阅获取最新节点
  4. 换一个节点测试(排除单节点故障)

2. connection timeout / i/o timeout

原因:无法在规定时间内建立连接。

解决方案

  1. 检查本地网络:先关闭代理,确认能正常上网
  2. 换节点:该节点可能已被封或线路故障
  3. 换协议:如果 SS 节点超时,试试 Hysteria2 或 Reality 节点
  4. 检查防火墙:Windows 防火墙或安全软件可能拦截 sing-box
  5. 更新订阅:旧节点可能已失效

节点被封?

如果大面积节点超时,可能是你的 IP 被运营商 QoS 限速或端口被封。尝试:

  • 开启端口跳跃
  • 切换到 Reality 协议(伪装能力最强)
  • 重启路由器更换 IP

3. cipher not supported

原因:Shadowsocks 加密方式不被支持。

解决方案

  • 检查 SS 节点的 method 是否正确
  • 推荐使用 aes-256-gcmchacha20-ietf-poly13052022-blake3-aes-256-gcm 等现代加密

4. all nodes failed / 全部节点红色

原因:所有节点都无法连接。

排查流程

1. 关闭代理,能正常上网? → 是 → 继续
                          → 否 → 修复本地网络
2. 换设备试同一订阅? → 能连 → 原设备配置问题
                     → 不能 → 机场服务端问题
3. 联系机场客服确认节点状态

三、TLS 证书类错误

1. TLS handshake failed / remote error: tls: handshake failure

原因:TLS 握手失败,可能是服务器名不匹配、协议不支持或被中间人干扰。

解决方案

  1. 检查 server_name (SNI) 是否与证书域名匹配
  2. 确认服务器支持你使用的 TLS 版本(1.2+)
  3. 如果使用 Reality,检查 public_keyshort_id 是否正确
  4. 尝试添加 "utls": {"enabled": true, "fingerprint": "chrome"} 模拟浏览器指纹

2. certificate has expired or is not yet valid

原因:服务器 TLS 证书过期。

解决方案

  • 这通常是服务端问题,联系机场管理员更新证书
  • 临时方案:在 TLS 配置中添加 "insecure": true(⚠️ 不安全,仅临时调试用)

3. Reality alert / REALITY: verification failed

原因:Reality 协议验证失败。

排查步骤

  1. 检查 public_key 是否正确(不是私钥!)
  2. 检查 short_id 是否匹配
  3. 检查 server_name 是否为服务器配置的伪装域名
  4. 确认服务端 Reality 版本与客户端一致

4. first record does not look like a TLS handshake

原因:连接的端口实际不是 TLS 服务,可能是端口填错或节点配置有误。

解决方案:核实节点端口和协议类型是否匹配。


四、代理已开但无法上网

场景 A:完全打不开任何网页

排查步骤

  1. 确认 Dashboard 开关是绿色/蓝色(已连接)
  2. 检查是否有选中节点(不是空的)
  3. 查看日志是否有 route: no matching route 错误
  4. 临时切换到 Global 模式测试——如果能上网,说明路由规则有问题
  5. 检查 route.final 是否设置为 proxy 而非 direct

场景 B:国外网站打不开,国内正常

原因:代理没有真正生效,国内流量走直连没问题,但国外流量也被直连了。

解决方案

  1. 确认 TUN 模式已开启(Settings → TUN → On)
  2. 检查路由规则中 final 是否为 proxy
  3. 检查是否有规则将所有流量匹配到 direct

场景 C:国内网站打不开,国外正常

原因:国内流量也走了代理,被国外 CDN 判定为异常。

解决方案

  1. 确认路由规则中有 geosite: cn → direct 规则
  2. 确认有 geoip: cn → direct 规则
  3. 确认 Rule Set 已正确下载(查看日志)

场景 D:部分网站打不开

原因:特定域名被路由规则错误匹配。

解决方案

  1. 开启 Debug 日志,查看被拦截的域名匹配了哪条规则
  2. 针对性添加放行规则
  3. 检查 DNS 规则是否将域名解析到了错误的服务器

五、DNS 类错误

1. dns: domain doesn't exist / 域名无法解析

原因:DNS 服务器配置错误或不可达。

解决方案

  1. 确认 dns.servers 配置正确
  2. 远程 DNS 需要 detour: proxy,否则在国内可能无法访问 1.1.1.1
  3. 确认 address_resolver 指向了可直连的 DNS 服务器

2. DNS 泄漏(通过 whoer.net 检测到国内 DNS)

原因:DNS 查询没有走代理,直接通过运营商 DNS 解析。

解决方案

json
{
  "dns": {
    "servers": [
      {
        "tag": "remote-dns",
        "address": "https://1.1.1.1/dns-query",
        "detour": "proxy"  // 关键!确保 DNS 走代理
      }
    ]
  }
}

3. Fake-ip 导致 App 异常

原因:部分 App 不兼容 Fake-ip 模式(如局域网设备发现、推送服务)。

解决方案

在 DNS 规则中排除这些域名:

json
{
  "dns": {
    "rules": [
      {
        "domain_suffix": [".local", ".lan", ".msftconnecttest.com", ".push.apple.com"],
        "server": "local-dns",
        "disable_cache": true
      }
    ]
  }
}

或直接关闭 Fake-ip 模式,改用普通 DNS。

4. IPv6 泄漏

原因:系统通过 IPv6 直接连接,绕过了代理。

解决方案

json
{
  "dns": {
    "strategy": "ipv4_only"  // 强制仅 IPv4
  }
}

同时在系统设置中关闭 IPv6,或在 TUN 配置中不设置 inet6_address


六、速度与稳定性问题

1. 速度很慢

排查步骤

  1. 测速对比:关闭代理测速 vs 开启代理测速,差距过大说明节点问题
  2. 换协议:Hysteria2 > Reality > Trojan > Shadowsocks(抗 QoS 能力递减)
  3. 换节点:选择延迟更低、负载更小的节点
  4. 开启多路复用
json
{
  "multiplex": {
    "enabled": true,
    "protocol": "h2mux",
    "max_streams": 8
  }
}
  1. 调整拥塞控制(Hysteria2):
json
{
  "obfs": {
    "type": "salamander",
    "password": "your-password"
  }
}

2. 频繁断连

可能原因与解决方案

原因解决方案
运营商 QoS 限速开启端口跳跃,使用 Hysteria2/Reality 协议
节点负载过高切换其他节点或联系机场升级
心跳超时增加 tcp_fast_open: truetcp_multi_path: true
移动网络切换在 URLTest 中增加 tolerance
系统休眠关闭系统省电模式,或将 sing-box 加入白名单

3. 视频卡顿 / 缓冲慢

  1. 使用流媒体专线节点(部分机场提供专门的流媒体线路)
  2. 检查节点是否支持 IPLC/IEPL 专线
  3. 参考 流媒体解锁指南

七、订阅更新类错误

1. update failed / 订阅更新失败

排查步骤

  1. 检查订阅 URL 是否正确
  2. 确认网络能正常访问订阅地址(关闭代理后测试)
  3. 检查订阅是否已过期(登录机场后台确认)
  4. 尝试在浏览器中直接打开订阅链接,看是否返回有效内容

2. 节点消失 / 节点变少

原因:机场调整了节点,或订阅 URL 返回了更新。

解决方案

  1. 手动更新订阅
  2. 登录机场后台确认节点是否正常
  3. 如果是免费试用机场,可能试用已过期

3. subscription expired

原因:机场套餐到期。

解决方案:续费或更换机场。查看 2026年7月机场推荐


八、配置文件解析错误

1. json: invalid character

原因:JSON 语法错误(多余的逗号、缺少括号等)。

解决方案

  1. 使用 JSON 验证工具 检查语法
  2. 注意 JSON 不允许尾随逗号(最后一个元素后不能有逗号)
  3. 所有字符串必须用双引号(不能用单引号)
  4. 检查括号是否匹配

2. unknown field "xxx"

原因:配置中使用了不存在的字段名。

解决方案

  1. 检查字段名拼写
  2. 确认你的 sing-box 版本是否支持该字段(新版字段在旧版中不可用)
  3. 查看 官方配置文档 确认字段名

3. missing required field

原因:缺少必填字段。

常见缺失字段

  • outbounds 中缺少 directblock 出站
  • route 中缺少 final 字段
  • TUN inbound 中缺少 inet4_address

九、移动端专属问题

iOS 问题

问题解决方案
VPN 配置无法保存设置 → 通用 → VPN与设备管理 → 信任开发者
后台自动断开设置 → 通用 → 后台 App 刷新 → 开启 sing-box
iOS 更新后失效删除 VPN 配置,重新在 App 中添加
耗电快关闭 sniff,使用 system stack 而非 gvisor

详细 iOS 省电方案参考 iOS/Android 省电配置与后台保活

Android 问题

问题解决方案
被系统杀后台设置 → 应用 → sing-box → 电池 → 无限制
MIUI 自启动设置 → 应用 → sing-box → 自启动 → 允许
分应用代理不生效确认已开启 TUN 模式,package_name 配置正确
Android TV 不支持使用 Android 版 APK 侧载安装

通用排查流程

遇到任何问题,按以下流程排查:

Step 1: 查看日志
  → 开启 debug 级别日志
  → 定位具体错误信息

Step 2: 最小化测试
  → 使用最简配置(单个节点 + 直连规则)
  → 逐步添加复杂规则

Step 3: 排除环境因素
  → 关闭其他 VPN / 代理软件
  → 关闭防火墙 / 安全软件测试
  → 换网络环境测试(WiFi ↔ 流量)

Step 4: 版本检查
  → 确认 sing-box 版本为最新
  → 确认配置语法与版本匹配

Step 5: 寻求帮助
  → [GitHub Issues](https://github.com/SagerNet/sing-box/issues)
  → 机场客服(如果是节点问题)
  → [代理错误代码大全](/guide/proxy-error-codes-2026)

日志查看方法

平台日志位置
Windows GUIDashboard → Log 标签
macOS GUIDashboard → Log 标签
iOSApp → Settings → Log Level → Debug
AndroidApp → 设置 → 日志级别 → Debug
Linux CLIjournalctl -u sing-box -f
Clash APIcurl http://127.0.0.1:9090/logs?level=debug

还是搞不定?

如果以上方案都无法解决你的问题,可以:

  1. 查看 代理错误代码大全 寻找跨平台通用解决方案
  2. 尝试切换到更简单的客户端:HiddifyKaring
  3. 检查你的机场是否正常:机场推荐

国家利益和民族团结高于一切

使用网络时请遵守国家法律法规,科学上网,不谈政治,不谈宗教,不碰黄赌毒。