#3667·v2ray-core

Routing Failure: Sniffed domains fail to match field rules

Author: swoiowCreated Apr 5, 2026Updated Aug 8, 2026

你正在使用哪个版本的 V2Ray?

V2Ray 5.47.0 (Started at 2026/04/05)

你的使用场景是什么?

使用透明代理(Dokodemo-door)对设备流量进行分流,开启了流量嗅探(Sniffing),并希望通过 routing 中的 balancerTag 将特定域名(如 iCloud Private Relay)分发至指定的负载均衡组。

你看到的异常现象是什么?

虽然日志显示 V2Ray 已经成功嗅探(Sniffed)到了正确的域名(例如 mask.icloud.com),但是路由匹配却跳过了对应的规则,直接落入 default route 并最终被 [Reject] 丢弃。

根据日志显示:

  1. app/dispatcher: sniffed domain: mask.icloud.com (成功嗅探)
  2. app/dispatcher: default route for udp:mask.icloud.com:443 (未能匹配预设规则)
  3. accepted ... [Reject] (命中默认规则)

你期待看到的正常表现是怎样的?

既然 routing 规则中已经明确列出了 mask.icloud.com 等域名,且嗅探结果一致,流量理应命中该规则并分发至 balancerTag: NODES|Asia,而不是落入默认路由。

请附上你的配置

客户端配置:

{
  "routing": {
    "domainMatcher": "mph",
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      // ip
      {
        "balancerTag": "NODES|Asia",
        "description": "iCloud Private Relay ",
        "ip": [
          // Apple 自有 A 类大段 涵盖绝大部分私密代理入口
          "17.0.0.0/8",
          // 极其重要 Cloudflare 为 Apple 私密代理提供的专用 IP 段
          "104.28.0.0/14",
          // Akamai 承载的 Apple 边缘节点
          "172.224.0.0/12",
          // Apple 专用业务段
          "192.35.50.0/24"
        ],
        "network": "tcp,udp",
        "type": "field"
      },
      // domains
      {
        "type": "field",
        "balancerTag": "NODES|Asia",
        "domains": [
          "geosite:netflix",
          "geosite:viu",
          "geosite:tvb",
          "geosite:riot",
          "geosite:kkbox",
          "domain:cos.ap-hongkong.myqcloud.com",
          "domain:content-storage-upload.googleapis.com",
          "mask.icloud.com",
          "mask-api.icloud.com",
          "mask.apple-dns.net",
          "mask-api.fe.apple-dns.net",
          "mask-h2.icloud.com",
          "weatherkit.apple.com"
        ],
        "network": "tcp,udp"
      }
      // ... 其他规则
    ],
    "balancers": [
      {
        "tag": "NODES|Asia",
        "selector": ["Asia"]
      }
    ]
  }
}

请附上出错时软件输出的错误日志

客户端错误日志:

2026/04/05 17:26:30 [Info] app/dispatcher: sniffed domain: mask.icloud.com for udp:17.248.152.134:443
2026/04/05 17:26:30 [Warning] [3569452409] app/dispatcher: default route for udp:mask.icloud.com:443
2026/04/05 17:26:30 10.*.*.*:53322 accepted udp:17.248.152.134:443 [Reject]

2026/04/05 17:26:30 [Info] [1803155011] app/dispatcher: sniffed domain: mask-h2.icloud.com for tcp:17.248.152.112:443
2026/04/05 17:26:30 [Warning] [1803155011] app/dispatcher: default route for tcp:mask-h2.icloud.com:443
2026/04/05 17:26:30 10.*.*.*:52555 accepted tcp:17.248.152.112:443 [Reject]

请附上访问日志

2026/04/05 17:26:30 10.*.*.*:53322 accepted udp:17.248.152.134:443 [Reject]
2026/04/05 17:26:30 10.*.*.*:52554 accepted tcp:17.248.152.109:443 [Reject]
2026/04/05 17:26:30 10.*.*.*:52555 accepted tcp:17.248.152.112:443 [Reject]

  1. 排除 network 配置不足的可能性。

  2. ip, domains均配置。

  3. 排除 domainMatcher,domainStrategy 的可能?

  4. 排除 0.0.0.0 的可能性,因为有IP。

  5. default route for tcp:mask-api.icloud.com:443 说明,mask-api.icloud.com:443没有被捕捉。**dispatcher 没找到匹配规则,于是走默认路由。**也就是说:

  6. mask-api.icloud.com:443 没命中任何 rule

  7. 掉到 default route

  8. default outbound = Reject

  9. 所以日志显示 [Reject]

而不是:

  1. 命中了某条显式 Reject rule
  2. 所以被拒绝

最后归因,估计是匹配引擎问题