Skip to content

出站

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

选项

字段类型默认值允许值描述
protocolstringfreedom | 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该出站的唯一名称。被路由规则、均衡器、proxySettings 链式代理与统计计数器引用。
settings*json.RawMessage协议专属设置对象,由 protocol 选中的处理器解码。各协议的字段见对应协议页面。
streamSettings*StreamConfig出站连接的传输层与安全层(raw / ws / grpc / xhttp…,tls / reality)。见传输层与 TLS 页面。
proxySettings*ProxyConfig将该出站通过另一个出站(按 tag 寻址)转发。字段见下表。
mux*MuxConfig在底层连接上进行 Mux 多路复用。字段见下表。
targetStrategystringAsIsAsIs | UseIP | UseIPv4 | UseIPv6 | UseIPv4v6 | UseIPv6v4 | ForceIP | ForceIPv4 | ForceIPv6 | ForceIPv4v6 | ForceIPv6v4拨号前如何解析目标域名(匹配不区分大小写)。Use* 优先给定的地址族并允许回退,Force* 拒绝回退。未知值会导致启动错误。

源码: infra/conf/xray.go:213-222 · 锚定版本 v26.7.28 (5ca6f4b)

链式代理(proxySettings

字段类型默认值允许值描述
tagstring作为中转的出站 tag。
transportLayerboolfalsetrue | false在传输层而非应用层进行链式转发 — 等价于 sockopt.dialerProxy,因此二者不能同时配置。

源码: infra/conf/transport_internet.go:312-317 · 锚定版本 v26.7.28 (5ca6f4b)

多路复用(mux

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

源码: infra/conf/xray.go:102-107 · 锚定版本 v26.7.28 (5ca6f4b)

最简示例

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.tagstreamSettings.sockopt.dialerProxy 冲突 — 同时配置会在启动时被拒绝。transportLayer: true 时,链式代理在内部会被改写成正是那个 sockopt。
  • sendThrough 配 CIDR 时,每个连接都会在该网段内随机取一个源地址 — 配合可路由的 IPv6 前缀很有用。
  • dns 协议是拦截 DNS 查询的特殊出站;见 DNS

跨内核说明

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

源码: infra/conf/xray.go:213-222 · v26.7.28 (5ca6f4b)

由 Argsment 出品的 Core Tutorial