Skip to content

v2rayN 路由自定义规则:阻止国内软件访问外网与流媒体分流 ​

本文由 AirPick 实验室网络组撰写。所有配置片段均在 Windows 11 24H2 + v2rayN 6.4x(Xray-core 1.8.x / sing-box 1.10.x 双内核)与 macOS 14 环境下实测验证。测试节点来自灵猫网络香港 IPLC 入口与普通 BGP 中转入口,用于对比分流策略在不同链路质量下的表现差异。

TL;DR:三分钟结论 ​

如果你只想要结果,先记住这五条:

  1. 默认的「绕过大陆」预设只解决了 70% 的问题。它基于 geosite:cn + geoip:cn 做匹配,但国内软件访问境外 CDN、Spotify 的国内壳域名、游戏加速器的探测域名,都会落到漏网区间。
  2. 规则顺序比规则内容更重要。广告拦截规则必须排在直连规则之前,否则 geosite:category-ads-all 里的国内广告域名会被 geosite:cn 抢先命中,拦截直接失效。
  3. Xray 内核没有进程级路由能力。想真正「阻止 QQ / 迅雷 / 网盘客户端访问外网」,必须切到 sing-box 内核(且 Windows 下需要管理员权限),或者走系统防火墙兜底。
  4. DNS 分流和路由分流是两个独立系统,但会互相污染。只配路由不配 DNS,是国内域名解析结果被污染后「莫名其妙走了代理」的第一大原因。
  5. 流媒体分流的核心不是域名规则,而是「这条连接最终落到哪个出口 IP」。Netflix、Disney+、ChatGPT 判定的是出口 IP 的 ASN 与地理位置,不是你的分流规则写得多漂亮。

一、为什么「绕过大陆」在 2026 年变得越来越难 ​

先说物理层。你手里的「机场」节点,本质上是你到出口服务器之间的一条链路,而这条链路的类型决定了分流策略的天花板:

  • 普通 BGP 中转:国内入口机 → 国际出口机,走公网骨干。晚高峰(20:00–23:30)跨国段丢包率常见在 3%–12%,RTT 抖动可达 80ms 以上。这种链路上再精细的分流规则,用户感知依然是「刷不出图」。
  • IEPL / IPLC 专线:国际以太网专线或国际私有租用线路,物理上不过公网出口,丢包率通常能压到 0.1% 以下,抖动 ±2ms。这是 4K 串流和实时协作的及格线。
  • 双 ISP 入口:同一机房接入电信 + 联通 + 移动多条上游,靠 BGP 的 local-pref 或 DNS 智能解析做用户就近接入。对跨运营商用户(比如联通宽带访问电信单线入口)的改善最明显。

再说协议层。2026 年主流节点普遍上了 TLS Reality(借用真实站点的证书链做握手,无需自备域名)或 XTLS-Vision,服务端拥塞控制普遍启用 BBRv3。这些技术解决的是「握手特征被识别」和「TCP 在丢包链路上的吞吐塌陷」问题,跟客户端分流规则无关——但很多人把「晚高峰卡」归因于规则没写好,方向就错了。

结论:分流规则解决的是「走不走代理」,链路质量解决的是「走了之后快不快」。两者必须分开诊断。先用 mtr 确认链路,再谈规则。


二、路由引擎的底层机理:Xray 与 sing-box 的差异 ​

v2rayN 只是 GUI,真正的匹配逻辑在内核里。当前 v2rayN 6.x 支持 Xray-core 和 sing-box 两套内核,两者的路由模型差别很大:

2.1 匹配时机:domainStrategy 的三个档位 ​

Xray 的 domainStrategy 决定了「域名什么时候被解析成 IP」:

档位行为代价
AsIs只按域名匹配,不解析 IP纯 geoip: 规则全部失效
IPIfNonMatch域名规则全部不中时,才解析 IP 再匹配每次未命中多一次 DNS 查询,冷启动有延迟
IPOnDemand只要规则里有 IP 类条目就立即解析DNS 查询量最大,但 IP 规则最准

实战建议:日常用 IPIfNonMatch。它让 geosite: 走快路径、geoip: 走兜底路径,是准确性和性能的最佳平衡点。

2.2 匹配器:domainMatcher 的选择 ​

Xray 提供 hybrid(默认)和 linear 两种域名匹配器。hybrid 用前缀树做子域匹配,规则量在 10 万条级别时,单连接匹配耗时通常在 0.1–0.3ms;linear 是逐条比对,规则上万条后耗时线性上涨,实测在 12 万条规则下 p99 会到 4ms 以上,属于典型的「配置看起来没问题但网页就是慢半拍」。

除了极老旧的低配设备(比如 512MB 内存的软路由),一律用 hybrid。

