3x-ui3x-ui
运维

出站与路由

在 3x-ui 中调整出口流量——WARP、NordVPN、PIA WireGuard、出站订阅(服务器池)、路由规则以及负载均衡器。

入站负责接受客户端;出站则决定客户端的流量接下来发往何处。 3x-ui 可以让流量经由 Cloudflare WARP、NordVPN、Private Internet Access (WireGuard),或从订阅导入的任意出站池转发, 并通过路由规则和均衡器在它们之间进行选择。

编辑出站与路由

出站、路由规则、均衡器、DNS 和日志全部都位于 Xray 配置中(即你在 Xray 设置下编辑的配置模板)。这里没有单独的逐条规则界面——你直接编辑 JSON,面板随后会重载 Xray。面板同时还提供出站连通性测试以及路由测试(向正在运行的核心查询某个目标地址将会使用哪个出站)。

构建出站

每个出站都是一个 JSON 对象,最多包含四个部分:一个 tag(供路由规则和均衡器引用)、 一个 protocol、协议专属的 settings,以及——对于代理协议而言——必须与远程入站的 传输方式和安全设置相匹配的 streamSettings。有两个出站几乎总是会存在:

  • freedom 会将流量直接发往其目标地址——这是默认出口。 可选地设置一个 domainStrategy(例如 UseIP)来控制主机名的解析方式。
  • blackhole 会丢弃流量。将不需要的目标地址(广告、种子下载)路由到这里。
freedom + blackhole
{
  "outbounds": [
    { "tag": "direct", "protocol": "freedom", "settings": {} },
    { "tag": "block", "protocol": "blackhole", "settings": {} }
  ]
}

代理出站(VLESS、VMess、Trojan、Shadowsocks)会转发到另一台 服务器——便于进行链式代理或将部分流量发往境外。注意 3x-ui 所使用的各种线路 结构:VLESS 采用扁平形式(address/port/id/flow/ encryption),VMess 使用 settings.vnext[],而 Trojan/Shadowsocks 使用 settings.servers[]。streamSettings 必须与目标的 传输方式和安全设置保持一致。

在下方组装任意出站,并将生成的 JSON 粘贴到 Xray 设置 → Outbounds 中:

Outbound config generator

Build an Xray outbound object — freedom, blackhole, a proxy protocol, WireGuard, or WARP — to paste into your Xray configuration.

Outbound (Xray JSON)
{
  "tag": "proxy",
  "protocol": "vless",
  "settings": {
    "address": "example.com",
    "port": 443,
    "id": "",
    "flow": "",
    "encryption": "none"
  },
  "streamSettings": {
    "network": "tcp",
    "security": "reality",
    "tcpSettings": {
      "header": {
        "type": "none"
      }
    },
    "realitySettings": {
      "fingerprint": "chrome",
      "serverName": "www.microsoft.com"
    }
  }
}

Cloudflare WARP

WARP 让你的服务器经由 Cloudflare 的网络出口。3x-ui 可以为你注册一个 WARP 账户,并将其接入一个标签为 warp 的 WireGuard 出站:

添加一个标签为 warp 的出站

在你的 Xray 配置中创建一个标签为 warp 的 WireGuard 出站。

注册 WARP

在面板的 WARP 控制项中注册一个账户。3x-ui 会自动填入该出站的 密钥、地址、保留字节以及对端端点。

(可选)自动轮换 IP

设置一个 WARP 更新间隔(以天为单位),即可定期轮换 WARP IP。也可以 应用一个免费许可证。

通过路由规则,将你希望的流量(例如特定域名)路由到 warp 出站。

NordVPN

3x-ui 可以根据访问令牌获取 NordVPN(NordLynx/WireGuard)凭据(或 直接接受一个私钥),并列出国家/服务器,从而让你构建一个 NordVPN 出站。打开 Xray → 出站 → 更多 → NordVPN,登录或保存私钥后选择服务器并 添加出站。可以连续添加多台服务器;每个 hostname 使用唯一的 nord-<hostname> 标签, 同一服务器不能重复添加。

对已添加行执行 Reset 时,会保留原服务器、标签、peer 和路由引用,只使用当前保存的 NordVPN 凭据刷新该出站内嵌的私钥。登出只清除保存的凭据,已有出站继续使用其内嵌密钥; 不再使用的 NordVPN 出站需要从出站列表中删除。

