系统代理解决应用流量怎样进入客户端,路由模式解决进入之后走哪个出口。日常浏览可从绕过大陆开始;排查规则误匹配时短暂切换全局;访问内网时检查直连规则。下面分别说明桌面与安卓的操作入口,再用明确指定代理端口的请求验证,避免把“节点已连接”误当成“所有应用都在走代理”。
系统代理与路由模式:先分清接入和出口
v2rayN 是管理节点、订阅和运行内核的图形客户端。应用请求先通过本地代理入口进入内核,再由路由规则选择直连、代理或阻断等出口。系统代理只是在操作系统中登记代理地址,让遵循该设置的应用把请求交给本地入口;它本身不决定目标网站最终走直连还是远端节点。
- 接入层:浏览器读取系统代理,或者应用手动使用 HTTP、SOCKS 代理;TUN 则通过虚拟网络接口接入符合接管条件的流量。
- 决策层:内核读取目标域名、目标 IP、端口等信息,按当前规则进行匹配。
- 出口层:命中直连时由本机网络访问目标;命中代理时通过选定节点建立远端连接。
因此,“系统代理已打开,为什么国内网站仍然直连”通常不是故障:如果当前路由是绕过大陆,国内目标直连正是预期行为。反过来,“路由已切全局,某个游戏仍不走节点”也可能只是游戏没有使用系统代理,请求根本没进入内核。
全局、绕过大陆、直连:三种路由的实际区别
不同版本的预设规则名称可能略有差异。判断时不要只看模式名称,应同时检查规则内容、顺序和默认出口。下表概括常见预设的意图,不替代当前配置中的具体规则。
绕过大陆:日常分流
推荐大陆域名或 IP、局域网地址通常按预设直连,其他目标通常交给代理。分类依赖规则数据和可用于匹配的目标信息,不能保证所有网站都按用户的地理直觉分类。
适合:日常办公、国内外网站混用、减少不必要的节点流量
全局:统一代理出口
已进入内核的普通请求通常走代理,适合快速比较分流前后的结果。某些预设仍保留内网直连等例外,是否保留要看实际规则。
适合:短时间诊断分流问题、需要统一远端出口的应用
直连:本机网络出口
进入内核的请求通常直接访问目标,不经过所选远端节点。客户端仍可能负责本地接入与解析,因此它与停止客户端、清除系统代理不是同一操作。
适合:验证本地网络、仅访问本地可达资源
判断方法:同一请求只改路由模式
目标在绕过大陆下失败、全局下成功时,先查该目标命中的规则和解析结果;两种模式都失败时,优先查本地接入、节点与远端连接,不要反复更换规则。
节点使用 VMess、VLESS 或其他协议,不会自动决定分流方式。订阅导入主要提供节点参数;是否包含额外配置、客户端是否采用这些配置,需要单独确认。更新订阅后也应复查当前节点和路由,不能假定两者永远保持不变。
v2rayN 与 v2rayNG:分别在哪里设置
以下以 Windows 上的 v2rayN 和安卓上的 v2rayNG 为例。客户端版本、界面布局与翻译可能变化,操作时以当前页面显示的设置名称为准。修改前先记录原值,避免一次变更多项后无法判断原因。
操作方案:先建立接入,再选择路由
桌面端:v2rayN
- 选择一个有效节点,确认内核已经运行。
- 在托盘菜单「系统代理」中选择「自动配置系统代理」,让遵循系统设置的应用使用本地入口。
- 在主窗口的「路由」选择入口中选用绕过大陆或全局预设。
- 从「设置」→「参数设置」检查本地监听配置;记下实际端口,不照抄其他设备的数值。
安卓端:v2rayNG
- 选择节点并点击连接,按系统提示授权 VPN 连接。
- 进入侧边菜单「设置」→「路由设置」,检查当前路由模式;部分版本也提供独立的路由配置入口。
- 如果开启分应用代理,确认目标应用在实际接管范围内,尤其留意“仅代理所选应用”和“绕过所选应用”的区别。
- 连接后重新打开目标应用,用新建连接验证,避免旧连接干扰判断。
桌面系统代理与安卓 VPN 接入不是同一个开关;两端即使选用同一节点,也要分别核对接入范围和路由规则。
v2rayNG 使用 Xray 内核;v2flyNG 使用 v2fly 内核。两者都是安卓客户端,但配置入口和支持细节不能简单互套。v2rayN 的内核及其设置也应以当前安装版本和配置为准。比较设备表现时,至少记录客户端版本、内核版本、接入方式和路由名称这四项。
用本地端口验证:请求到底有没有进入代理
先做一个可复现的小测试。下面假设已在测试配置中设置 HTTP 入口为 127.0.0.1:10809、SOCKS 入口为 127.0.0.1:10808。这些是示例配置值,不是所有版本的固定默认值;如果当前使用混合端口,应按实际入口填写。
在 Windows 终端中使用 curl.exe,可以避免部分命令环境把 curl 解释成其他命令。以下请求只取响应头;若测试站点不接受 HEAD 请求,可去掉 -I 后重试。示例地址用于验证连通性,不是测速服务。
# 不使用代理,检查本机直连
curl.exe --noproxy "*" -I --max-time 15 https://example.com/
# 明确使用本地 HTTP 代理
curl.exe --noproxy "" --proxy http://127.0.0.1:10809 -I --max-time 15 https://example.com/
# 明确使用 SOCKS,并把目标域名交给代理侧处理
curl.exe --noproxy "" --proxy socks5h://127.0.0.1:10808 -I --max-time 15 https://example.com/
- 本地连接立即被拒绝:先检查端口、监听地址和内核运行状态;这时尚未证明远端节点有问题。
- 显式代理请求成功,普通浏览失败:检查浏览器是否遵循系统代理,是否有独立代理设置,以及是否仍在使用旧连接。
- 请求进入内核后超时:结合日志中的目标与出站信息,继续检查节点可达性、握手和 DNS;仅凭超时不能断言是路由问题。
- 返回 HTTP 状态码:说明至少收到了 HTTP 响应;出现 403 等状态仍可能是目标服务的访问策略,不等于代理链路断开。
socks5h 把域名交给代理处理,但最终在哪里解析、采用哪个解析器,仍取决于内核的 DNS 与路由配置。不要把这个参数理解为“保证全部 DNS 都经过远端节点”。
办公、游戏、开发:按应用选择路由
路由模式不是速度档位。多绕一次远端链路可能增加延迟,直连也可能受本地网络质量影响。先确认应用需要哪些目的地,再选择接入方式和出口,比反复切换“全局”更有效。
| 场景 | 起始方案 | 重点检查 |
|---|---|---|
| 办公与网页浏览 | 系统代理配合绕过大陆 | 公司内网域名、会议服务、文件上传是否按预期直连 |
| 局域网打印与 NAS | 内网地址直连 | 例如 192.168.1.10 的路由,以及内网域名的解析来源 |
| 联网游戏 | 先确认是否支持代理接入 | UDP 转发、TUN 接管、节点支持和游戏服务器区域 |
| 终端与开发工具 | 在工具中显式配置代理 | 工具自身代理选项、环境变量和内网地址排除列表 |
| 分流故障诊断 | 对同一目标短暂切全局 | 只改变路由变量,对照新连接与日志结果 |
许多游戏不读取桌面系统代理,尤其不能把 HTTP 代理当成通用 UDP 通道。即使启用了 TUN,也仍要确认节点、协议与服务端支持相应流量。游戏中的延迟主要取决于路径、拥塞和丢包,不能根据网页打开速度推断。
开发工具也常有自己的代理配置。终端设置环境变量后,只有读取这些变量的程序才会使用;已经启动的进程还可能保留旧环境。内网仓库或测试服务应配置合适的排除项,避免把只能在公司网络解析的域名交给不合适的解析路径。
绕过大陆不准确:按规则、DNS、连接顺序排查
“大陆网站”是使用者的描述,规则匹配看到的却是域名、IP 和其他条件。一个中文网站可能使用境外接口,同一页面也可能同时请求多家 CDN、登录服务与媒体资源。页面部分加载失败时,应找出失败的具体域名,而不是给整个网站直接下结论。
- 确认新请求已接入。使用明确指定本地代理端口的命令复测;如果内核没有相关记录,先查接入方式与日志级别。
- 核对规则顺序。路由通常按顺序匹配,前面的宽泛规则可能截住后面的精确规则。新增域名直连规则后,还要确认它位于会覆盖它的规则之前。
- 核对规则数据。
geosite:cn是域名分类,geoip:cn是 IP 分类;它们不是同一种判断。更新规则数据后也可能出现匹配结果变化。 - 核对 DNS 与目标信息。IP 规则可能依赖已有目标 IP,或依赖当前域名策略触发解析;浏览器安全 DNS、内核解析和企业内网解析之间的差异,都值得检查。
- 重建连接再观察。修改路由未必改变已建立连接的出口。关闭相关连接或重新打开应用后再测,必要时重新连接客户端。
执行顺序:先固定入口,再调整一条规则
保留一组可重复的测试请求,先确认端口可达,再记录命中出口;只有绕过大陆与全局的结果确实不同时,才针对目标域名调整规则。验证完成后恢复日常模式,保留修改记录。