v2rayN 路由规则设置:国内直连、指定代理与 TUN 排查
简答:v2rayN 路由规则设置先按场景选入口:只让浏览器分流,用“自动配置系统代理 + 绕过大陆”;只代理少数网站,用黑名单或自定义规则;软件不读取系统代理时,再启用 TUN。国内直连、其余代理的 Xray 规则应把 geosite:cn 和 geoip:cn 放在前面,最后用 proxy 兜底。
定义:v2rayN 路由规则是由当前使用的 Xray 或 sing-box 核心,根据域名、IP、端口、网络类型等条件,把连接交给代理、直连或阻断出站的分流配置。
先选场景:三种设置直接照做
本文只讲 Windows 桌面版 v2rayN 的路由规则设置,不展开 Linux、macOS、Android 或 iOS 的界面步骤。本站是第三方使用指南站,不是 v2rayN 官方页面;菜单名称和选项可能随版本变化,但下面的入口名称、规则逻辑和验证方法以已检索到的官方资料为依据。
| 你的目标 | 先这样设置 | 规则重点 | 验证方法 |
|---|---|---|---|
| 浏览器国内直连、其他目标代理 | 主界面系统代理选择“自动配置系统代理”;路由功能选择“绕过大陆” | 使用预置规则,先不要导入自定义规则 | 浏览器访问国内与外部各一个目标,再查看主界面日志 |
| 只让少数网站走代理 | 系统代理选择“自动配置系统代理”;路由进入自定义规则 | 指定域名规则放前面,最后用 direct 兜底 | 查看目标域名是否出现在日志,以及出站标签是否正确 |
| 应用不读取系统代理 | 打开“设置 → Tun 模式设置”,再按权限要求启用 TUN | 确认虚拟网卡、自动路由和 DNS 接管状态 | 检查应用流量是否出现在 v2rayN 日志 |
v2rayN 官方 Wiki 将系统代理和核心路由分为两层:系统代理把部分应用流量送入核心,核心路由再决定连接走哪个出站;官方给出的常规组合是“自动配置系统代理”加“绕过大陆”。查看 v2rayN 系统代理和路由说明
- 先确认核心。打开“设置 → Core 类型设置”,查看当前配置使用的是 Xray 还是 sing-box。下面的数组模板按 Xray 自定义路由格式书写,不能直接当作 sing-box 配置。
- 先选系统代理入口。普通浏览器测试时,打开主界面底部或托盘菜单中的系统代理选项,选择“自动配置系统代理”。如果其他软件已经设置过系统代理,先关闭重复入口。
- 再选路由模式。只需要常见分流时,在主界面底部的路由功能下拉框选择“绕过大陆”;只代理少数域名时,进入“设置 → 路由设置”使用自定义规则。
- 保存后重新载入。修改规则后点击保存或应用,再重新启动当前核心。不同版本按钮文字可能不同,但必须让新配置重新生成后再测试。
v2rayN 全局、绕过大陆和黑名单怎么区分
预置模式的实际行为应以当前规则列表和默认出站为准,不要只根据模式名称猜测。v2rayN 官方资料明确说明,路由规则按列表顺序匹配,前面规则命中后,后面的规则不再处理;Xray 在没有规则匹配时会使用第一个出站作为默认路径。查看 v2rayN 自定义路由规则说明 查看 Xray Routing 官方文档
| 模式 | 适合场景 | 操作判断 |
|---|---|---|
| 全局代理 | 先验证节点和代理入口 | 未被更具体规则匹配的连接通常倾向代理;仍需检查默认出站 |
| 绕过大陆 | 常见国内直连、其他目标按代理策略处理 | 适合先验证浏览器分流,不建议一开始叠加大量自定义规则 |
| 黑名单 | 大部分目标直连,只代理少量指定域名 | 指定域名的 proxy 规则必须放在 direct 兜底之前 |
| 自定义规则 | 需要精确控制域名、IP、端口或 UDP | 由用户维护顺序、出站标签和核心兼容性 |
如果只是浏览器分流,建议先完成“自动配置系统代理 + 绕过大陆”这一步;如果浏览器测试成功,再新增一条指定域名规则。这样可以把入口问题和规则问题分开。
三步设置自定义规则:国内直连、指定代理和广告拦截
操作路径可以按“主界面 → 设置 → 路由设置 → 添加或编辑规则”执行。v2rayN 官方界面说明还提供从文件、剪贴板和订阅 URL 导入规则的入口;远程规则内容可能变化,导入前应保存原规则,订阅 URL 也不要公开粘贴或截图。查看 v2rayN 界面与路由设置说明
- 先确认出站标签。打开当前配置的出站或导出配置,确认是否真的存在名为
proxy、direct、block的标签。标签不存在时,把模板中的名称替换成当前配置里的实际名称。 - 从剪贴板导入或逐条添加。如果使用官方 Wiki 的 JSON 数组格式,可复制完整数组后选择“从剪贴板导入规则”;如果只修改一条,使用界面添加规则更容易回退。
- 按具体到宽泛的顺序排列。局域网直连和指定域名规则放前,国内域名和 IP 规则放中间,广告拦截按需要放在前部,最终兜底规则放最后。
模板 A:国内直连,其余目标代理。此模板兑现“国内直连、其他走代理”的场景。使用前必须确认当前 geosite.dat 和 geoip.dat 中存在对应分类;如果分类文件缺失或版本不匹配,结果需核实。
[{"remarks":"局域网IP直连","enabled":true,"ip":["geoip:private"],"outboundTag":"direct"},{"remarks":"局域网域名直连","enabled":true,"domain":["geosite:private"],"outboundTag":"direct"},{"remarks":"国内IP直连","enabled":true,"ip":["geoip:cn"],"outboundTag":"direct"},{"remarks":"国内域名直连","enabled":true,"domain":["geosite:cn"],"outboundTag":"direct"},{"remarks":"未匹配目标代理","enabled":true,"network":"tcp,udp","outboundTag":"proxy"}]
验证方法:先访问一个已知国内域名和一个需要代理的测试域名,分别查看主界面日志中的目标与出站标签。如果国内域名仍走 proxy,先查规则顺序、域名解析和 geosite 文件;如果外部目标走 direct,检查最后的 proxy 兜底是否被其他规则截断。
模板 B:指定网站强制代理,其余直连。把 example.com 换成你要测试的域名。domain:匹配该域名及子域名,full:只匹配完整域名。
[{"remarks":"指定域名代理","enabled":true,"domain":["domain:example.com"],"outboundTag":"proxy"},{"remarks":"指定登录域名代理","enabled":true,"domain":["full:login.example.com"],"outboundTag":"proxy"},{"remarks":"未匹配目标直连","enabled":true,"network":"tcp,udp","outboundTag":"direct"}]
验证方法:把测试规则临时放到规则列表最前,访问 https://example.com,再查看日志。如果日志没有该连接,先查系统代理或 TUN 是否接管应用;如果日志有连接但标签错误,查规则顺序和出站名称。
模板 C:广告域名拦截和 UDP 443 拦截。这是 v2rayN 官方自定义规则示例中出现的两类写法。UDP 443 常与 QUIC 相关,但阻断 UDP 443 只代表阻断匹配到的 UDP 443 连接,不等于所有 HTTP/3 或 QUIC 流量都能被识别。查看官方自定义规则示例
[{"remarks":"阻断UDP443","enabled":true,"port":"443","network":"udp","outboundTag":"block"},{"remarks":"阻断广告域名","enabled":true,"domain":["geosite:category-ads-all"],"outboundTag":"block"},{"remarks":"未匹配目标直连","enabled":true,"network":"tcp,udp","outboundTag":"direct"}]
验证方法:先只启用广告规则,访问一个明确会加载第三方资源的页面并查看日志;广告分类是否完整取决于当前规则文件,不应把“未命中”直接判断为客户端故障。启用 UDP 443 规则后,TCP 测试不能证明 UDP 或 QUIC 的行为。
Xray 与 sing-box 字段对照:不要直接混用
v2rayN 可以使用 Xray 或 sing-box 核心,但两者的路由结构不是同一种 JSON。Xray 的规则常用 outboundTag、domain、ip;sing-box 的 Route Rule 使用 outbound、domain_suffix、domain_keyword、domain_regex 和 rule_set 等字段。查看 Xray RuleObject 官方文档 查看 sing-box Route Rule 官方文档
| 需求 | Xray 写法 | sing-box 写法 | 注意 |
|---|---|---|---|
| 指定出站 | outboundTag":"proxy" | "action":"route","outbound":"proxy" | sing-box 新版将 outbound 放到 route action;旧写法需按版本核对 |
| 完整域名 | full:example.com | "domain":["example.com"] | sing-box 的 domain 表示完整域名匹配 |
| 域名及子域名 | domain:example.com | "domain_suffix":[".example.com"] | sing-box 使用 domain_suffix 表达后缀 |
| 关键词 | keyword:example | "domain_keyword":["example"] | 关键词范围可能较宽,先用单域名验证 |
| 正则 | regexp:\\.example\\.com$ | "domain_regex":["^.*\\.example\\.com$"] | 正则转义和大小写规则需按核心文档检查 |
| 地区分类 | geosite:cn、geoip:cn | 新版优先使用 rule_set;geosite 和 geoip 已标注为弃用 | 规则集名称和来源必须在当前配置中存在 |
| 进程匹配 | process,Windows 和 Linux 支持 | process_name 或 process_path | 进程匹配能力与平台、核心版本有关 |
sing-box 官方文档将 geosite 和 geoip 标为弃用,并建议使用 rule-set 体系;因此,切换到 sing-box 后不要把 Xray 的 geosite:cn 数组直接粘贴进去。应在“设置 → 路由设置”中检查当前 sing-box rule-set 来源,再使用对应的规则集标签。查看 sing-box Route 配置
系统代理与 TUN:什么时候关闭,什么时候同时用
系统代理和 TUN 是不同的流量入口。系统代理主要影响会读取 Windows 代理设置的应用;TUN 通过虚拟网卡和路由接管更多应用流量。v2rayN 官方界面说明显示,TUN 设置位于“设置 → Tun 模式设置”,其中包括协议栈、MTU、自动路由和路由排除地址等选项;Windows 使用 TUN 通常需要管理员权限运行,具体权限行为以当前版本提示为准。查看 v2rayN Tun 模式设置说明
- 只排查浏览器:先不要开 TUN。路径是“主界面 → 系统代理 → 自动配置系统代理”,路由选“绕过大陆”。这样变量较少,便于确认规则是否命中。
- 软件不读取系统代理:关闭系统代理或将其恢复为不改变系统代理,再使用“设置 → Tun 模式设置”启用 TUN。启用前保存当前网络状态,按 Windows 弹出的管理员权限提示操作。
- 需要同时使用时:只有在明确需要系统代理处理浏览器、TUN 处理不读取代理的应用时才同时开启。若开启后出现重复代理、连接循环或 DNS 异常,先关闭系统代理,仅保留 TUN 做单变量验证。
- 检查 TUN 结果:确认 TUN 开关处于运行状态、虚拟网卡已出现、自动路由已启用,并检查“路由排除地址”是否误排除了目标网段。
sing-box 官方 TUN 文档说明,自动路由会把默认路由指向 TUN;Windows 的严格路由还会影响 DNS 和部分虚拟化软件。因此,启用 TUN 后浏览器测试结果不能与只开系统代理时简单等同。查看 sing-box TUN 官方文档
规则不生效:按入口、配置、DNS、日志四层排查
- 先看入口。如果主界面日志完全没有目标域名或连接记录,优先查系统代理是否开启、应用是否设置了独立代理,以及 TUN 是否真的运行。只修改路由规则,不能让未进入核心的流量自动出现。
- 再看规则顺序。将一条测试规则临时移动到列表顶部。若移动后命中,说明原先被更宽泛的规则截断。兜底规则必须放在最后。
- 检查 outboundTag。确认
proxy、direct、block只是示例标签,实际名称以当前生成配置为准。标签拼写、大小写和核心类型都要一致。 - 检查生成配置和日志。主界面日志面板通常直接显示核心日志;如果在“设置”中开启“启用日志存到文件”,v2rayN 官方界面说明称日志会保存到
guiLogs文件夹。配置文件可通过“设置 → 打开存储所在的位置”定位,核心生成的config.json、预处理配置和测试配置应只用于核对,不要直接覆盖原文件。查看日志和存储位置说明 - 检查 DNS 和域名解析策略。在“设置 → 路由设置”查看“域名解析策略”,在“设置 → DNS 设置”检查直连 DNS、远程 DNS 和代理目标解析策略。v2rayN 官方界面说明指出,Xray 的 DNS 配置在路由阶段可用于 IP 规则匹配;sing-box 的直连 DNS 和远程 DNS 还参与节点域名、直连目标或代理目标的解析。
- 按核心检查策略。Xray 的
AsIs不主动解析域名,IPIfNonMatch在没有其他规则命中后再解析,IPOnDemand遇到 IP 条件时解析。若使用“国内 IP 直连、其他代理”,可先从IPIfNonMatch开始验证;若当前规则集或 DNS 结构不同,改动前应保存原值,最终行为以日志为准。查看 Xray domainStrategy 官方说明 - 检查 IPv6、UDP 和 QUIC。域名可能同时解析出 IPv4 和 IPv6;只写
network:tcp的规则不会匹配 UDP。阻断 UDP 443 后,应用可能回退到 TCP,也可能直接失败,不能把 TCP 页面打开当作 UDP 已验证。 - 最后排除应用自身设置。浏览器扩展、应用独立代理、进程级代理和安全软件都可能改变入口。若使用 TUN,确认应用进程没有被“路由排除地址”或其他排除设置绕过。
最小回退方案是:只保留一条指定域名规则和一条 network:tcp,udp 兜底规则,关闭 TUN,仅开自动配置系统代理;确认日志命中后,再一次只增加一个条件。
地区规则和规则文件:不要默认所有分类都存在
如果读者不在中国大陆,或只是想按其他地区分类分流,不应直接把 geosite:cn 和 geoip:cn 当作全球通用答案。Xray 官方文档说明,geosite: 使用本地 geosite.dat 中的预定义域名分类,分类名称必须实际存在;不同规则文件的标签覆盖范围可能不同。查看 Xray 预定义域名列表说明
例如,配置中若实际存在 geoip:ir 或 geosite:category-ru,可以把它们作为示例地区分类;但当前资料无法证明每个安装包或每份规则文件都包含这些标签,因此使用前请在当前配置或规则文件中核对,未找到时写“需核实”,不要直接导入。sing-box 则应优先检查当前可用的 rule_set 名称,而不是照搬 Xray 分类。
区域化配置的通用写法仍然是:目标地区域名规则放前、目标地区 IP 规则放后、局域网规则优先、最后放明确的代理或直连兜底。规则文件更新后要重新检查标签,因为远程规则来源、分类命名和内容都可能变化。
结论:先验证入口,再验证规则
v2rayN 路由规则设置可以固定成四层:系统代理或 TUN 是否把流量送进核心;规则是否按从上到下顺序匹配;出站标签是否真实存在;DNS、IPv6、UDP 和核心字段是否与当前配置一致。浏览器分流先用“自动配置系统代理 + 绕过大陆”,需要国内直连、其他代理时使用 geosite:cn、geoip:cn 加最后的 proxy 兜底;指定少数网站时,把 domain: 或 full: 规则放在 direct 兜底前。
切换 sing-box 后,不要直接粘贴 Xray 的 outboundTag、geosite:cn 或数组结构,应按 sing-box Route Rule 和 rule-set 文档重新组织。保存原配置、一次只改一个变量,并用日志确认目标与出站,是最小可回退的排查方式。
完成路由设置后,可继续用本站的 v2rayN 节点测速 页面区分节点问题与分流问题;如果浏览器整体打不开,再查看 连接问题排查。
常见问题
v2rayN 路由规则在哪里设置?
Windows 版通常可从主界面底部的路由功能下拉框选择预置模式,也可以进入“设置 → 路由设置”添加、编辑或导入规则。不同版本菜单文字可能变化,进入后应确认页面标题和当前核心类型。
v2rayN 国内直连、其他走代理怎么设置?
先确认当前使用的是 Xray 核心,并确认出站标签中存在 direct 和 proxy。自定义规则中把 geoip:cn、geosite:cn 指向 direct,最后添加 network: tcp,udp 指向 proxy;规则顺序必须是国内规则在前、proxy 兜底在后。分类文件是否包含这些标签需要在当前配置中核对。
只想让一个网站走代理,应该用什么规则?
使用 domain:example.com 可匹配 example.com 及其子域名;使用 full:login.example.com 只匹配完整域名。把规则指向实际存在的 proxy 出站,并放在 direct 兜底规则之前。
v2rayN 规则命中了,为什么应用还是直连?
先看主界面日志有没有该应用的连接记录。没有记录时,优先检查应用是否读取系统代理、是否设置了独立代理,以及 TUN 是否启用并接管流量;有记录但出站错误时,再检查规则顺序、标签和核心类型。
v2rayN 要不要同时开启系统代理和 TUN?
普通浏览器分流先只开系统代理,便于排查。应用不读取系统代理时再启用 TUN。只有明确需要浏览器使用系统代理、其他应用由 TUN 接管时才考虑同时开启;若出现循环代理或 DNS 异常,先关闭系统代理,仅保留 TUN 做单变量测试。
Xray 规则可以直接导入 sing-box 吗?
不能默认直接导入。Xray 常用 outboundTag、domain、ip 和 geosite,sing-box 使用 action、outbound、domain_suffix、domain_keyword、domain_regex 和 rule_set 等结构。切换核心后应按对应官方文档重新编写。
v2rayN 的域名解析策略选哪个?
Xray 中 AsIs 不主动解析域名,IPIfNonMatch 在未匹配后再为 IP 条件解析,IPOnDemand 遇到 IP 条件时解析。对于需要国内 IP 分流的场景,可先保存原值并尝试 IPIfNonMatch;最终应以当前规则、DNS 设置和日志结果为准。
广告拦截和 UDP 443 规则怎么写?
Xray 可使用 geosite:category-ads-all 指向 block,并用 port 443 加 network udp 指向 block。广告分类是否完整取决于当前规则文件;UDP 443 规则也不能代表所有 QUIC 流量都被识别。
相关阅读
参考资料
- GitHub - 2dust/v2rayN:桌面客户端与项目仓库
- Description of system proxy routing - 2dust/v2rayN Wiki
- Description of custom routing rules - 2dust/v2rayN Wiki
- Description of some ui - 2dust/v2rayN Wiki
- Routing RuleObject - Project X / Xray 官方文档
- Routing - Project X / Xray 官方文档
- Route Rule - sing-box 官方文档
- Route - sing-box 官方文档
- Tun - sing-box 官方文档