PIA WireGuard

3x-ui 可以用 PIA 用户名和密码登录,从已验签的服务器列表里选择国家/区域/服务器, 并生成 WireGuard 出站。打开 Xray → 出站 → 更多 → PIA,登录后选服务器并添加出站。 可以添加多台服务器(每个 hostname 一条出站)。标签为 pia-<region>-<server>(例如 pia-us-east-useast1)。添加或对该行 Reset 会向该服务器的 PIA /addKey 注册密钥。 同一 hostname 不能添加两次。登出只清除保存的 token;删除出站请在出站列表里操作。 Reset 或删除出站不会撤销 PIA 账户侧的 WireGuard peer。

密码不落库。PIA API token 与节点 API token 共用 NODE_TOKEN_ENCRYPTION。 若在未重新登录 PIA 的情况下淘汰旧的 XUI_NODE_TOKEN_KEY,Add/Reset 会失败,直到再次登录。 对端 allowedIPs 仅为 0.0.0.0/0(IPv4)。

出站订阅(服务器池)

出站订阅会导入一个远程分享链接订阅,并将其中的服务器作为出站注入到正在运行的 Xray 配置中——而不会改动你已保存的模板。这是订阅一池服务器的推荐方式。

字段默认值含义
url—远程订阅 URL(受 SSRF 防护)。
tagPrefixauto生成的出站标签的前缀(例如 hk-);留空 = subN-。
updateInterval600刷新间隔,以秒为单位。
prependfalse将这些出站放在你的手动出站之前。
priority0合并顺序(数值越小越靠前)。

导入的出站会获得稳定的标签:同一台服务器在多次刷新之间始终保持同一个标签, 因此精确标签的路由/均衡器选择器会保持固定——而前缀/通配符选择器(例如 hk-*) 则会随着服务器池的变化自动纳入新的服务器。支持的链接协议:vmess、vless、trojan、ss、 hysteria2(hy2)以及 wireguard(wg)。面板会按定时器刷新已启用的 订阅,并在内容发生变化时重载 Xray。

路由规则

路由规则决定每个连接使用哪个出站(或均衡器)。每条 规则都是一个 field 类型的匹配器:设置 domain、ip、port、network、 protocol、inboundTag、sourceIP 等中的任意项,并将其指向一个 outboundTag 或 balancerTag。规则会自上而下逐条求值——第一个匹配者胜出,因此请 将具体的规则放在通用规则之上。

route ads to blackhole, private IPs direct
{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      { "type": "field", "domain": ["geosite:category-ads-all"], "outboundTag": "block" },
      { "type": "field", "ip": ["geoip:private"], "outboundTag": "direct" }
    ]
  }
}

均衡器

均衡器通过一个选择器(标签前缀,包括来自出站订阅的通配符池)将出站分组, 并以某种策略在它们之间分散流量或进行故障转移:

策略选取……是否需要监视器
random每个连接随机选取一个成员否
roundRobin轮流选取各个成员否
leastPing延迟最低的成员observatory
leastLoad按采样负载最稳定的成员burstObservatory

通过 balancerTag 从规则中引用某个均衡器。leastPing 和 leastLoad 需要一个健康监视器,Xray 会将其放置在配置的顶层 (observatory / burstObservatory,而不是放在 routing 内部)。面板可以 报告均衡器状态,并允许你为测试目的将某个均衡器覆盖为特定的出站。

在此构建路由块——规则、均衡器以及配套的 observatory:

Balancer & routing builder

Compose Xray balancers and routing rules, then copy the routing block (with a matching observatory for leastPing/leastLoad).

Balancers

Rules

Routing block (Xray JSON)
{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "domain": [
          "geosite:category-ads-all"
        ],
        "outboundTag": "block"
      },
      {
        "type": "field",
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "direct"
      }
    ],
    "balancers": [
      {
        "tag": "balancer",
        "selector": [
          "proxy"
        ],
        "strategy": {
          "type": "leastPing"
        }
      }
    ]
  },
  "observatory": {
    "subjectSelector": [
      "proxy"
    ],
    "probeURL": "https://www.google.com/generate_204",
    "probeInterval": "1m",
    "enableConcurrency": true
  }
}

访问外部服务的出站在获取时会受到 SSRF 防护——默认情况下,私有/内部地址会被 阻止,除非你按来源明确允许它们。

On this page