v2rayN 国内外分流实战:国内直连、海外走代理的路由模式设置

从「绕过大陆」预设讲起,逐项说明直连、代理、阻断三类出站,演示国内网站直连、海外服务走代理的分流配置和验证方法。

本文速览

适合已经导入订阅、能够连接节点,但还没有理清系统代理和路由模式的桌面用户。先让浏览器流量进入 v2rayN,再用「绕过大陆」预设区分直连与代理,最后用连接日志验证结果。全程先保留预设,只为确有需要的域名增加例外规则。

先分清系统代理与路由分流

系统代理解决“请求是否进入客户端”,路由规则解决“进入以后从哪里出去”。两者不是同一个开关。即使选择了「绕过大陆」,未使用系统代理、也没有单独配置代理的程序,仍可能直接通过原网络访问。

以浏览器访问网页为例,开启系统代理后,支持读取系统代理设置的浏览器把连接交给本地监听端口;内核再根据目标域名、目标 IP 等条件匹配规则。匹配到直连的请求从本机网络发出,匹配到代理的请求交给所选节点。

浏览器请求 本地代理入口 路由规则匹配 选择出站 目标服务

因此,“设置系统代理”不等于“所有网站走节点”,“清除系统代理”也不等于关闭客户端里的路由规则。开始排查前,先确认请求有没有进入内核,再看命中了哪条规则,避免在错误的环节反复修改。

启用「绕过大陆」并保留原配置

不同 v2rayN 版本的菜单位置和预设名称可能略有调整。常见桌面界面可从「设置」→「路由设置」管理规则,再从主界面底部的路由选择项切换方案。这里的「绕过大陆」指国内域名或地址直连、其余请求通常交给代理的预设,具体出站由域名和 IP 匹配规则决定。

  1. 记录当前配置。记下当前路由方案、系统代理状态和活动服务器。准备修改预设时,优先复制为自己的方案;界面支持导出时,同时保存一份备份。
  2. 确认节点可用。导入订阅后选择一个活动服务器,先确认该节点能正常连接。订阅链接负责提供服务器配置,不会自动替用户决定全部路由策略。
  3. 检查本地入口。打开「设置」→「参数设置」,找到本地监听端口相关项目。记录界面实际显示的地址、端口和支持的代理协议,不要照抄别人的端口。
  4. 设置系统代理。在主界面或托盘菜单的「系统代理」项选择「自动配置系统代理」。确认不是仍停留在「清除系统代理」。
  5. 选择分流预设。在路由选择项切换到「绕过大陆」或说明等价的方案。检查其规则是否包含国内直连,以及未命中规则时的默认去向。
  6. 重新发起连接。保存设置,按界面提示重启内核。关闭旧网页连接后再访问测试站点,避免沿用切换前已建立的连接。

不要把「全局代理」作为国内外分流的最终状态。它适合临时判断节点能否访问目标服务,但会改变国内网站的出口位置。测试完应切回目标分流方案,再重新建立连接。

10808
下文命令使用的示例本地端口
443
HTTPS 常用目标端口
53
传统 DNS 常用服务端口

这三个数字分别属于本地入口、网页目标服务和域名解析,不能互相替代。下文的 10808 只是演示值,不代表所有安装的默认端口;如果实际监听端口不同,测试命令也必须一起修改。

理解直连、代理、阻断与规则顺序

路由规则通常按从上到下的顺序匹配,先命中的规则决定出站。某条宽泛规则放得太靠前,后面的精确例外就可能失效。开始自定义时,只新增一条确有需要的例外,并放在会与它冲突的宽泛规则之前。

出站类别连接路径适用情况验证重点
直连本机网络直接连接目标国内站点、局域网设备日志显示直连出站,而非节点出站
代理通过活动服务器连接目标需要代理访问的海外服务日志显示代理出站,节点连接正常
阻断内核拒绝或丢弃匹配连接明确不希望访问的特定域名请求失败,并出现对应阻断记录

界面中的“直连”和配置里的出站标签不是一回事。某份配置可能使用 direct、proxy、block 作为标签,但标签只是名称,必须对应实际存在的出站定义。不要仅改一个单词,就认为已经建立了对应的连接方式。

国内直连规则

域名条件
geosite:cn
IP 条件
geoip:cn
目标出站
已有的直连出站
组织方式
域名、IP 分为两条规则

同一规则同时填写 domain 与 ip 时,通常需要同时满足;分开写更符合“任一条件命中即可直连”的意图。

海外代理例外

精确域名
full:example.com
域名及子域
domain:example.com
目标出站
已有的代理出站
规则位置
放在冲突的宽泛规则前

example.com 用于演示语法;实际配置时填写需要调整的服务域名,不要把演示域名当成服务清单。

