v2rayN 入门安装与系统代理配置
Windows 平台经典网络客户端 v2rayN 全流程安装与配置教学。涵盖 Xray 内核安装、PAC 模式与自动配置系统代理区别、路由规则与常见启动报错解决。
v2rayN Windows 入门安装、内核选择与系统代理配置指南
v2rayN 入门安装与系统代理配置
Answer Block
v2rayN 是什么? v2rayN 是一款运行在 Windows 平台上的开源图形化客户端(GUI),本身不实现任何代理协议,而是作为前端外壳调用 Xray(或早期 V2Ray)内核完成实际的网络转发。它基于 .NET 运行时构建,通过读取 JSON 配置驱动内核,并以「系统代理」「PAC」「TUN」等方式把流量导入内核。
安装 v2rayN 需要什么前置条件? 需要 Windows 10/11(或 Windows 8.1+),并预先安装对应的 .NET Desktop Runtime(v2rayN 6.x 通常要求 .NET 6.0 或 8.0 Desktop Runtime,x64 版本)。解压目录必须为纯英文、无空格路径(如 D:\Tools\v2rayN),否则内核可能因路径解析失败而无法启动。
v2rayN 的三种系统代理模式有什么区别? 「清除系统代理」不修改 Windows 的 Internet 选项,流量不经过内核;「自动配置系统代理」把系统 WinINET 代理指向 127.0.0.1:10809(HTTP)等本地端口,所有遵循系统代理的软件(Edge、Chrome、大部分 UWP)自动走代理;「PAC 模式」则让系统加载一个本地 PAC 脚本,由脚本按域名规则决定哪些请求走代理、哪些直连,粒度更细但依赖浏览器对 PAC 的支持。
v2rayN 启动报错怎么办? 常见三类:①「Xray 内核启动失败」——多为解压路径含中文/空格、杀毒软件拦截、config.json 语法错误;②「端口被占用」——用 netstat -ano | findstr :10809 定位 PID 并释放;③「缺少 .NET 运行时」——安装对应版本的 Desktop Runtime 后重启。
v2rayN 如何绕过大陆流量? 在「路由设置」中启用「绕过大陆(Bypass CN)」预设,内核会加载 geosite:cn 与 geoip:cn 规则集,命中域名或 IP 的流量直连,其余走代理。这是最常用的分流策略,可显著降低国内网站延迟。
一、v2rayN 是什么:一个「外壳」而非「引擎」
理解 v2rayN 的第一步,是把它和它调用的内核区分开。
- v2rayN:C# 编写的 Windows GUI,负责托盘图标、订阅管理、节点切换、路由配置、系统代理开关。它自己不解析 VMess/VLESS/Trojan 协议,也不做 TLS 握手。
- Xray-core:真正干活的转发引擎,读取
config.json,监听本地 SOCKS5/HTTP 入站端口,把流量按出站规则发往远端服务器。 - .NET Desktop Runtime:v2rayN 6.x 起基于 .NET 6/8 构建,运行时缺失会直接弹窗报错。
这种「GUI + 内核」分离的架构带来两个后果:一是升级内核可以独立于 GUI 进行(替换 bin\xray 目录即可);二是 GUI 崩溃不影响已建立的内核连接,反之亦然。理解这一点,后面所有排错都会顺畅很多。
二、安装前置条件
2.1 .NET Desktop Runtime
v2rayN 6.x 的 Release 页面会标注所需运行时版本。以 .NET 8 为例,需安装 Microsoft Windows Desktop Runtime 8.x (x64),注意是 Desktop Runtime 而非 ASP.NET Core Runtime 或 .NET Runtime——前者才包含 WPF/WinForms 组件。
验证是否已安装:
dotnet --list-runtimes
输出中应出现类似 Microsoft.WindowsDesktop.App 8.0.x。若只有 Microsoft.NETCore.App 而无 WindowsDesktop.App,说明装错了包。
2.2 解压路径
必须避免中文、空格、特殊符号。 原因在于 Xray 内核在 Windows 上以子进程方式启动,命令行参数与工作目录若含非 ASCII 字符,可能因代码页不匹配导致路径解析失败,表现为「内核启动失败」但日志无有效信息。
推荐路径:
D:\Tools\v2rayN
C:\Apps\v2rayN
不推荐:
D:\软件\v2rayN ← 中文
C:\Program Files\v2rayN ← 空格
2.3 首次运行
解压后运行 v2rayN.exe。首次启动会在同目录生成 guiNConfig.json、config.json 等文件。若杀毒软件(尤其是国产安全软件)拦截,需将整个目录加入白名单,否则内核进程会被静默终止。
三、核心工作模式解析
v2rayN 主界面底部有「系统代理」下拉菜单,三个选项对应完全不同的流量路径。
3.1 清除系统代理
不修改 Windows 的 WinINET 代理设置。此时:
- 浏览器、Edge、Office 等遵循系统代理的软件直连,不经过内核;
- 只有显式配置了 SOCKS5/HTTP 代理的软件(如手动设置代理的 Firefox、Telegram)才会走内核;
- 内核仍在运行,本地端口(默认 SOCKS
10808、HTTP10809)依然监听。
适用场景:你只想让部分软件走代理,其余保持直连。
3.2 自动配置系统代理
v2rayN 写入注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings,把 ProxyEnable 设为 1,ProxyServer 设为 127.0.0.1:10809(HTTP 入站端口)。
影响范围:
- WinINET 系:Edge、IE、Chrome(默认跟随系统)、大部分 UWP 应用、Windows 更新(部分);
- 不跟随:Firefox(默认独立)、部分 Electron 应用、命令行工具(curl、git 需单独配置)。
验证当前系统代理:
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
Select-Object ProxyEnable, ProxyServer
3.3 PAC 模式
v2rayN 生成一个本地 PAC 文件(通常通过 http://127.0.0.1:10809/pac/ 提供),并把系统代理设置为「使用自动配置脚本」。浏览器每次请求前会执行 PAC 中的 JavaScript 函数 FindProxyForURL(url, host),返回 DIRECT 或 PROXY 127.0.0.1:10809。
优点:分流粒度细,可按域名、IP 段、甚至 URL 路径决定走向。 缺点:PAC 是同步执行的 JS,规则过多会拖慢首次请求;且仅对支持 PAC 的客户端生效。
三者的本质区别:清除 = 不动系统;自动配置 = 全局走本地 HTTP 代理,分流交给内核路由;PAC = 分流交给浏览器脚本,内核只处理被选中的流量。
四、路由规则设置
路由(Routing)决定「哪些流量走代理、哪些直连」,是 v2rayN 最核心的配置项。打开「设置 → 路由设置」。
4.1 绕过大陆(Bypass CN)
这是最常用的预设。启用后内核加载两条规则:
geosite:cn:域名匹配,命中.cn、.baidu.com、.taobao.com等;geoip:cn:IP 匹配,命中中国大陆 IP 段。
命中者走 direct 出站,其余走 proxy。效果是国内网站延迟接近直连,国外网站走代理。
4.2 全局路由
所有流量(除局域网)一律走代理。适合需要访问被污染 DNS 的场景,但国内网站会绕一圈,延迟升高。
4.3 域名与 IP 列表
v2rayN 的规则集来自 geosite.dat 与 geoip.dat(Loyalsoldier 等社区维护)。常见标签:
geosite:category-ads-all:广告域名,可路由到block;geosite:geolocation-!cn:非中国大陆域名;geoip:private:内网 IP,应直连。
自定义规则可写在「路由设置 → 域名/IP」中,支持 domain:、full:、regexp: 前缀。
五、常见启动与连接报错排除
5.1 Xray 内核启动失败
症状:托盘提示「Xray 启动失败」,日志窗口无输出或只有一行。
排查顺序:
- 检查路径是否含中文/空格(见 2.2);
- 手动运行内核验证:
cd D:\Tools\v2rayN\bin\xray
.\xray.exe -test -config ..\..\config.json
若报 failed to parse config,说明 config.json 语法错误,通常是订阅内容不完整或手动编辑出错。
- 检查杀毒软件隔离记录,把
xray.exe加入白名单。
5.2 端口占用
症状:日志出现 address already in use 或 listen tcp 127.0.0.1:10809: bind。
定位:
netstat -ano | findstr :10809
输出最后一列是 PID,用任务管理器或:
tasklist | findstr <PID>
找到占用进程。常见元凶是上一次未正常退出的 xray.exe,或另一个代理软件(Clash、Shadowsocks)占用了同端口。
释放:
taskkill /PID <PID> /F
或在 v2rayN「参数设置」中把入站端口改为 10810/10811 等空闲端口。
5.3 运行时缺失
症状:双击 v2rayN.exe 弹出「You must install .NET Desktop Runtime」或直接闪退。
解决:安装对应版本的 Desktop Runtime(见 2.1),安装后重启系统或至少重启资源管理器。
5.4 macOS 侧对照排查
虽然 v2rayN 是 Windows 工具,但跨平台排查思路一致。macOS 上查看端口占用:
lsof -nP -iTCP:10809 -sTCP:LISTEN
查看系统代理状态:
scutil --proxy
释放端口:
kill -9 <PID>
六、FAQ
H3:v2rayN 和 Clash、Shadowsocks-Windows 有什么本质区别?
三者都是「GUI + 内核」架构,但内核与配置模型不同。v2rayN 调用 Xray/V2Ray 内核,配置以 JSON 为主,协议支持最广(VMess、VLESS、Trojan、Shadowsocks、WireGuard 等),路由规则基于 geosite/geoip 标签体系。Clash 系(Clash Verge、Mihomo)使用 YAML 配置,规则语法更接近 Surge,支持 Rule、Proxy Group 等抽象,分流表达力更强。Shadowsocks-Windows 是纯 SS 客户端,协议单一,但轻量。选择依据是:需要多协议与精细路由选 v2rayN;需要规则分组与订阅生态选 Clash 系;只跑 SS 选原生客户端。三者不冲突,但不要同时开启系统代理,否则后写入的会覆盖前者。
H3:为什么开了「自动配置系统代理」,Chrome 能上网但 Firefox 不行?
因为 Chrome 默认读取 Windows 的 WinINET 代理设置,而 Firefox 默认使用「使用系统代理设置」以外的独立配置。在 Firefox 中打开 about:preferences → 网络设置 → 选择「使用系统代理设置」,或手动填入 127.0.0.1:10809(HTTP)。同理,部分 Electron 应用(如 VS Code 的扩展市场)也不读系统代理,需要在应用内单独配置,或改用 TUN 模式从网络层接管。
H3:TUN 模式和系统代理模式有什么底层差异?
系统代理工作在应用层(L7):只有主动读取系统代理设置的软件才会把流量交给内核,命令行工具、游戏、部分 P2P 应用会漏掉。TUN 模式则在网络层(L3)创建一块虚拟网卡(Windows 上常用 Wintun 驱动),把整机路由表指向该网卡,内核从网卡读取原始 IP 包,按规则分流。优点是全流量接管、无应用遗漏;代价是需要管理员权限、可能与 VPN、虚拟机网络冲突,且 DNS 处理更复杂(通常配合 Fake-IP 使用)。v2rayN 6.x 支持 TUN 模式,但需手动开启并安装 Wintun 驱动。
H3:Fake-IP DNS 是什么,v2rayN 里需要开吗?
Fake-IP 是一种 DNS 劫持技术:内核拦截 DNS 查询,立即返回一个保留段内的假 IP(如 198.18.x.x),同时记录「域名 → 假 IP」映射。应用拿着假 IP 发起连接时,内核根据映射还原出真实域名,再按域名规则分流。好处是避免 DNS 污染、减少一次真实 DNS 往返、让基于域名的路由规则对 IP 直连的应用也生效。v2rayN 在 TUN 模式下建议开启 Fake-IP;纯系统代理模式下,由于浏览器自己解析 DNS,Fake-IP 作用有限,可不开。
H3:如何彻底卸载 v2rayN 并清理残留?
v2rayN 是绿色软件,但会留下三类残留:①注册表中的系统代理设置(HKCU\...\Internet Settings);②开机自启项(HKCU\...\Run);③Wintun 虚拟网卡驱动(若开过 TUN)。清理步骤:先在 v2rayN 中选「清除系统代理」并退出;删除程序目录;用 regedit 检查 Internet Settings 下 ProxyEnable 是否为 0;在「设备管理器 → 网络适配器」中卸载 Wintun 相关设备;最后检查 %APPDATA% 与 %LOCALAPPDATA% 下是否有 v2rayN 目录。macOS 侧对应清理 ~/Library/Application Support 与 scutil --proxy 中的残留设置。