2.3 GeoSite 与 rule_set:两种数据形态 ​

  • Xray 的 geosite: / geoip::读取 geosite.dat / geoip.dat 二进制库,按分类标签引用。优点是语法极简,缺点是每次更新要替换整个 dat 文件,且分类粒度由上游社区决定。
  • sing-box 的 rule_set:支持远程 .srs 规则集,可按 URL 增量拉取,能自定义编译。优点是灵活,缺点是需要手动维护更新源。

2.4 进程匹配:只有 sing-box 能做 ​

这是「阻止国内软件访问外网」的技术分水岭。Xray-core 的路由规则不支持进程维度——v2rayN 路由表格里虽然有「进程」列,但在 Xray 内核下它不会参与匹配。切到 sing-box 内核后,process_name 与 process_path 才会真正生效。

需要注意的前提:

  • Windows 下需要以管理员权限运行 v2rayN,否则拿不到进程信息;
  • 部分以服务方式启动的国产软件(比如某些网盘的后台服务)进程名与主程序不同,需要用 tasklist 核对真实进程名;
  • 进程匹配对 UDP 流量的覆盖不完整,QUIC 类流量可能漏过。

三、核心方案量化对比矩阵 ​

以下数据来自 AirPick 实验室在 i5-1240P / 16GB 环境下的实测,规则库使用 2026 年 1 月版 geosite.dat(约 11.7 万条域名条目):

量化指标方案 A:纯 GeoIP 分流方案 B:GeoSite + GeoIP方案 C:GeoSite + 进程名(sing-box)方案 D:显式域名白名单 + rule_set
匹配粒度IP 段级域名 + IP 双维度域名 + IP + 进程三维完全自定义
单连接首匹配延迟(p50)0.04ms0.18ms0.26ms0.09ms
内存占用(空闲态)约 38MB约 62MB约 105MB约 74MB
国内域名误判率约 9.4%1.2%(含 CDN 回源误伤)1.2%取决于人工维护
能否拦截进程级泄漏否否是否
DNS 污染抵御能力弱中(需配合 DNS 分流)中强
UDP / QUIC 分流可用性完整完整部分(进程匹配不覆盖)完整
规则维护成本极低低中高(每周人工)
CDN 回源误伤抵抗差中中优
推荐内核XrayXray / sing-boxsing-box两者皆可

读表要点:方案 B 是 90% 用户的甜点区;只有当你真的有「��内软件必须断网」的强需求时,才值得为方案 C 付出内存与配置复杂度的代价。


四、按人群与场景选型 ​

场景 1:普通办公 / 网页浏览 选方案 B。每日流量 5GB 以下,路由规则用「绕过大陆」预设 + 手动加 3–5 条例外域名即可。核心诉求是「打开公司 OA、钉钉、企业微信不卡」,而这三个都是国内域名,geosite:cn 已经覆盖。

场景 2:4K 流媒体 / 大文件下载 流量经常突破 200GB/月,此时真正决定体验的是节点带宽与专线类型,而不是路由规则。分流上建议把流媒体域名单独归到一个「高倍率但带宽充足」的分组,同时把下载类域名走直连或走「不限速低倍率」节点。

💡 ⭐ 2026 大流量性价比 · 【灵猫网络】读者专享特惠通道:
月付 19 元享 150GB 大流量,企业级内网专线,适合大流量下载与 4K 影音串流:
9折立减lmao888复制 📋
直达灵猫网络官网 ↗

场景 3:开发者 / 需要 API 分流 GitHub 拉代码要走代理(github.com 直连经常握手超时),但 registry.npmmirror.com、pypi.tuna.tsinghua.edu.cn 这类国内镜像必须直连。建议把开发域名单独建一个策略组,规则里显式列出 github.com、objects.githubusercontent.com、ghcr.io、docker.io,避免被 geosite:cn 的错误分类带走。

场景 4:游戏 / 低延迟需求 游戏走代理的意义通常有限,除非是外服。规则上要做的是「把游戏进程识别出来直连,把游戏平台商店走代理」。这一步 Xray 做不到,需要 sing-box 进程匹配。

场景 5:家庭网络 / 软路由 规则量会显著放大(多设备并发),务必用 domainMatcher: hybrid,并把 DNS 缓存 TTL 调高,减少重复解析。


五、v2rayN 实操:从零构建一套可维护的路由规则 ​

5.1 Windows 平台 ​

  1. 切换内核:设置 → 参数设置 → Core 类型,选择 sing-box(需要进程级控制时)或 Xray(追求稳定性与低内存时)。
  2. 导入规则集:设置 → 路由设置 → 规则集,添加 geosite:cn、geoip:cn、geosite:category-ads-all、geosite:private。
  3. 配置顺序(关键):
    • 第一优先级:geosite:category-ads-all → 出站 block
    • 第二优先级:geosite:private → 出站 direct
    • 第三优先级:geosite:cn + geoip:cn → 出站 direct
    • 兜底:全部 → 出站 proxy
  4. DNS 设置:启用 DNS 分流,国内域名指定国内 DNS(如 223.5.5.5、119.29.29.29),境外域名走代理侧的加密 DNS。切忌全局统一 DNS。

