sing-box 从导入订阅到读懂报错
我接触机场的时间不长,不靠资历给客户端下结论。我更关心你拿到配置后能否启动,出了问题能否找到原因,以及改动能不能撤回。
这一页围绕 sing-box 展开。图形客户端、代理内核、机场订阅是不同的东西,名字放在同一张教程里,也不代表彼此兼容。把这层关系弄清楚,比照着截图找按钮更有用。
sing-box 值不值得换
sing-box 是否值得更换,要看订阅格式、路由需求和维护成本;我建议先确认现有问题,再判断换内核能否解决。
你现在的客户端如果已经能满足需求,没有必要为了一个新名字重做配置。网页打不开,也未必是内核的问题。订阅失效、出口异常、规则误配,都可能表现成连接失败。换软件之前,把故障出现的位置说清楚。
我会把判断拆成这些问题:
- 现有订阅能否被目标客户端正确读取?
- 你是否需要自己调整路由和 DNS?
- 报错之后,你是否愿意查看配置与日志?
sing-box 的使用中会接触 config.json,也可能接触 .srs 规则集。对想自己管理配置的人,这些是需要理解的对象;对只想导入订阅的人,它们则是客户端背后的细节。能看到更多设置,不等于每项都该改。
协议名称也不能直接用来判断体验。Shadowsocks、VMess、VLESS、TUIC 等名称,描述的是连接方式的一部分。某个客户端能否使用某份节点配置,还要看它所带内核的支持情况与配置写法。以官方说明为准,不凭名称相似推断。
我没有做资源占用或耗电对比,不会给出谁更省的结论。你可以在相近使用条件下比较自己的设备表现,但要把后台下载、网络切换和其他应用活动一起考虑。只看某次任务管理器截图,说明不了日常体验。
如果你尚未确定需要哪类软件,可以先看客户端与内核怎么区分。先决定自己要图形界面还是直接管理配置,再缩小选择范围。
各系统怎么选客户端
sing-box 客户端应按系统支持和实际内核来选;我会核对项目说明,再确认订阅入口,避免被相近的名称误导。
Windows 用户要分清 sing-box 图形客户端与其他代理客户端。Clash Verge Rev 使用 Mihomo 内核,不能因为教程把它和 sing-box 放在一起,就认为它们读取配置的方式相同。已有 Clash 配置的人,可以参考Clash Verge Rev 的使用流程,不要混用教程里的配置步骤。
Android 用户也应先确认应用的项目来源、支持格式与当前说明。安装完成后,找得到导入入口,只能说明应用提供了配置管理功能。能否解析订阅、能否启动代理,还要分别检查。
macOS 和 iOS 用户,要核对软件身份以及当前获取方式。商店展示、地区要求和应用名称可能发生变化,这一页不把某个地区的下载路径写成长期有效的操作。获取方式以官方说明为准,也不要把外观接近的应用当成同一个项目。
Shadowrocket,也就是常说的小火箭,是另一个客户端名称。它出现在代理教程里,不代表 sing-box 的配置文件可以直接照搬过去。你要比较的是支持什么输入,以及怎样处理路由,而不是图标或按钮长得像不像。
Linux 用户若准备直接运行内核,阅读配置和终端输出就是日常操作的一部分。图形界面能替你管理部分步骤,直接运行则需要你自己确认文件位置、执行环境和启动方式。别把省掉界面理解成省掉维护。
我会保留当前能用的客户端和配置,再尝试新的方案。这样遇到问题时,你还能恢复原来的连接方式,不必一边断网一边猜哪里改错了。
订阅怎样导入才对
sing-box 导入订阅前,应确认服务端提供的格式与客户端要求一致;我建议保留原配置,再检查新配置能否解析和启动。
先确认拿到什么格式
在服务的订阅管理页面,查看是否明确提供 sing-box 格式。不要把“通用订阅”理解为所有客户端都能读取。名称只是入口说明,真正决定能否导入的是返回内容与客户端支持范围。
没有对应入口,就向服务方确认支持哪种客户端、是否提供匹配的配置。你需要的是明确答案,不是“都可以用”这种笼统回复。我看重客服能否及时回答,也看重答案是否具体;回复很快却答非所问,同样不能解决导入问题。
不要为了转换格式,把订阅内容随手交给来源不明的网页。订阅里可能包含连接所需的信息。若必须经过转换,应先弄清由谁处理、内容发往哪里,以及转换后的配置是否还需要人工检查。
这一页不放订阅地址,也不提供转换服务。你拿到的内容应来自自己有权使用的服务或配置来源。
导入后再分开验证
不同图形客户端的菜单名称会有区别。你要找的是添加配置、远程订阅或类似入口;如果看到 Remote (远程订阅),先确认它要求的是远程配置,而不是本地文件。
添加时给配置起一个能辨认的名字。保存后查看是否出现解析错误,再确认当前选中的配置就是刚导入的那份。不要只看到列表新增了名称,就认定内容已经可用。
我建议按这个顺序操作:
- 添加订阅,确认客户端完成读取。
- 选择对应配置,启动代理并查看状态。
- 打开目标网站,再检查请求是否符合预期。
导入、启动和访问是不同的检查点。导入成功但启动报错,先看配置与运行环境;启动正常却无法访问,再检查节点、路由和 DNS。把问题拆开,才不会反复删除订阅又重新添加。
TUN 也不用急着开启。先确认基本连接能工作,再检查需要接管的应用是否生效。否则,订阅问题和网络接管问题混在一起,你很难知道哪次修改有作用。
如果客户端连订阅都读不出来,可以继续看订阅读取失败怎么排查。已经启动但连接一直超时,则转到节点超时的检查顺序,别在导入页面反复试运气。
配置文件应该怎么改
sing-box 配置应从可启动的文件逐步修改;我不会把缺少版本依据的片段包装成完整模板,避免你复制后更难排错。
准备编辑 config.json 前,先复制一份当前文件。记录原文件的位置、客户端实际读取的位置,以及准备修改的内容。文件改对了,程序却读着另一份配置,这类问题靠反复换节点解决不了。
我会按入口、出口、路由和 DNS 去理解配置:请求从哪里进来,要送到哪个出口,哪些条件决定去向,域名解析怎样参与连接。它们需要互相配合,不能只复制路由片段,就假定其他部分已经存在。
outbounds 是检查出口配置时会接触的内容。路由引用的出口名称,需要能对应到实际配置。给出口取了一个容易理解的名字,只是方便管理,并不会让它自动具备访问某类网站的能力。
规则也要看来源与适用范围。别人分享的片段可能依赖特定规则文件、配置结构或内核版本。脱离这些条件,片段看起来完整,也可能无法使用。
因此,这一页不提供整份可直接运行的通用配置。当前材料不足以确认完整字段结构、默认行为和兼容范围。你应使用与当前内核相匹配的官方示例,再逐项替换自己有权使用的连接信息。
每次修改之后,先检查能否启动,再检查行为是否符合预期。比如只调整某类网站的出口,就围绕这类请求验证。不要同时更换 DNS、规则文件和出口,否则即使恢复访问,也不知道是哪项调整起了作用。
配置能启动,是继续检查的起点。
sing-box 出错怎么查
sing-box 排错应先区分配置解析、程序启动和网络访问;我按故障发生的位置检查,避免把所有异常都归到节点上。
没有对应订阅怎么办
服务方没有提供 sing-box 格式时,先询问是否存在其他配置获取方式。不要默认 Clash 订阅可以直接交给 sing-box,也不要假定某个图形客户端会自动完成转换。
如果得到的回复只提到支持 Clash,就按它明确支持的客户端操作。你也可以要求服务方说明兼容范围。为了尝试新内核而维护来历不清的转换链路,会增加后续定位问题的成本。
和 Mihomo 是什么关系
sing-box 与 Mihomo 是需要分别识别的代理内核。图形客户端使用哪个内核,要看项目说明,不能从界面上的相似功能反推。
配置内容也应按对应内核理解。迁移时,先检查订阅和规则是否适配,再处理界面中的操作差异。把旧文件换个名字,并不等于完成配置迁移。
规则集文件有什么用
.srs 是 sing-box 使用中会遇到的规则集文件形式,相关编译命令是 sing-box rule-set compile。具体输入要求和使用方式,要对应当前官方说明。
规则集负责描述匹配条件,不负责证明出口可用。某个请求命中了规则,后面的出口仍然可能连接失败。排查时要把“有没有匹配”与“匹配后能否访问”分开看。
TUN 启动失败查哪里
TUN 启动失败时,先读完整错误,再检查客户端要求的运行权限和系统环境。不要只截取一句报错,就套用另一套系统上的修复办法。
我会先关闭 TUN,确认配置在其他适用模式下能否启动,再回到 TUN 的设置逐项检查。涉及权限调整时,以所用客户端的官方说明为准。不要把提升权限当成所有网络故障的通用答案。
不同网站怎样分流
把不同网站交给不同出口,需要同时确认匹配条件、出口定义和规则先后关系。写上“AI专用节点”或“流媒体节点”,只是命名,不是访问能力的证明。
我不会把现成的 geosite 片段当成可直接复制的答案。当前内核是否接受这种写法、规则来源是否有效,都需要对应说明。修改后还应观察目标请求走向,不能只凭网站打开就认定分流正确。
手机耗电该怎么看
sing-box 在你手机上的耗电表现,我没有测过。应用后台活动、实际传输、网络状态和设备设置都可能影响观察结果,不能只凭内核名称给答案。
你可以在使用习惯接近的情况下查看系统电量记录,并留意异常是否伴随持续传输或反复连接。若要比较客户端,尽量保持其他条件接近。单次使用感受可以帮助发现问题,不宜扩写成普遍结论。
自建配置能不能接入
已有自建节点时,应检查协议和参数是否被当前 sing-box 内核支持,再按对应格式配置出口。知道节点使用 VLESS 或 Shadowsocks,只完成了协议识别,连接参数仍需逐项对应。
不要把其他客户端生成的完整配置直接拼进 outbounds。字段含义、嵌套位置和依赖条件都可能不同。你应保留原配置,参考当前官方示例整理,再检查启动结果。
启动报错从哪里读
直接运行内核时,可以用 sing-box run -c config.json 查看启动输出。执行前确认当前环境能找到程序,也确认读取的是准备检查的配置文件。
需要更详细信息时,可按对应配置要求把 log.level 调整为 "debug"。先阅读错误发生位置附近的内容,区分是文件解析失败、引用对象不存在,还是连接阶段出现异常。详细日志有助于缩小范围,不保证每条报错都会直接给出修复方法。
分享日志前,删去订阅信息、认证内容和其他敏感字段。问题解决后,再把日志设置恢复到日常需要的程度。
iOS 应该怎样获取
iOS 用户应通过项目官方说明确认当前应用名称、发布身份与获取渠道。不要只看教程截图,也不要把代安装页面当成项目本身。
这一页没有核对当前商店地区与上架状态,因此不承诺某个地区一定能够下载。若暂时无法获取,先确认原因,再判断是否采用其他客户端,别为安装应用交出自己的账户资料。
开机启动怎样处理
systemctl enable --now sing-box 只能在相关服务管理方式与服务定义已经具备时考虑使用。它不是把任意配置文件自动变成可运行服务的命令。
先让 sing-box 在前台正常运行,再确认服务读取的配置、执行权限和工作环境。服务能启动之后,还要检查重新启动系统时是否按预期运行。开机启动与异常退出后的处理属于不同设置,不能用一条命令概括。
还缺哪些配置依据
sing-box 的完整配置还需要对应版本的说明与运行条件;这一页保留明确边界,不把尚未确认的字段写成操作结论。
#