---
title: 出站与路由
description: 在 3x-ui 中调整出口流量——WARP、NordVPN、PIA WireGuard、出站订阅(服务器池)、路由规则以及负载均衡器。
icon: Route
---
入站负责接受客户端;**出站**则决定客户端的流量接下来发往何处。
3x-ui 可以让流量经由 Cloudflare WARP、NordVPN、Private Internet Access
(WireGuard),或从订阅导入的任意出站池转发,
并通过路由规则和均衡器在它们之间进行选择。
## 编辑出站与路由
出站、路由规则、均衡器、DNS 和日志全部都位于 **Xray
配置**中(即你在 Xray 设置下编辑的配置模板)。这里没有单独的逐条规则界面——你直接编辑
JSON,面板随后会重载 Xray。面板同时还提供**出站连通性测试**以及**路由测试**(向正在运行的核心查询某个目标地址将会使用哪个出站)。
## 构建出站
每个出站都是一个 JSON 对象,最多包含四个部分:一个 **`tag`**(供路由规则和均衡器引用)、
一个 **`protocol`**、协议专属的 **`settings`**,以及——对于代理协议而言——必须与远程入站的
传输方式和安全设置相匹配的 **`streamSettings`**。有两个出站几乎总是会存在:
- **`freedom`** 会将流量直接发往其目标地址——这是默认出口。
可选地设置一个 `domainStrategy`(例如 `UseIP`)来控制主机名的解析方式。
- **`blackhole`** 会丢弃流量。将不需要的目标地址(广告、种子下载)路由到这里。
```json title="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` 必须与目标的
[传输方式和安全设置](/docs/config/transports)保持一致。
在下方组装任意出站,并将生成的 JSON 粘贴到 **Xray 设置 → Outbounds** 中:
## 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-` 标签,
同一服务器不能重复添加。
对已添加行执行 **Reset** 时,会保留原服务器、标签、peer 和路由引用,只使用当前保存的
NordVPN 凭据刷新该出站内嵌的私钥。登出只清除保存的凭据,已有出站继续使用其内嵌密钥;
不再使用的 NordVPN 出站需要从出站列表中删除。
## PIA WireGuard
3x-ui 可以用 PIA 用户名和密码登录,从已验签的服务器列表里选择国家/区域/服务器,
并生成 WireGuard 出站。打开 **Xray → 出站 → 更多 → PIA**,登录后选服务器并添加出站。
可以添加多台服务器(每个 hostname 一条出站)。标签为 `pia--`(例如
`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 防护)。 |
| `tagPrefix` | auto | 生成的出站标签的前缀(例如 `hk-`);留空 = `subN-`。 |
| `updateInterval` | `600` | 刷新间隔,以**秒**为单位。 |
| `prepend` | `false` | 将这些出站放在你的手动出站之前。 |
| `priority` | `0` | 合并顺序(数值越小越靠前)。 |
导入的出站会获得**稳定的标签**:同一台服务器在多次刷新之间始终保持同一个标签,
因此精确标签的路由/均衡器选择器会保持固定——而前缀/通配符选择器(例如 `hk-*`)
则会随着服务器池的变化自动纳入新的服务器。支持的链接协议:`vmess`、`vless`、`trojan`、`ss`、
`hysteria2`(`hy2`)以及 `wireguard`(`wg`)。面板会按定时器刷新已启用的
订阅,并在内容发生变化时重载 Xray。
## 路由规则
**路由规则**决定每个连接使用哪个出站(或均衡器)。每条
规则都是一个 `field` 类型的匹配器:设置 `domain`、`ip`、`port`、`network`、
`protocol`、`inboundTag`、`sourceIP` 等中的任意项,并将其指向一个 **`outboundTag`** 或
**`balancerTag`**。规则会**自上而下**逐条求值——**第一个匹配者胜出**,因此请
将具体的规则放在通用规则之上。
```json title="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" }
]
}
}
```
### Lua 脚本
Xray 26.10.10 可以把路由和 DNS 交给 Lua 处理。**基础配置 → 路由脚本** 填写定义了
`HandleRoute` 的 `.lua` 文件路径(绝对路径或相对于 Xray `bin` 目录);**DNS → Lua
脚本** 填写定义了 `HandleDNSQuery` 的文件,DNS 服务器的 **ID** 就是脚本选择它时使用的名称。
路由脚本会取代**全部**路由规则,包括面板自带的 `api` 规则。请在脚本中把 `api` 入站
发往 `api` 出站,否则流量统计和客户端变更的实时生效都会停止。文件不存在或加载失败时
Xray 无法启动。
## 均衡器
**均衡器**通过一个**选择器**(标签前缀,包括来自出站订阅的通配符池)将出站分组,
并以某种**策略**在它们之间分散流量或进行故障转移:
| 策略 | 选取…… | 是否需要监视器 |
| ------------- | ----------------------------------------------- | ------------------------ |
| `random` | 每个连接随机选取一个成员 | 否 |
| `roundRobin` | 轮流选取各个成员 | 否 |
| `leastPing` | 延迟最低的成员 | **`observatory`** |
| `leastLoad` | 按采样负载最稳定的成员 | **`burstObservatory`** |
通过 `balancerTag` 从规则中引用某个均衡器。`leastPing` 和 `leastLoad`
需要一个健康监视器,Xray 会将其放置在配置的**顶层**
(`observatory` / `burstObservatory`,**而不是**放在 `routing` 内部)。面板可以
报告均衡器状态,并允许你为测试目的将某个均衡器**覆盖**为特定的出站。
在此构建路由块——规则、均衡器以及配套的 observatory:
访问外部服务的出站在获取时会受到 SSRF 防护——默认情况下,私有/内部地址会被
阻止,除非你按来源明确允许它们。