geosite:cn 是域名分类,不是“所有中文网页”;geoip:cn 是 IP 分类,也不等于网站经营主体所在地。服务可能使用海外 CDN,国内域名也可能解析到不同地区的地址,所以要以实际请求和命中日志判断,不能只看网页名称。

用最小规则理解自定义分流

下面展示 Xray 路由结构中的一个片段,帮助理解精确例外、国内域名直连、国内 IP 直连的顺序。它不是完整客户端配置,也不是可以直接粘贴到任意 v2rayN 规则导入窗口的格式。使用界面编辑时,将相同条件分别填入对应规则即可。

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "domain": ["full:example.com"],
        "outboundTag": "proxy"
      },
      {
        "type": "field",
        "domain": ["geosite:cn"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "ip": ["geoip:cn"],
        "outboundTag": "direct"
      }
    ]
  }
}

阻断规则同样遵循先命中原则。只有明确知道目标域名用途时才添加,并先用一个精确域名测试。把整个共享域名分类直接阻断,可能连带影响登录、验证码或静态资源,表现为网页能打开但关键功能不可用。

验证国内直连和海外代理是否生效

验证要同时看“连接成功”和“出站正确”。网页打开得快,不代表一定直连;某个出口查询页面显示节点地址,也只能说明该查询请求的路径,不能证明其他网站都采用相同路径。

  1. 查看内核日志。在 v2rayN 的日志区域寻找新连接记录。如果当前日志级别没有连接信息,可在「设置」→「参数设置」中的内核相关选项临时将日志级别调整为 info,应用后重新测试。
  2. 单独测试国内网站。访问一个日常使用的国内站点,例如 www.baidu.com。按域名或解析后的目标地址查找记录,确认对应的是直连出站。
  3. 单独测试海外服务。访问实际需要代理的服务,确认新连接走代理出站。一个页面可能请求多个域名,要区分主页面、登录接口与图片资源。
  4. 记录修改前后结果。写下测试时间、路由方案、目标域名、出站标签和错误提示。每次只改一项,避免同时切换节点、DNS 和路由后无法判断原因。

也可以用命令行明确指定本地 HTTP 代理入口,排除程序没有读取系统代理的情况。以下命令适用于 Windows 的 curl.exe,前提是 127.0.0.1:10808 确实提供 HTTP 代理;如果该端口只支持 SOCKS,就不能照搬这个写法。

curl.exe --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://www.baidu.com/
curl.exe --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://www.wikipedia.org/

命令里的 10 秒是连接超时上限,20 秒是整次请求的时间上限,不是速度测量结果。第二个域名只是海外服务测试对象,是否实际走代理仍应以当前规则和日志为准。出现 HTTP 状态码说明收到了响应,但具体状态还可能受站点访问策略影响。

结论:用两次新连接核对出站

分别请求一个国内站点和一个需要代理的海外服务,在日志中找到各自的新连接。只有看到前者走直连、后者走代理,才能确认这组测试达到了分流目标;不要只凭一个出口 IP 页面下结论。

处理分流不准、网页失败与订阅更新疑问

DNS 是分流中经常被忽略的一层。浏览器启用安全 DNS 后,域名解析可能由浏览器自行完成;请求以 IP 进入内核时,域名规则能否命中又取决于入站信息和嗅探设置。不要一遇到问题就全局开启嗅探,先确认日志中究竟拿到了域名还是只有 IP。

选了「绕过大陆」,国内网站怎么还走代理?

先查是否有靠前的全匹配代理规则,再确认访问域名是否在分类中。若只对一个服务有明确需求,可在国内分类规则前添加该服务的精确直连规则。不要为了一个域名直接把所有未命中流量改为直连。

浏览器正常,其他程序为什么不走代理?

打开该程序时观察是否产生新的内核连接记录。如果没有,说明它可能未读取系统代理;先在程序内指定实际的本地代理地址和协议。必须接管这类程序时,再单独评估 TUN,并保留已有路由策略。

海外网页打不开,要不要先换 DNS?

先用临时全局代理测试同一节点和目标。全局可访问、分流失败时,重点查命中规则和域名解析;两种模式都失败时,先检查节点连接及日志。调整 DNS 前记录原设置,每次只换一项,完成后重新建立连接。

更新订阅会把自定义规则清掉吗?

常规订阅更新主要刷新服务器条目,自定义路由通常独立保存。导入整套配置、恢复备份或重置设置则是另一类操作。修改前导出路由或复制方案,更新后核对活动服务器和当前路由,不要把订阅更新当成规则维护。

完成测试后,把临时提高的日志级别调回日常设置,并保留一份已验证的路由方案。向他人求助时,只提供必要的目标域名、错误信息和经过处理的配置片段;订阅链接、节点凭据以及包含访问记录的完整日志不宜公开。

下载客户端