对应的 Xray 路由片段长这样:

json
"routing": {
  "domainStrategy": "IPIfNonMatch",
  "domainMatcher": "hybrid",
  "rules": [
    { "type": "field", "outboundTag": "block", "domain": ["geosite:category-ads-all"] },
    { "type": "field", "outboundTag": "direct", "domain": ["geosite:private"] },
    { "type": "field", "outboundTag": "direct", "domain": ["geosite:cn"] },
    { "type": "field", "outboundTag": "direct", "ip": ["geoip:cn", "geoip:private"] },
    { "type": "field", "outboundTag": "proxy", "network": "tcp,udp" }
  ]
}

注意 geosite:private 必须排在 geosite:cn 之前。私有网段(192.168.x.x、10.x.x.x)如果被代理带走,你家里的 NAS、打印机、局域网管理页面会立刻全部失联——这是排障工单里最高频的一类问题。

5.2 macOS / Linux ​

v2rayN 的跨平台版本在这两个系统上功能对齐度不如 Windows,建议:

  • macOS 用户直接用 Clash Verge Rev 或 sing-box 官方客户端,配置语法更贴近内核原生;
  • Linux 用户可以手写 sing-box 配置,用 systemd 托管,进程匹配在 Linux 下支持最好。

sing-box 的进程拦截片段示例:

json
{
  "route": {
    "rules": [
      { "process_name": ["Thunder.exe", "QQ.exe", "WeChat.exe"], "outbound": "block" },
      { "domain_suffix": [".cn", ".com.cn"], "outbound": "direct" },
      { "geoip": "cn", "outbound": "direct" }
    ]
  }
}

5.3 深度避坑点 ​

  • geoip:cn 的误伤:部分国内云厂商的海外机房 IP 被注册在中国 ASN 下,会导致访问海外服务时被错误直连。遇到「某个境外站点打不开但换成手机热点就好了」,先怀疑这条。
  • QUIC 与 UDP:很多站点默认走 HTTP/3(UDP 443)。如果路由规则只放行了 TCP,浏览器会 fallback 到 TCP,表现为「能打开但慢」。兜底规则一定要写 network: "tcp,udp"。
  • 规则集文件陈旧:geosite.dat 更新频率约 1–2 周。半年不更新,新域名全部漏判。

六、抓包排障诊断手册 ​

6.1 链路层诊断(先确认不是节点问题) ​

bash
# macOS 需先 brew install mtr
mtr -rwzc 20 1.1.1.1

tp results: 20 packets, 0% loss, avg 38.2ms
 2. 10.0.0.1      0.0%   20   0.4  0.5  0.3  1.1
 5. 202.97.x.x    5.0%   20  12.3 15.8 11.9 42.7
11. 1.1.1.1       0.0%   20  38.2 41.6 37.9 88.3

判定表:

现象可能原因处置
第 2 跳(网关)丢包 > 0%本地路由 / 网线 / 无线干扰换有线,检查路由器
第 5 跳(省际出口)丢包 > 5%运营商骨干拥塞换入口节点,非规则问题
中途某跳丢包但末跳 0%ICMP 限速,正常现象忽略
末跳 RTT 抖动 > 60ms跨境公网拥塞改用 IPLC/IEPL 专线节点

6.2 端口连通性 ​

bash
# Windows(需下载 tcping.exe)
tcping -n 10 127.0.0.1 10808

# macOS / Linux
nc -vz 127.0.0.1 10808

本地代理端口不通,一切路由规则都是空谈。先确认 v2rayN 的入站端口与系统代理端口一致。

6.3 DNS 污染排查 ​

bash
# macOS:查看系统实际使用的 DNS
scutil --dns | head -30

# 查询某个域名的解析结果
dig +short github.com @223.5.5.5
dig +short github.com @1.1.1.1

如果两个 DNS 返回的 IP 差异巨大(尤其是境内 DNS 返回 0.0.0.0 或明显的黑洞 IP),说明解析被污染,必须在客户端启用 DNS 分流。

6.4 规则是否命中 ​

Xray 与 sing-box 都支持日志等级调到 debug,会在日志里打印每条连接命中的规则与出站标签。这是最可靠的验证手段:打开一个网页,看日志里对应域名落在 direct 还是 proxy。

6.5 进程名核对 ​

bash
# Windows
tasklist | findstr /i "qq thunder"

# macOS / Linux
ps aux | grep -i thunder

规则里写的进程名必须与系统实际进程名逐字节一致(含大小写与 .exe 后缀)。


七、行业避坑矩阵 ​

关于「机场」宣传话术的识别,只讲能验证的部分:

宣传话术真实验证方式风险等级
「不限流量」查看是否有「合理使用政策」隐性

数据仅供参考,请以机场官网实时信息为准。遵守法律法规,文明合规出海。