
outbounds是对象列表,tag是引用名称
outbounds定义出站对象。具体代理出站描述一种连接方式,selector则组织可供选择的出站;两者不能简单视为同一个节点。tag为对象提供引用标识,名称应唯一,并在使用它的地方保持一致。
这属于sing-box的通用结构说明,不是Karing某一版本的完整导入规范。即使应用使用相关技术,也不能因此认定所有原生配置字段都会原样执行。先阅读配置格式与兼容性说明,再对照运行版本文档与迁移说明。
选择器引用已有出站
选择器的成员列表保存出站tag,不会仅凭一个名称自动创建节点。默认选项也应属于可选成员。urltest是根据探测选择出站的另一类机制,其参数和行为需查对应版本;它与手动selector的职责不同。
{
"outbounds": [
{ "type": "direct", "tag": "demo-direct" },
{
"type": "selector",
"tag": "demo-select",
"outbounds": ["demo-direct"],
"default": "demo-direct"
}
],
"route": { "final": "demo-select" }
}示例只演示引用关系,没有代理服务器与真实凭据,也不是可直接套用的完整运行配置。这里route.final引用demo-select,选择器再引用demo-direct。实际项目中的标签可自行命名,本文名称不是Karing内置标签。
route、规则动作与final分别承担什么
route.rules组织路由规则;规则如何选择出站,应按对应版本的规则动作语法配置。route.final指定默认出站的tag,不能填写一个尚未定义的对象名。默认行为和字段可能随版本调整,不应凭空假设。
遇到选择器没有预期成员,可以先按节点来源与组引用检查法判断是节点未定义、被更新删除,还是引用写错。JSON逗号和括号正确,只能说明文本能被解析,不能保证名称引用和运行语义有效。
用一张引用清单检查配置
- 在副本中列出全部outbound tag,检查重复与不可见空格。
- 逐个核对selector成员及default是否存在,避免自引用或循环引用。
- 从route.final及规则动作回查出站,确认标签逐字对应。
- 核对当前版本字段是否仍有效,留意废弃字段和迁移提示。
- 结构检查通过后,再检查解析日志和实际连接行为。
记录错误时只保留字段、脱敏标签和错误类型,不公开服务器凭据。不要覆盖唯一有效配置,也不要把旧版本完整文件直接视为新版本的兼容模板。关于同一目标如何命中规则,继续阅读规则匹配优先顺序;本篇的重点是对象存在与引用有效。



