规则是有顺序的 JSON 数组

每个对象表示一条规则。enabled 控制启用,remarks 为备注,outboundTag 选择已存在的出站。客户端编辑器与核心原生配置并非完全相同;优先从客户端导出规则,再在相同结构中修改。

保存后还要选中该规则集并重新应用配置。规则由上到下匹配,命中后不继续向下查找。

常用匹配字段

同一条件中的多个值通常表示任选其一;不同条件同时填写时需要共同满足。客户端会将同一条中的 Domain、IP、进程条件拆开处理,建议每条只选择其中一种。

字段写法与作用
domain域名数组;full:example.com 精确匹配,domain:example.com 包含其子域名,regexp: 为正则,geosite: 为分类
ip单个 IP、CIDR 或 geoip: 分类;geoip:private 匹配私有地址
port目标端口或范围,如 443 或 1000-2000
sourcePort / source来源端口 / 来源 IP 条件,核心支持范围需匹配
networktcp、udp 或二者
protocol嗅探得到的应用协议,如 http、tls、bittorrent;需要相应嗅探
inboundTag限定请求来自哪个入站
outboundTagdirect 直连、proxy 代理、block 阻止,或已经定义的自定义 tag
enabled / remarks客户端规则启用状态 / 备注

从一条明确规则开始

下面的示例让 example.com 及其子域名直连,其余交给 proxy。示例中的最后一条是兜底规则,应始终位于后面;如果已有规则集有兜底规则,只新增需要的精确规则即可。

JSON · client routing rules复制
[
  {
    "remarks": "Example domain direct",
    "domain": [
      "domain:example.com"
    ],
    "outboundTag": "direct",
    "enabled": true
  },
  {
    "remarks": "Fallback proxy",
    "port": "0-65535",
    "outboundTag": "proxy",
    "enabled": true
  }
]

常见规则组合

把局域网 IP 和私有域名设为 direct,可让本地设备保持可达;使用 GEO 分类前应更新对应数据。需要阻止 UDP 443 时可写 network=udp、port=443、outboundTag=block,这会影响 QUIC / HTTP/3,不应当成所有连接问题的通用修复。

域名规则需要客户端拥有域名信息;如果应用直接连接 IP,纯域名规则可能无法命中。嗅探、DNS 模式和应用自己的加密 DNS 都会影响可用信息。

域名解析策略

Xray 的 AsIs 在路由阶段保留域名;IPIfNonMatch 会在域名未匹配时尝试解析后匹配 IP;IPOnDemand 在匹配需要 IP 信息的规则时解析。解析策略与规则顺序相互影响,不代表所有实际出站解析也使用相同 DNS。

将域名规则放在合适位置,避免过早触发宽泛 IP 规则。DNS 出站解析的设置请在本站 DNS 章节中单独核对。

DNS 设置说明

导入、验证与回退

规则可以从文件、剪贴板或订阅 URL 导入。导入前保留旧规则集;JSON 不能包含尾随逗号或注释。确认 outboundTag 存在,分类数据有效,没有将所有流量误匹配到第一条。

用一个明确目标验证:发起一次新连接,查看日志中选择的出站。旧的长连接可能继续使用原出口,必要时重启目标应用再测。失败时切回旧规则集,不需要删除所有配置。