Skip to content

出站 ​

outbounds 是上游目标的数组。每个条目对应一个 OutboundDetourConfig:协议名称、协议专属的 settings 对象,以及可选的传输层(streamSettings)与多路复用(mux)块。数组的第一个条目是默认出站 — 未命中任何路由规则的流量都会走它。

选项 ​

字段类型默认值允许值描述
protocolstring—freedom | direct | blackhole | block | loopback | http | socks | shadowsocks | vless | vmess | trojan | hysteria | dns | wireguard用于拨号的出站处理器。查表前先转为小写。direct 是 freedom 的别名,block 是 blackhole 的别名。
sendThrough*string0.0.0.0—拨号使用的本地源地址。接受 IP、CIDR(每个连接从中随机取一个地址),或特殊域名 origin / srcip。
tagstring——该出站的唯一名称。被路由规则、均衡器、dialerProxy 链式代理与统计计数器引用。
settings*json.RawMessage——协议专属设置对象,由 protocol 选中的处理器解码。各协议的字段见对应协议页面。
streamSettings*StreamConfig——出站连接的传输层与安全层(raw / ws / grpc / xhttp…,tls / reality)。见传输层与 TLS 页面。
proxySettings*json.RawMessage(unsupported)(use sockopt.dialerProxy)不受支持 —— 设置它会在启动时报错,并提示改用 streamSettings.sockopt.dialerProxy(出站链式代理的配置方式)。
mux*MuxConfig——在底层连接上进行 Mux 多路复用。字段见下表。
targetStrategystringAsIsAsIs | UseIP | UseIPv4 | UseIPv6 | UseIPv4v6 | UseIPv6v4 | ForceIP | ForceIPv4 | ForceIPv6 | ForceIPv4v6 | ForceIPv6v4拨号前如何解析目标域名(匹配不区分大小写)。Use* 优先给定的地址族并允许回退,Force* 拒绝回退。未知值会导致启动错误。对于 freedom 出站,非 AsIs 的值会在启动时被迁移到 streamSettings.sockopt.domainStrategy(记录一条警告,行为不变)。

源码: infra/conf/xray.go:214-223 · 锚定版本 v26.9.9 (52a412d)

链式代理 ​

出站链式代理在传输层配置:把 streamSettings.sockopt.dialerProxy 设为另一个出站的 tag,该出站的连接就会经由那个出站拨出。不存在 proxySettings 对象 —— 设置了它的配置会在启动时报错,并提示改用 dialerProxy。

多路复用(mux) ​

字段类型默认值允许值描述
enabledboolfalsetrue | false为经过该出站的 TCP 流量开启 Mux。
concurrencyint16——单条物理连接可承载的最大并发流数。负值完全禁用 Mux,包括 XUDP 路径。
xudpConcurrencyint16——XUDP(UDP over Mux)连接的独立并发数。
xudpProxyUDP443stringrejectreject | allow | skip如何处理 XUDP 内被代理的 UDP/443(QUIC)流量:拒绝、放行,或对其跳过 Mux。

源码: infra/conf/xray.go:103-108 · 锚定版本 v26.9.9 (52a412d)

最简示例 ​

json
{
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "example.com",
            "port": 443,
            "users": [{ "id": "uuid", "encryption": "none" }]
          }
        ]
      },
      "streamSettings": { "security": "tls" }
    },
    { "tag": "direct", "protocol": "freedom", "settings": {} },
    { "tag": "block", "protocol": "blackhole", "settings": {} }
  ]
}

说明 ​

  • 顺序很重要:路由把未命中的流量交给第一个出站。把你想作为默认的代理或 freedom 条目放在下标 0。
  • proxySettings.tag 的值对应 streamSettings.sockopt.dialerProxy。transportLayer 没有对应项,因为 dialerProxy 始终在传输层链式转发。
  • sendThrough 配 CIDR 时,每个连接都会在该网段内随机取一个源地址 — 配合可路由的 IPv6 前缀很有用。
  • dns 协议是拦截 DNS 查询的特殊出站;见 DNS。

跨内核说明 ​

  • sing-box 用扁平对象表达同一概念(type + tag + 同层字段),且没有"第一个即默认"的隐式规则 — 默认出站由 route.final 决定。见 sing-box 出站。
  • mihomo 把它们称作 proxies,并且总是经由 代理组或规则分发,而不是按顺序取默认值。

源码: infra/conf/xray.go:214-223 · v26.9.9 (52a412d)

由 Argsment 出品的 Core Tutorial