路由与出口¶
决定用户流量从哪里出去。常见场景:入口机在国内或中转,出口机在海外,入口把流量转发给出口。
两层规则¶
- 面板下发的路由规则(在面板里配),优先匹配。
- 本机路由文件(
routes_file),面板没命中时再匹配。
面板支持的规则:按域名 / IP / 端口 / 协议屏蔽、直连放行、指定 DNS、走指定出口。三个面板各自的格式和例子见 面板路由与自定义出站。
两边都设了时:
- 规则按顺序第一个命中的生效:节点本机的屏蔽/白名单 → 面板规则 → 本机
[route]。面板只处理它命中的流量,其余交给本机文件,两边是叠加。 - 兜底出口:面板设了(V2board 的
default_out、Xboard 自定义路由的 final)就用面板的,没设才用本机[default]。 - 出口名不要重复:面板自定义出站和本机
[outbound 名字]同名时,本机文件会覆盖面板那个。
本机路由文件¶
在节点上定义出口、出口组(负载均衡)和分流规则:
文件格式:
[outbound us1]
type=trojan
server=us1.example.com
port=443
password=密码
[outbound us2]
type=ss
server=us2.example.com
port=8388
method=2022-blake3-aes-128-gcm
password=密钥
[group us]
outbounds=us1,us2
strategy=round_robin # 轮流;也可以 random(随机)、failover(主备)
[route]
match=geosite:netflix, domain:example.com
outbound=us # 出口名、组名、direct 或 block
[route]
match=domain:only-node-9.test
outbound=us1
nodes=1,2 # 可选:只对这些节点 ID 生效
[default]
outbound=us # 没有规则匹配的流量走这里
支持的出口类型¶
| 类型 | UDP | 说明 |
|---|---|---|
socks |
✅ | SOCKS5 代理 |
http |
❌ | HTTP 代理 |
wireguard |
✅ | WireGuard,含 Cloudflare WARP |
trojan |
✅ | 转发给另一个 Trojan 节点 |
vless |
✅ | 转发给另一个 VLESS 节点(每个 UDP 目标一条连接,单个会话最多 64 个目标) |
ss |
✅ | 转发给另一个 Shadowsocks 节点(经典 AEAD 与 2022,单用户或多用户) |
Note
除 HTTP 代理外,所有出口都转发 UDP,中转到落地机时游戏、语音照常可用。指向 HTTP 代理的 UDP 流量会被丢弃,不会直连,以免暴露节点 IP。出口暂时故障时 UDP 同样丢弃,5 秒后重试。
改规则文件不用重启¶
本机路由文件、DNS 规则、屏蔽列表、白名单和 geo 数据文件,保存后 10 秒内自动生效,日志里会有一行 routing reloaded。只换规则,不动监听,用户的连接不会断。
多台节点共用一份路由时,把文件放到网上,节点用 routes_url 定时拉取(代替 routes_file):
走 WARP 出口¶
让部分网站(比如流媒体、ChatGPT)从 Cloudflare WARP 出去。只需要一个 WARP 账号的私钥,其余(对端公钥、地址、端点)kaze 自动补上 WARP 的默认值。
获取私钥:用开源工具 wgcf 注册一个免费 WARP 账号:
用 geosite: 规则前,先执行一次 kaze geo 下载规则数据。
源进源出¶
多 IP 服务器上,用户从哪个本机 IP 连进来,流量就从哪个 IP 出去。
Note
对基于 TCP 的协议有效;Hysteria2 和 TUIC 走系统默认出口。