V2RayN 如何设置代理排除规则,让某些程序不经过代理?

代理排除功能定位与版本演进
代理排除是 V2RayN 中让指定程序或网络请求不经过代理、直接连接目标服务器的功能。其核心价值在于解决“全代理”模式下的冲突问题:部分软件(如远程桌面、游戏加速器、企业内网工具)无法通过代理正常工作,或代理会增加延迟;另一些场景下(如本地打印机、局域网共享)则根本不需要代理。简而言之,它让你在享受代理带来的隐私与突破限制的同时,仍能保持本地服务与特定应用的直连效率。
在 V2RayN 的早期版本中,用户只能通过全局模式配合系统代理设置,手动添加“不代理的地址”列表(类似 IE 代理设置中的“例外”)。这种方式只能匹配域名或 IP,无法按进程名排除,灵活性较低。随着 v2ray-core 路由功能的成熟,V2RayN 从约 4.x 版本开始内置了“路由设置”界面,支持通过 process (进程名)、domain、IP、protocol 等多种字段自定义规则。用户可以将特定程序指向 outboundTag 为 “direct” 的出站代理,从而实现精确排除。截至当前的最新版本,该功能已稳定集成,成为长线用户的标配配置方式。可以看到,从“黑名单式”手动例外到“路由规则式”字段匹配,整个演进体现了对桌面代理场景的更细粒度控制。
与 iOS 端 Shadowrocket 的“规则集”或 Android 端 v2rayNG 的“路由设置”不同,V2RayN 作为桌面端工具,在进程级匹配上更有优势——因为它可以直接捕获运行中的程序名,而不需要额外注入证书。这一特性让它在针对特定桌面应用(如游戏、开发工具、企业软件)的排除场景中尤为高效。
操作路径:Windows 端详细步骤
了解了功能背景后,接下来我们将通过三种具体方法,带你一步步实现代理排除。根据实际场景选择最适合的方式即可。
前提条件
确保 V2RayN 版本支持路由规则编辑(建议 4.x 及以上,以实际安装版本为准)。若使用旧版,可考虑升级至最新稳定版,以便获得完整的规则编辑体验。
方法一:通过进程名排除(推荐)
- 运行 V2RayN,右键托盘图标 → 选择“路由设置”(或从主菜单“设置” → “路由设置”)。
- 在“路由规则”选项卡中,点击“添加规则”。
- 在弹出的编辑窗口中:
- 类型:选择“field”(路由字段)。
- 出站代理:选择“direct”(直连)。
- 匹配类型:选择“process”。
- 值:输入目标程序的进程名,例如
chrome.exe(不包含路径,不区分大小写)。 - 其他选项保持默认,点击“确定”。
- 保存规则列表,重启 V2RayN 或右键 → “重新加载核心配置”使规则生效。
验证方法:打开目标程序(如 chrome.exe),访问一个能够显示客户端 IP 的测试网站(如 ip.sb),检查返回的 IP 是否为您的真实公网 IP(非节点 IP)。同时,在 V2RayN 的日志窗口中应能看到类似 process:chrome.exe -- action:direct 的记录(日志级别需为“信息”或“调试”)。这一步能直观确认规则是否生效。
⚠ 经验性观察:进程名匹配对 64 位程序的名称大小写不敏感,但某些系统进程(如 svchost.exe)可能因权限问题无法捕获——此时可使用方法二(域名/IP 排除)。如果遇到进程名匹配异常,建议先用任务管理器确认目标程序的准确进程名。
方法二:通过域名或 IP 排除
当进程名匹配不可用(如 UWP 应用、后台服务),或需要为多个程序共用的一组地址设置直连时,可采用此方法。相比进程名,域名/IP 排除覆盖面更广,适合配置内网资源或特定网站的直连规则。
- 进入“路由设置” → “添加规则”。
- 设置:
- 类型:field。
- 出站代理:direct。
- 匹配类型:选择“domain”或“ip”。
- 值:输入具体值,例如
example.com或10.0.0.0/8(支持 CIDR 和通配符,如*.lan)。
- 保存并重启核心。
小场景:某企业用户需要让内网办公系统(域名为 *.company.internal)直连,同时让企业微信(进程名 WeChatWork.exe)也直连。可以分别添加两条 domain 规则和一条 process 规则。注意,domain 规则会覆盖所有访问该域名的程序,效果最广,因此应确保不会误伤需要代理的域名。
方法三:使用“绕过局域网和大陆地址”
这是最快捷的全局排除方式,但精度较低。在 V2RayN 的“设置” → “参数设置”中,勾选“绕过局域网地址”和“绕过大陆地址”,即可让所有局域网 IP(如 192.168.x.x)和国内 IP 自动走直连。适用于希望“国内直连、国外代理”的场景。注意:该功能依赖于 IP 数据库,可能存在误判或漏判(例如部分 CDN 域名解析到海外 IP 会误走代理)。如果你只需要快速实现国内直连,这是最省心的起点。
例外与取舍:何时使用排除规则
排除规则并非越多越好,需要根据程序特点和网络环境权衡利弊。以下表格可以帮助你快速判断不同程序的推荐排除方式。
| 程序类型 | 推荐方式 | 原因 |
|---|---|---|
| 游戏客户端(如 Steam、LoL) | 进程名排除 | 降低延迟,避免代理中断导致掉线。 |
| 本地服务(如 IIS、XAMPP) | 域名/IP 排除 | 确保本地请求不走代理,避免回环。 |
| 音乐/视频流媒体(国内) | 域名排除 | 避免绕路降低速度,且不消耗代理流量。 |
| Torrent 下载工具 | 进程名排除(必须) | 防止 P2P 流量通过代理引发版权风险或封号。 |
| 系统更新(Windows Update) | 域名排除(如 *.update.microsoft.com) | 确保更新流量走直连,避免代理文件损坏。 |
边界条件:当使用进程名排除时,如果该程序启动后派生子进程(如 Chrome 启动的插件进程),子进程可能继承父进程的名称,也可能以新进程名运行(如 chrome.exe 的 GPU 进程名为 chrome.exe 或 chrome_child.exe)。因此,若发现排除不彻底,可尝试同时添加主进程与常见子进程的规则。
与第三方工具的协同
某些用户可能同时使用 Proxifier 或 SocksCap64 等强制代理工具。此时,V2RayN 的排除规则依然生效——因为排除规则是在 v2ray-core 层面决定的,比系统级代理更底层。但是,如果强制代理工具将流量直接转发给代理进程(而非 V2RayN),则 V2RayN 的路由规则无法拦截。建议权限最小化原则:统一在 V2RayN 中管理直连规则,避免多层代理造成冲突。如果确实需要叠加使用,建议仔细测试并确保规则优先级清晰。
故障排查:规则不生效的常见原因
- 规则未加载:添加规则后未“重新加载核心配置”,或通过托盘菜单右键重启核心。验证:打开日志窗口,查看是否有“apply routing rule”字样。
- 进程名不匹配:检查任务管理器中的确切进程名(可能包含扩展名或数字签名差异)。例如,32 位程序在 64 位系统上运行时,进程名不会自动加上后缀,但可以通过
tasklist命令确认当前运行的准确名称。 - 规则顺序冲突:V2RayN 按规则列表从上到下匹配,如果前面有更广的规则(如“绕过大陆地址”),可能会先匹配到代理而不是直连。将进程规则移至列表顶部可解决。
- 程序使用了其他端口:某些程序不使用 HTTP/HTTPS 或 SOCKS 代理,而是直接发送 IP 包(如部分游戏)。此时需要系统级路由(如 TUN 模式),V2RayN 的代理排除不适用。
如果你遇到了上述任一情况,按照对应步骤检查即可快速定位问题。平时建议开启日志窗口并保持“信息”级别,便于观察匹配行为。
适用与不适用场景清单
✅ 适用场景
- 需要让特定桌面程序(如打印机管理、远程桌面)直连局域网或公网。
- 需要为国内在线视频、网盘等提供直连以提升速度。
- 需要为 P2P、BT 客户端设置直连以避免代理封禁。
- 需要为多开程序的其中一个实例设置代理,另一个直连(通过进程名区分难度较大,可能需要使用不同启动参数或容器)。
❌ 不适用场景
- 程序运行在虚拟化环境(如 WSL2、VMware)中,流量不经过主机代理。
- 程序使用了 UDP 且 V2RayN 未开启 UDP 支持(路由规则默认仅对 TCP 生效,UDP 需单独设置“udp”类型)。
- 需要根据时间、地理位置或用户身份动态切换排除规则(此时需结合高级路由或负载均衡策略,V2RayN 原生不支持)。
最佳实践清单:决策规则
- 优先使用进程名排除:精准、不影响其他程序,避免域名规则误伤其他软件。例如,让浏览器本身走代理,但排除其特定子进程的场景会很方便。
- 域名排除用于公共地址:当多个程序需要访问同一个内网或 CDN 域名时,使用 domain 规则更高效。
- IP 排除用于固定地址:如公司服务器 IP、本地打印机 IP,用 CIDR 表示法可覆盖网段。
- 避免规则过多:超过 100 条规则可能影响启动速度和路由匹配性能(经验性观察)。定期清理不再需要的规则,保持列表简洁。
- 保留日志:在排查时临时开启日志级别“debug”,确认每条请求的匹配结果。完成后恢复默认级别以避免性能消耗。
- 版本更新后重新检查规则:V2RayN 升级可能重置规则文件或改变字段格式,建议备份 config.json 中的 routing 部分,以便快速恢复。
版本差异与迁移建议
从旧版 V2RayN(3.x 以下)迁移到新版时,注意:旧版使用“绕过名单”或“自定义规则”文件(如 pac.txt),新版统一使用路由设置。建议将原有例外域名/IP 手动迁移至路由规则中的 domain/ip 类型,并添加 process 规则替换原有的“绕过程序”功能。迁移后需重启 V2RayN 并验证排除效果。如果你还保留着早期配置文件,可以利用新版内置的导入功能(部分版本支持)进行过渡。
常见问题(FAQ)
Q:添加进程规则后程序仍然走代理,为什么?
A:常见原因包括:未重启核心、进程名输入错误(注意区分 32/64 位程序)、规则顺序被代理规则抢了先。另外,如果程序通过系统代理(HTTP/HTTPS)发送请求,但 V2RayN 处于“仅 SOCKS5 代理”模式且程序未使用 SOCKS5,则流量不经过 V2RayN,排除规则自然无效。请检查 V2RayN 代理模式并使用“全局”或“PAC”进行测试。
Q:如何批量添加多个程序的排除规则?
A:手动逐条添加比较繁琐,可以编辑 V2RayN 的配置文件(config.json)。找到 routing.rules 数组,为每个进程添加一个对象,例如:{"type":"field","outboundTag":"direct","process":["program1.exe","program2.exe"]}。注意:数组方式在 V2RayN 新版中已支持,请先备份再修改。
Q:排除规则会影响代理速度吗?
A:不会。排除规则让特定流量直连,反而减轻了代理负担,理论上有利于提升整体速度。但规则数量过多(几百上千条)时,匹配计算会占用少量 CPU,但现代硬件上几乎无感知。
Q:排除规则能否对 UWP 应用生效?
A:UWP 应用使用 AppContainer 运行,进程名往往不是 exe 格式,V2RayN 难以直接捕获。建议对 UWP 应用使用域名/IP 排除,或通过路由器级别的代理排除。一个折中方案是使用 Fiddler 或 Proxifier 配合 V2RayN,但较复杂。
总结与下一步行动
通过 V2RayN 的路由设置,你可以灵活地将特定程序“直连”,既能享受代理的隐私保护,又能保证本地或国内服务的速度。核心步骤为:添加规则、指定出站为 direct、选择匹配类型(进程/域名/IP)、重启核心完成生效。建议新手从“绕过局域网和大陆地址”开始,再逐步添加精细规则。进阶用户可直接编辑 config.json 实现批量管理。
现在,请检查你的 V2RayN 版本,进入路由设置,添加第一条排除规则,并观察日志确认生效。经过合理配置,你将获得更流畅、更安全的代理体验。
展望未来,随着 V2RayN 持续迭代,路由规则管理可能会进一步优化,例如支持规则分组、模板导入导出等更高效的操作方式。保持版本更新,你就能及时获得这些体验改进。