白嫖机场-白嫖机场加速器官网

sing-box 节点连接失败怎么排查?

更新于 2026-10-30 · xn--mesv7f5toqlp.shop

简答:sing-box 节点连接失败,先不要立即修改 DNS、MTU 或规则:先看日志,再运行 sing-box check 检查配置,随后关闭 TUN、只保留一个节点做基础连接测试。日志中的 timeout、handshake、connection refused、authentication 和 DNS 关键词,通常能帮助你把问题分到本地配置、节点参数、网络链路或解析路径。本文适用于 sing-box 核心配置及 Windows、macOS、Linux 命令行环境;Android、iOS 图形客户端的具体日志入口以客户端界面为准。

定义:sing-box 节点连接失败,是指配置已加载或客户端已启动,但某个或多个出站无法完成连接、握手、认证,或连接成功后代理流量仍无法访问目标。

先按现象分流:不要把四类失败混在一起

先记录失败发生在哪一步:订阅或配置文件下载失败、配置无法启动、节点拨号失败,还是代理已经启动但网页打不开。四者的处理入口不同。

sing-box 连接失败速查表
现象优先查看先做什么责任范围
订阅下载失败或内容为空订阅地址、HTTP 响应、文件内容在浏览器或客户端重新获取,并确认下载内容确实是配置或订阅格式订阅地址、服务端或网络入口
启动时报 JSON、字段或标签错误配置文件结构和版本兼容备份原文件后运行 sing-box check -c config.json本地配置或内核版本
只有一个节点 timeout节点地址、端口、协议参数换同组另一个节点,仅保留一个出站测试单节点参数或远端入口
所有节点同时 timeout本地网络、系统时间、权限、出口连通性关闭 TUN,切换 Wi-Fi/移动网络或其他基础网络后复测本地网络、权限或服务端整体状态
显示已连接但网页打不开DNS、route、final、TUN 和系统代理先做命令行或浏览器基础代理测试,再逐项恢复高级设置流量入口、解析或分流规则

sing-box 官方配置文档将配置分为 log、dns、inbounds、outbounds 和 route 等部分,因此“配置能启动”并不等于“节点能够拨号”或“网页一定能访问”。可先查看官方配置结构与 check 说明。

最短排查流程:备份、检查、最小化、验证、恢复

  1. 备份配置。复制当前 JSON 文件,保留原文件名和客户端配置。不要直接覆盖唯一可用版本;分享日志或配置前,删除服务器地址、UUID、密码、订阅令牌和私钥。
  2. 确认内核版本与配置来源。如果配置来自转换器或旧模板,先确认它是否适用于当前 sing-box 内核。官方文档会在字段旁标注引入、弃用或移除版本,看到 deprecated 字段时不要仅凭字段名推断当前客户端界面仍支持。
  3. 检查配置结构。在 macOS/Linux 的 Bash 或兼容 Shell 中执行:sing-box check -c config.json;Windows PowerShell 可执行:.\sing-box.exe check -c .\config.json。如果程序不在当前目录,请改用实际路径。官方配置文档提供了 check 命令,命令行参数中的 -c 用于指定配置文件。
  4. 只留一个节点和一个出口。暂时停用复杂的 selector、urltest、rule-set、TUN 和多余入站,只用一个明确的出站测试。这样做是为了缩小变量,不代表所有客户端都能通过相同界面完成删减。
  5. 先测试普通代理。如果客户端支持 mixed 或 HTTP/SOCKS 入站,先让浏览器或测试程序使用该本地代理;确认基础代理可用后,再恢复 TUN。不要把端口处于监听状态、能 ping 通,或单次测速成功当成完整可用性证明。
  6. 逐项恢复。按“节点参数→DNS→route/final→系统代理→TUN”的顺序一次只改一项。每次改动后记录结果,失败就恢复上一份备份。

日志可以通过配置中的 log 部分提高可见性。官方文档支持 trace、debug、info、warn、error 等级别,也支持输出到文件;排查结束后可恢复到较低日志级别,避免长期写入大量日志。参考sing-box 官方 Log 配置。

日志关键词怎么判断:先看第一条真正的错误

常见日志关键词与下一步
关键词或现象优先含义处理动作
timeout连接在规定时间内没有完成,可能是地址、端口、网络、UDP 支持或远端入口问题确认地址和端口;切换基础网络;分别测试 TCP 与 UDP 依赖的节点;不要只反复刷新节点
connection refused目标主机主动拒绝或对应端口没有接受连接核对端口和协议;若多个节点都出现,先排查本地网络和订阅内容
handshake、TLS、certificate握手或证书参数没有完成匹配检查系统日期时间、server_name、证书相关参数和客户端版本;不要凭感觉更换字段
authentication、invalid认证信息或节点参数不匹配重新获取配置,核对 UUID、密码、用户信息和协议类型;不要公开完整凭据
DNS、resolve、no such host域名解析或 DNS 路径异常先用 IP 或可控的基础解析测试区分“无法解析”和“解析后无法连接”,再检查 DNS 规则
route、no matching rule、网页空白流量未进入预期出站,或 final 指向错误检查 route 规则顺序、出站标签和 final;先使用单一明确出站验证

这些关键词是排查线索,不是单独的责任结论。同一条日志还要结合节点数量、网络切换结果和是否关闭 TUN 后恢复来判断。

单节点、多个节点、全部节点失败,分别怎么处理

只有一个节点失败

优先核对该节点的地址、端口、协议和认证字段。若其他节点可以连接,本地 sing-box、基础网络和入站通常仍具备基本可用性,但不能据此证明失败节点远端一定故障。把该节点单独复制到最小配置中测试,结果更容易复现。

