v2rayN 直连不生效?先分清系统代理、路由规则和 TUN
简答:关了系统代理后网页仍可能走节点,因为 TUN 或核心路由仍在接管流量。全部直连要清除系统代理并关闭 TUN;部分直连则保留入口,在路由规则中把目标指向 direct。
定义:v2rayN 的“直连”有两层含义:系统代理决定流量是否进入核心,路由规则决定进入核心后走 direct、proxy 还是 block。
先试这一步:按目标选择直连方式
如果你只是想暂时停止 v2rayN 接管浏览器,处理系统代理;如果你想让部分网站、IP 或应用不经过节点,处理路由规则。如果启用了 TUN,还要单独处理 TUN 的系统流量接管。v2rayN 官方说明也将系统代理入口与核心路由功能分开描述,前者负责把部分系统软件送入核心,后者负责选择不同出站方向。查看 v2rayN 系统代理和路由说明。
| 目标 | 主要操作 | 验证标准 |
|---|---|---|
| 全部流量恢复本地网络 | 选择“清除系统代理”,停止核心并关闭 TUN | 系统代理关闭,日志不再出现核心接管,直连出口与关闭核心时一致 |
| 国内网站直连、其他流量代理 | 保留系统代理或 TUN,使用分流预设或自定义 direct 规则 | 国内目标命中 direct,其他目标仍按代理规则处理 |
| 指定域名或 IP 直连 | 在路由设置中添加域名、IP 或 CIDR 规则,出站选择 direct | 连接日志显示目标命中 direct |
| 指定应用直连 | 添加进程名规则,并放在通用代理和兜底规则之前 | 重启应用后,日志显示该应用连接命中 direct |
| Android 应用直连 | 使用 v2rayNG 的 VPN 模式或按应用、路由规则设置 | 目标应用的流量符合 VPN 或路由设置,其他应用按选择的模式处理 |
30 秒速查卡:全部直连看“系统代理”和“TUN”;部分网站直连接“路由设置”;指定应用直连接“进程规则”;最终不要只看开关,要看连接日志中的实际出站方向。
全部流量直连:清除系统代理并关闭 TUN
- 打开 v2rayN,先停止当前核心或断开当前服务。
- 在顶部工具栏、底部状态区域或系统托盘菜单中找到“系统代理”相关入口。不同版本和界面布局的菜单位置可能不同。
- 选择“清除系统代理”。它的作用是让 v2rayN 在启动或重启服务时清除操作系统代理;“不改变系统代理”只是保留现有设置,不能当成关闭代理。
- 如果启用了 TUN 或 VPN 模式,关闭 TUN,再重新测试。仅清除浏览器使用的系统代理,不等于停止 TUN 接管。
- 检查系统设置中是否仍有手动代理、PAC 或自动配置脚本。Windows 可在“设置—网络和 Internet—代理”中确认。
v2rayN 官方文档说明,系统代理负责把 Windows、Linux 或 macOS 的部分软件流量送入核心,而路由功能负责进入核心后的分流。因此,想要“完全不经过 v2rayN”时,系统代理和 TUN 都要检查。系统代理选项定义。
本地代理端口不要套用其他客户端的端口。v2rayN 当前常见的混合监听端口为 10808,旧版或特定配置可能存在差异,应以设置页显示为准;排查时不要把 7890 或 7897 当作 v2rayN 的默认端口。官方讨论中的端口说明。
国内网站直连、其他流量代理
如果你的目标是分流,不要直接清除系统代理。保留系统代理或 TUN,让请求进入核心,再由路由规则把国内目标送到 direct,把其他目标送到代理出站。
- 打开路由设置,确认当前使用的是预设规则还是自定义规则。
- 优先选择客户端提供的分流预设,例如“绕过大陆”一类模式,具体名称以当前界面为准。
- 如果需要自定义,添加国内域名、IP 或局域网网段规则,并把出站方向设为 direct。
- 将更具体的直连规则移动到通用代理规则和最终兜底规则之前。
- 保存并重启核心,访问一个目标网站,查看连接日志是否命中 direct。
v2rayN 官方自定义路由示例使用 domain、ip、port、network 和 outboundTag 等字段,并展示了局域网地址走 direct、最后规则走 proxy 的结构。实际操作时,优先使用图形界面添加规则,不要把其他核心或其他客户端的配置字段直接照搬。查看自定义路由规则示例。
规则按先后顺序匹配,一旦前面的规则命中,后面的规则就不再生效。这里说的“兜底规则”是当前路由规则集或预设中的最终匹配项,不是节点订阅本身携带的路由规则。
指定域名、IP 或局域网地址直连
- 进入路由设置,选择添加规则。
- 只填写一种主要匹配条件:域名、IP、进程名三者不要在同一条规则中混用,具体字段以当前界面为准。
- 域名规则填写目标域名;IP 规则填写目标 IP 或 CIDR;局域网规则可使用局域网网段。
- 将出站方向设置为 direct。
- 把规则移动到通用代理和最终兜底规则之前。
- 保存后访问目标,再从日志确认实际命中的是 direct。
局域网地址通常应优先加入直连规则或 TUN 的路由排除范围。v2rayN 的界面说明要求 TUN 路由排除地址使用 IP CIDR 格式,多个网段按界面要求分隔;不要把域名写进只接受 CIDR 的字段。查看 v2rayN 界面与 TUN 设置说明。
指定应用直连:进程规则不是所有场景都能用
浏览器通常会遵循系统代理,但游戏、办公软件、命令行工具和部分局域网程序可能不读取系统代理。此时,清除系统代理或切换 PAC 不一定能控制单个应用。
- 进入路由设置,选择添加自定义规则。
- 如果当前界面提供进程名或应用规则字段,填写目标程序的进程名,例如
app.exe。 - 将出站方向设置为 direct,并把规则移动到通用代理和兜底规则之前。
- 完全退出并重新启动目标应用。
- 在连接日志中确认该应用的连接是否命中 direct。
进程匹配是否可用,取决于当前使用的核心、入站方式和客户端界面支持情况;官方界面说明列出了“进程名”作为路由匹配条件,但没有保证每种核心和模式都提供相同效果。因此,找不到进程字段或日志始终不命中时,应改用域名、IP、端口规则,或使用应用自身的代理设置。查看官方规则匹配说明。
TUN 模式下设置直连
TUN 处理的是比普通系统代理更底层的系统流量。关闭系统代理后,如果 TUN 仍开启,部分应用仍可能被 v2rayN 接管。你可以选择“关闭 TUN 后测试全部直连”,也可以保留 TUN 并用路由规则处理部分直连。
- 先记录当前核心类型、TUN 状态、自动路由、DNS 接管和路由排除地址。
- 要验证完全直连,关闭 TUN,再选择“清除系统代理”,随后重新测试。
- 要在 TUN 中保留分流,使用域名、IP、局域网网段或当前核心支持的进程规则指向 direct。
- 局域网无法访问时,检查 TUN 的路由排除地址是否使用正确的 IP CIDR。
- Windows TUN 若提示权限问题,按系统提示以管理员权限运行;macOS 若出现网络扩展或安全放行提示,在系统设置中处理;Linux 则检查运行用户、配置文件和 TUN 设备权限。
如果开启 TUN 后出现延迟为负值、核心无法启动或所有网站都打不开,先关闭 TUN,确认普通系统代理能够工作,再逐项恢复 TUN、DNS 和自定义规则。公开问题记录曾记录 TUN 与系统代理同时启用时出现无法连接的复现情况,排查时应结合核心日志,而不是只看界面开关。查看相关公开问题记录。
Windows、macOS、Linux 与 Android 的入口差异
| 平台 | 直连操作重点 | 验证方式 |
|---|---|---|
| Windows | 检查托盘或底部状态栏的系统代理;TUN 通常需要相应权限;检查“设置—网络和 Internet—代理” | 查看系统代理、连接日志和本地监听端口 |
| macOS | 检查客户端的系统代理选项和当前网络服务代理;若自动配置失败,查看 guiLogs;TUN 或网络扩展按系统提示放行 | 检查当前网络服务代理设置和核心日志 |
| Linux | 检查桌面环境代理设置、环境变量和客户端状态;TUN 需确认运行用户与设备权限 | 查看环境变量、监听端口和核心日志 |
| Android | Android 使用手机版 v2rayNG,不要直接照搬桌面端菜单;VPN 模式通常用于系统级接管,Proxy only 模式需要手动给应用配置代理 | 确认 VPN 状态,或检查应用是否使用 127.0.0.1:10808 等界面显示的本地代理 |
v2rayN 官方项目将其定位为 Windows、Linux 和 macOS 桌面客户端;官方 v2rayNG 项目则说明它是 Android 版本。v2rayNG 的 VPN 模式与 Proxy only 模式入口、权限和覆盖范围不同,不能把 Windows 的“清除系统代理”直接当作 Android 操作。v2rayN 平台说明;v2rayNG 模式说明。
设置后如何确认真的直连
- 检查系统代理:确认没有残留手动代理、PAC、自动配置脚本或环境变量。选择“不改变系统代理”时,旧代理可能继续存在。
- 检查 TUN:如果目标是全部直连,确认 TUN 已关闭;命令行测试不能绕过正在运行的 TUN。
- 检查连接日志:访问目标域名时,查看实际命中的规则和出站方向是否为 direct。规则保存成功不代表请求已经命中。
- 对比出口 IP:先关闭核心、清除系统代理并记录目标请求的出口 IP;重新启用分流后访问同一目标。若日志命中 direct,且直连请求的出口 IP 与关闭核心时记录的本地出口 IP一致,才可判断该目标已直连。
- 绕过系统代理测试:Windows 可执行
curl.exe --noproxy "*" -I https://example.com。该命令不读取 Windows 系统代理,但 TUN 开启时仍可能被 TUN 接管。 - 检查端口:v2rayN 常见混合端口为
10808,以设置页为准。Windows 使用netstat -ano | findstr LISTENING;macOS 使用lsof -nP -iTCP -sTCP:LISTEN;Linux 使用sudo ss -lntp。
如果端口被占用,先在 v2rayN 设置中修改本地监听端口或停止占用进程,再重启核心。不要使用 Clash 系客户端常见的端口数字替代 v2rayN 的实际设置。
直连后仍打不开:按这个顺序排查
- 只有浏览器异常:检查浏览器自身代理、扩展、PAC 和 DoH 设置。
- 只有某个应用异常:确认应用是否读取系统代理;不读取时使用当前核心支持的进程规则或应用自身代理。
- 国内网站变慢:检查是否误选全局代理,或直连规则排在代理规则之后。
- 日志显示 direct 但网页打不开:检查 DNS、DNS 接管、浏览器缓存和本地防火墙。
- 域名打不开但 IP 可以:优先检查 DNS 和本地解析,不要先反复切换节点。
- TUN 开启后全部失败:关闭 TUN 验证基础连接,再检查权限、路由排除地址、DNS 和 MTU。
- 局域网设备无法连接:检查局域网 CIDR、TUN 排除地址、防火墙和“允许来自局域网的连接”设置。
建议固定按“系统代理 → TUN → 路由顺序 → DNS → 本地端口 → 日志实际出站方向”的顺序排查,这样可以区分入口未关闭、规则未命中、DNS 异常和节点本身不可用。
常见问题
v2rayN 的“清除系统代理”和路由直连有什么区别?
清除系统代理处理的是操作系统入口,让遵循系统代理的应用不再把请求送入 v2rayN;路由直连处理的是已经进入核心的流量,将目标送到 direct。启用 TUN 时,清除系统代理不一定能阻止所有流量进入核心。
v2rayN 如何设置国内网站直连、其他网站代理?
保留系统代理或 TUN,在路由设置中选择分流预设;需要自定义时,把国内域名、IP 或局域网网段指向 direct,并放在通用代理和兜底规则之前,最后查看日志确认命中。
指定应用直连后仍然走代理怎么办?
先重启目标应用,再检查进程名是否正确、当前核心和入站方式是否支持进程匹配、规则是否排在兜底代理之前。若界面没有进程字段,改用域名、IP、端口规则或应用自身代理设置。
关闭系统代理后,为什么 TUN 仍然让流量经过 v2rayN?
系统代理和 TUN 是不同的接管路径。关闭系统代理只影响遵循系统代理的应用,TUN 仍可能接管系统流量。要全部恢复本地网络,需要关闭 TUN,并检查 DNS、路由排除地址和残留代理。
v2rayN 直连规则命中了,但网页还是打不开,先查什么?
先看日志中的实际出站方向,再检查 DNS、系统代理残留、本地端口、防火墙和 TUN 权限。若 IP 能访问而域名不能访问,优先排查 DNS;若关闭 TUN 后恢复,重点检查 TUN 路由和排除地址。
Android 能不能照搬 v2rayN 的直连设置?
不能直接照搬。v2rayN 是 Windows、Linux 和 macOS 桌面客户端,Android 对应 v2rayNG;Android 主要通过 VPN 模式、Proxy only 模式和路由规则处理直连,入口与桌面端不同。