系统代理决定遵循该设置的应用是否把请求送进本地代理,路由模式决定请求进入内核后走哪个出口。日常可从“设置系统代理+绕过大陆”开始,再通过日志核对命中规则;全局模式用于统一代理出口或对照排错,直连模式用于验证本机网络。本文同时给出端口检查、命令行测试和切换后的验证步骤。
系统代理与路由模式:先分清入口和出口
v2rayN 是桌面客户端,负责管理节点、启动代理内核以及调整相关设置。系统代理不是节点,也不是路由规则:它告诉遵循系统代理的应用,应当把请求交给哪个本地地址。内核收到请求后,才会根据路由配置决定使用代理出站、直连出站或阻断出站。
因此,“已经选了全局,为什么某个程序仍然直连”并不矛盾。如果该程序忽略系统代理,没有手动配置本地代理,也没有被其他流量接管机制接入,它的连接根本没有进入内核。路由规则无法处理尚未进入代理的请求。
- 应用层:浏览器、命令行或其他程序决定是否使用系统代理,也可能使用自己的代理配置。
- 本地入口:请求到达本机 HTTP、SOCKS 或混合监听端口,由内核接收。
- 路由判断:按域名、目标 IP、端口等条件依次匹配规则。
- 出站连接:通过选定节点连接目标,或由本机网络直接连接目标。
全局、绕过大陆与直连:三种路由怎么选
模式名称描述的是一组路由规则,而不是固定的网络效果。v2rayN 的不同界面和自定义规则集可能使用不同名称,实际行为应以当前规则顺序、匹配条件与默认出站为准。尤其是“绕过大陆”,不能理解为对所有站点地理位置的实时识别。
绕过大陆分流
推荐常见规则将大陆域名、境内目标 IP 和局域网地址交给直连,其余请求交给代理。域名分类与 IP 分类来自规则数据,遇到 CDN、域名未收录或 DNS 结果变化时,实际出口需要查看日志确认。
适合:境内外网站混合访问,日常桌面浏览
全局代理路由
通常将未被前置例外规则处理的请求交给代理节点。适合对比分流是否误判,但不代表应用全部接入代理,也不代表局域网、DNS 等流量必然采用同一出口。
适合:需要统一代理出口,或临时验证分流规则
直连路由
进入内核的请求通常由直连出站连接目标,不经远端节点转发。本地监听仍可继续工作,适合在保持应用代理设置不变时,对照检查本机网络能否访问目标。
适合:本地网络对照测试,只需直接访问目标
判断顺序:先确认接入,再比较路由
先让同一条请求明确进入本地监听端口,再分别测试绕过大陆与全局。只有前者失败、后者成功,且日志显示出口发生变化时,才优先检查分流规则;不要同时更换节点、端口和 DNS。
v2rayN 设置步骤:入口与路由分开调整
先启动客户端并选定一个已有的可用节点,再检查本地监听。Windows 常见入口是任务栏托盘图标右键菜单中的“系统代理”与“路由”;桌面界面也可能提供相应选择器。macOS 的菜单位置和系统授权提示可能不同,不应直接套用 Windows 托盘的操作位置。
- 检查监听:打开「设置」→「参数设置」,查找本地监听端口或入站相关选项,记录当前端口及其协议类型。不同界面的选项位置可能调整,以当前页面标注为准。
- 设置入口:在“系统代理”菜单中选择“自动配置系统代理”或当前界面中含义相同的设置项,让遵循系统代理的应用使用本地监听。
- 选择路由:在“路由”选择器中选中绕过大陆规则集。若使用导入的规则集,先确认它的默认出站和私有地址规则。
- 建立新连接:应用设置后重新访问目标。必要时关闭旧页面连接或重启测试应用,避免连接复用干扰结果。
- 核对日志:确认内核已启动、监听成功,再检查目标请求所选的出站。若当前日志级别没有显示访问记录,可临时启用相应访问日志,测试结束后恢复。
“清除系统代理”只撤销系统层面的代理设置,不会自动删除浏览器扩展中的代理配置、终端环境变量,也不等于关闭 TUN。“不改变系统代理”则通常表示客户端不主动修改现状,不能把它当成“已关闭代理”的证据。
| 设置组合 | 遵循系统代理的应用 | 需要核对的边界 |
|---|---|---|
| 设置系统代理+绕过大陆 | 先进入内核,再按规则分流 | 规则数据与 DNS 结果可能影响命中 |
| 设置系统代理+全局 | 进入内核后通常走代理节点 | 前置例外规则仍可能直连或阻断 |
| 设置系统代理+直连 | 进入内核后由本机直接连接 | 不是关闭本地代理服务 |
| 清除系统代理+任意路由 | 不再因该系统设置接入 | 手动代理、环境变量和 TUN 另行检查 |
本地端口与命令测试:验证请求是否进入内核
下面使用一组明确的示例值:HTTP 监听为 127.0.0.1:10809,SOCKS 监听为 127.0.0.1:10808。这些不是所有版本的默认值;部分配置只使用一个混合端口。执行命令前,必须将端口替换成参数设置中实际启用的值,不能把 HTTP 请求随意发给仅支持 SOCKS 的端口。
Windows 可在终端使用 curl.exe,避免部分 PowerShell 环境中的同名别名影响参数解析。以下两个命令显式指定代理,不依赖系统代理是否开启;示例目标用于检查 HTTP 响应,不能单凭一次成功就认定所有网站和协议均正常。
curl.exe --proxy http://127.0.0.1:10809 --connect-timeout 5 --max-time 15 -I https://example.com/
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 5 --max-time 15 -I https://example.com/
macOS 终端可将命令名改为 curl。第二条命令中的 socks5h 表示由代理侧处理目标域名解析,而不是先由 curl 在本地解析成目标 IP;这会影响内核收到的目标信息,也可能影响域名规则匹配。测试时应记录所用代理协议,避免把两种解析路径混为一谈。
- 连接本地端口被拒绝:先检查内核是否运行、端口是否正确,以及该监听是否支持所用协议;此时尚未进入节点连通性判断。
- 本地接入成功但远端超时:结合日志检查节点连接、目标连接与 DNS,不能直接断定订阅失效。
- 命令成功而浏览器失败:优先检查浏览器自己的代理设置、扩展和已有连接,确认它是否采用相同入口。
绕过大陆的规则边界:域名、IP 与 DNS
常见 V2Ray 或 Xray 路由会使用 geosite:cn 作为域名分类条件,使用 geoip:cn 作为 IP 分类条件;它们依赖对应规则资源,并非内核凭空判断地理位置。域名在大陆分类内,不代表它每次解析出的服务器都位于同一地区;目标 IP 属于某地区,也不代表网站所有服务都应走同一出口。
下面是说明匹配关系的局部配置,不是可直接运行的完整客户端配置。其中 direct 必须对应实际存在的直连出站标签;未匹配请求是否走代理,还取决于其余规则和默认出站。不要直接覆盖 v2rayN 自动生成的运行配置,应在客户端的路由管理中调整对应规则。
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:cn"],
"outboundTag": "direct"
}
]
}
}
- 规则顺序:先匹配先使用。若宽泛的代理规则放在大陆直连规则前面,后面的规则可能没有机会命中。
- 域名解析策略:
AsIs不会为了 IP 规则匹配而主动把域名解析成 IP;请求只携带域名且未命中域名规则时,不能假定后面的大陆 IP 规则一定生效。 - 私有地址:本地打印机、路由器管理页和内网服务通常应保留直连路径,但公司内部域名可能还依赖专用 DNS 或网络连接。
- 规则更新:调整 DNS 或规则资源后,用同一目标重新建立连接并观察日志,避免旧缓存和长连接造成误判。
代理模式常见问题:按现象缩小范围
已经选全局了,为什么终端还是没有走代理?
部分命令行工具不会读取系统代理。先用上文带 --proxy 的命令显式指定实际监听端口;成功后,再按该工具的说明设置代理参数或环境变量。不要仅凭客户端显示“全局”判断终端出口。
绕过大陆打不开,全局却能打开,要直接换节点吗?
先保持节点不变,比较同一目标在两种模式下的出站记录。如果绕过大陆时走直连、全局时走代理,检查域名分类、IP 分类及靠前的自定义规则;必要时为该目标添加明确规则,并放在宽泛规则之前。
清除系统代理以后,为什么某个浏览器仍然走代理?
检查浏览器扩展、独立代理设置以及是否启用 TUN,再退出并重新打开浏览器建立新连接。清除系统代理不会自动撤销这些独立设置,也不会终止已经建立的连接。
开全局之后,路由器管理页或公司内网访问失败怎么办?
先确认局域网地址和内部域名是否具有直连规则,并检查规则优先级;再核对系统代理绕过列表和内部 DNS。只调整 IP 规则无法解决所有内部域名解析问题,测试完成后恢复原有工作网络设置。
保留一组可复现的测试条件
每次只改变一个设置,并记录目标域名、本地端口、路由模式和日志中的出站标签。排查完成后,将临时全局模式切回日常规则,确认境内站点、境外目标和局域网服务各有一项新连接测试通过。