You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XRay服务器路由规则失效:指定域名/正则未走直连问题排查

问题描述

我在一台安装了XRay代理的服务器上配置路由规则,想要让特定域名或域名掩码不走代理,但配置后未生效。通过NekoBox客户端配置可正常工作,但我想在服务器端统一配置以避免逐个客户端设置。访问ifconfig.me时仍显示代理IP(185.255.111.111)。

配置文件路径为/usr/local/etc/xray/config.json,路由设置如下:

"routing": {
    "rules":[
      {
        "type": "field",
        "ip": [
          "geoip:private",
          "geoip:ru"
        ],
        "domain": [
          "domain:vk.com",
          "domain:ifconfig.me",
          "ifconfig.me",
          "regexp:\\.ru$"
        ],
        "outboundTag": "direct"
      }
    ],
    "domainStrategy": "IPIfNonMatch"
  }

请问我哪里配置错误?

问题分析与修正方案
  • 规则逻辑错误:你的路由规则把ip和domain放在同一条规则里,XRay的field规则是逻辑与关系,意味着请求必须同时匹配IP列表和域名列表才会走direct,这完全不符合你的需求,必须把IP和域名规则拆分成独立的规则条目。
  • 域名格式冗余/错误:
    • 重复添加了ifconfig.me,domain:ifconfig.me已经是正确的精确域名匹配格式,不需要单独添加无前缀的ifconfig.me;
    • JSON中反斜杠需要转义,正则表达式regexp:\.ru$应写成regexp:\\.ru$,否则正则无法正常生效。
  • 拆分规则后规避domainStrategy干扰:IPIfNonMatch会让未匹配域名规则的请求先解析IP再匹配IP规则,拆分独立规则后可以避免这种逻辑带来的匹配冲突。

修正后的路由配置:

"routing": {
    "rules": [
      // 匹配私有IP和俄罗斯IP的请求走direct
      {
        "type": "field",
        "ip": [
          "geoip:private",
          "geoip:ru"
        ],
        "outboundTag": "direct"
      },
      // 匹配指定域名和.ru后缀域名的请求走direct
      {
        "type": "field",
        "domain": [
          "domain:vk.com",
          "domain:ifconfig.me",
          "regexp:\\.ru$"
        ],
        "outboundTag": "direct"
      }
    ],
    "domainStrategy": "IPIfNonMatch"
  }
  • 配置修改完成后,重启XRay服务使配置生效:
systemctl restart xray

内容的提问来源于stack exchange,提问作者Xhonor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:57:20