同一协议或同一分组的多个节点失败

检查它们是否共用相同的传输、TLS 或认证参数。对于依赖域名解析的节点,先区分“域名解析失败”和“解析成功但端口超时”;对于依赖 UDP 的节点,还要考虑当前网络是否限制 UDP。不要只用 ping 判断代理协议是否可用。

所有节点同时失败

先关闭 TUN 和自动测速,使用一个节点、一个入站、一个出口做基础测试;然后切换到另一条基础网络。如果仍全部失败,再查看系统时间、客户端权限、系统代理残留和配置是否刚刚更新。服务端账户、订阅是否过期或流量是否用尽,需要到对应服务的可核验页面确认,本文无法替代该状态核验。

已连接但打不开网页:DNS、route 和 TUN 分层检查

sing-box 官方文档说明,DNS 配置包含 servers、rules、final 和 strategy 等部分;route 配置包含 rules、rule-set、final 以及自动选择网卡等字段。因此,节点拨号成功后仍无法访问,可能发生在解析、分流、默认出站或 TUN 流量接管阶段,可参考官方 DNS 配置和官方 Route 配置。

  1. 先关 TUN。改用普通代理测试。如果普通代理能访问而 TUN 不能,优先检查 TUN 权限、自动路由、系统代理冲突和 DNS 劫持路径。
  2. 再查 DNS。确认 DNS server 标签存在,DNS 规则引用的 server 与实际标签一致,dns.final 没有指向不存在或不可达的服务器。不要同时修改多个 DNS 字段。
  3. 再查 route。确认规则顺序、出站标签和 route.final。官方文档指出,final 是默认出站标签;为空时会使用第一个出站,因此出站顺序变化可能影响结果。
  4. 最后恢复 TUN。官方 TUN 文档显示,auto_route 会设置默认路由;部分模式还涉及 DNS 处理、严格路由和系统网卡选择。若启用 TUN 后断网,先恢复普通代理,再只打开 TUN,不要同时改 MTU、DNS、路由和规则集。可对照官方 TUN 配置检查当前字段是否仍适用于你的版本。

协议专项核对:只检查配置中实际出现的字段

不要为了“碰碰运气”给所有节点添加字段。配置中是什么协议,就核对该协议实际使用的地址、端口、认证、TLS 或传输参数。

  • TLS/Reality 类握手:优先核对系统时间、server_name、证书或公钥相关字段、short_id 和指纹设置是否与原始配置一致;缺少服务端原始参数时,无法从客户端日志推断正确值。
  • 依赖 UDP 的传输:确认当前网络和本地防火墙没有阻断所需 UDP;“TCP 网页能打开”不能证明 UDP 节点可用。
  • VMess、Trojan、Shadowsocks 等:核对协议类型、密码或 UUID、传输方式和 TLS 开关是否成套匹配。不要把一个协议的字段复制到另一个协议。
  • WireGuard:单独检查私钥、公钥、AllowedIPs、端点地址和端口;如果配置来自订阅转换,先确认转换结果没有丢失密钥或路由范围。

如果修改后出现新的配置字段错误,先回滚到备份,再对照对应版本的官方配置文档逐字段核验,而不是继续叠加修改。

排查完成后的恢复清单

  • 删除临时测试节点、临时日志和暴露凭据的文件。
  • 恢复原有规则集、DNS 和 TUN 设置,每次只恢复一项。
  • 确认客户端退出后系统代理、虚拟网卡和路由没有残留;发现断网时优先关闭客户端或撤销最近一次改动。
  • 记录 sing-box 版本、系统、失败时间、首条错误日志和复现步骤,提交问题时脱敏后再提供。
  • 如果只有某个服务的节点失败,保留“本地最小配置可启动、其他节点结果、切换网络结果”等证据,再到对应服务页面核对订阅或账户状态。

本文是第三方使用指南,不代表任何节点、订阅或品牌的官方页面;涉及服务状态、订阅期限和账户权限时,以对应服务的可核验信息为准。

常见问题

sing-box check 检查通过,为什么节点还是连接失败?

check 主要用于检查配置结构和加载阶段,不能证明远端端口、认证、TLS 握手、DNS 或实际网页访问一定正常。检查通过后仍要用单节点、单出口做真实连接测试,并结合日志判断。

sing-box 所有节点都 timeout,应该先换节点吗?

不建议直接反复换节点。先关闭 TUN,保留一个节点,切换基础网络,并检查系统时间、客户端权限和配置是否刚更新。如果所有节点在不同网络下仍失败,再核对订阅或服务状态。

sing-box 显示已连接但网页打不开怎么办?

先关闭 TUN,使用普通代理验证;若普通代理可用,再按 DNS、route.final、出站标签和 TUN 自动路由顺序恢复。DNS 解析成功不等于目标网站连接成功,端口监听也不等于完整代理可用。

日志中的 handshake failed 通常要看哪些参数?

先看系统时间和节点协议,再核对 server_name、TLS、证书或公钥、short_id、指纹以及传输方式。缺少服务端原始参数时,不要自行猜测字段值,应重新获取配置或向提供方核验。

Windows、macOS、Android、iOS 的日志入口一样吗?

不一样。命令行 sing-box 通常可通过 log 配置输出到控制台或文件;图形客户端的日志入口、权限和配置编辑能力由客户端实现,Android 和 iOS 应以当前客户端界面为准。

相关阅读

参考资料

  1. sing-box 官方配置结构与 check 命令
  2. sing-box 官方 Log 配置
  3. sing-box 官方 DNS 配置
  4. sing-box 官方 Route 配置
  5. sing-box 官方 TUN 配置