安装前准备与客户端选择
先确定平台、处理器架构与使用范围
安装前需要先回答三个问题:设备运行什么操作系统,处理器属于哪种架构,哪些程序需要通过客户端建立的本地代理访问网络。平台决定安装包格式,架构决定二进制文件能否启动,接管范围则影响后续应选择系统代理还是 TUN。桌面端优先使用 v2rayN,它覆盖 Windows、macOS 与 Linux,并提供订阅管理、内核切换、路由规则和系统代理控制。Android 端优先使用 v2rayNG;当配置明确要求 V2Fly 内核行为,或需要与既有 V2Fly 配置保持一致时,可以使用 v2flyNG。
Windows 常见设备使用 x64 架构。macOS 需要区分 Apple Silicon 与 Intel:在系统信息的硬件概览中查看芯片或处理器名称即可。Linux 可在终端执行 uname -m,输出 x86_64 对应 x64,输出 aarch64 或 arm64 对应 ARM64。Android 近年的主流设备通常采用 arm64,但在无法确认架构、安装时提示不兼容的情况下,应改用通用安装包。安装入口与架构说明集中在下载页,不要用其他平台的包交叉安装。
区分客户端、内核与节点配置
图形客户端、代理内核和节点配置是三个不同层次。v2rayN、v2rayNG 与 v2flyNG 负责界面、订阅、启动控制和系统网络接管;Xray 或 V2Fly 内核负责解析协议、建立出站连接、执行路由和处理 DNS;节点配置则提供服务器地址、端口、用户标识、传输方式以及 TLS、REALITY 等连接参数。客户端安装成功只代表界面能够运行,并不表示已有可连接的服务器配置。反过来,订阅中出现节点也不代表内核一定支持该节点使用的全部参数。
例如,包含 REALITY 或 XTLS Vision 参数的配置通常应由支持相应能力的 Xray 内核处理。普通 VMess、VLESS、Trojan 配置也需要完整匹配地址、端口、传输层和安全层参数。遇到“导入成功但连接失败”时,不应立刻反复更换系统代理模式;先查看当前客户端调用的内核类型,再核对节点要求。关于两类内核的功能边界,可继续阅读Xray 内核与 V2Fly 内核区别详解。
准备订阅资料与保留回退路径
首次配置前应准备有效的订阅链接、单条分享链接、二维码或配置文件。订阅适合集中维护多条节点;单条链接适合临时导入一个配置;二维码便于在桌面与 Android 设备之间传递少量配置;文件导入适合保存复杂的完整参数。订阅链接通常等同于访问凭据,不应放进公开文档、截图或多人共享的日志。复制时要保留完整字符,避免聊天工具自动截断或在两端加入空格。
在修改系统代理、TUN、DNS 或自定义路由前,建议先保留一份能够工作的基础配置。桌面端可以导出当前配置或记录原有路由模式,Android 端可以复制配置后再编辑。排错时一次只改变一个变量:先验证节点本身,再启用系统接管,最后调整路由和 DNS。如果一开始同时修改内核、节点、路由与 TUN,失败后很难判断问题来自哪一层。
| 检查项 | 确认方式 | 选错时的典型现象 |
|---|---|---|
| 系统与架构 | 系统信息或 uname -m |
安装器拒绝运行,程序启动后立即退出 |
| 客户端类型 | 桌面使用 v2rayN,Android 优先 v2rayNG | 安装格式不匹配,缺少所需平台能力 |
| 内核能力 | 对照节点协议、传输与安全参数 | 导入正常,但握手或启动阶段报错 |
| 接管范围 | 先列出只需浏览器还是全部应用 | 部分程序能用,部分程序完全不经过代理 |
Windows:安装 v2rayN 与接管系统代理
选择桌面版或经典 WPF 版
Windows 下载区提供 v2rayN 桌面版与经典 WPF 版。桌面版采用新一代跨平台界面,适合新安装和希望在多个桌面系统间保持相近操作方式的用户;WPF 版是 Windows 上长期使用的经典界面,适合已经熟悉其菜单位置、托盘操作和配置管理方式的环境。两者都围绕订阅、节点、路由和系统代理工作,不应同时启动并争用同一本地端口。首次安装只选其中一版,完成验证后再决定是否迁移。
下载后按安装包提示完成安装。若使用解压型包,应解压到当前用户具有写入权限的固定目录,不要直接在压缩文件预览窗口中运行,也不要放进会频繁清理的临时目录。程序需要保存配置、日志和内核文件;目录不可写时,界面可能能打开,但更新订阅或启动内核会失败。首次启动后观察系统托盘,关闭主窗口通常只会把程序收起到托盘,并不等于退出。需要彻底停止时,应从托盘菜单执行退出。
导入订阅并选择活动节点
在订阅分组管理中新增订阅,填写便于识别的备注和完整链接,然后执行更新当前订阅或更新全部订阅。更新完成后,主列表应出现节点。若列表没有变化,先确认正在查看的分组与刚更新的分组一致,再查看日志中是网络请求失败、内容解析失败还是返回内容为空。重复添加相同订阅会形成多个分组副本,后续更新时容易选错,因此一个来源保留一个明确命名的分组即可。
选择节点后,将其设为活动服务器。节点列表里的“已选中”和内核“已启动”是两个状态:前者只指定接下来使用哪个配置,后者才会监听本地代理端口。启动服务后检查底部状态栏和日志,正常情况下会显示本地监听已经建立。此时可先使用客户端提供的真连接测试或打开一个明确使用系统代理的浏览器页面。节点测速结果只用于辅助比较,不能替代实际连接测试;三类测速指标的差异可参考延迟测试数字怎么看。
系统代理的工作方式
Windows 系统代理主要影响读取系统代理设置的应用。选择“自动配置系统代理”后,v2rayN 会把系统代理指向本地监听端口,并随客户端状态更新。浏览器和不少桌面程序会读取这项设置,但某些游戏、命令行工具、商店应用或自行实现网络栈的软件可能忽略它。如果浏览器可以访问而另一个程序不行,先确认该程序是否支持系统代理,不要直接把问题归因于节点。
路由模式决定进入本地代理端口后的请求如何分配到代理出站或直连出站。常见的“绕过局域网及大陆”适合日常规则分流:局域网地址和匹配到的直连规则不经过远端节点,其余请求按规则处理。全局模式更适合临时验证某个域名是否被规则误判,不宜在未理解影响范围时长期作为排错捷径。切换路由后应重新连接当前节点,让内核重新加载规则。
管理员权限、端口占用与开机启动
普通系统代理通常不要求持续以管理员身份运行,但安装网络组件、启用特定 TUN 实现或修改受保护设置时,系统可能要求提升权限。只在对应操作发生时确认权限即可。若内核启动后立即退出,优先检查日志中的“address already in use”或同类端口占用信息。常见原因是另一份 v2rayN、其他代理客户端或遗留内核进程仍在监听相同端口。先退出重复程序,再重启当前客户端;不要通过随意改变多个端口来掩盖冲突。
开机启动适合固定设备,但应在基础配置稳定后再开启。若同时启用“开机启动客户端”和“启动后自动连接”,系统登录后会较早修改代理状态;订阅失效、网络尚未就绪或上次节点不可用时,可能表现为刚开机就无法正常访问。更稳妥的顺序是先让客户端启动,等待网络可用后再连接,并保留从托盘恢复“清除系统代理”的操作路径。异常退出后若浏览器仍尝试连接本地端口,可在 Windows 代理设置中关闭代理,随后重新启动 v2rayN。
检查本地端口是否处于监听状态:
netstat -ano | findstr LISTENING
查看某个进程标识对应的程序:
tasklist /fi "PID eq 进程标识"
macOS:安装 v2rayN、授权与代理设置
按芯片类型选择安装包
macOS 的 v2rayN 安装包分为 Apple Silicon 与 Intel 两类。打开系统信息,在硬件概览中查看“芯片”或“处理器”字段:显示 Apple 系列芯片时选择 ARM64 安装包,显示 Intel 时选择 x64 安装包。架构选错后,系统可能拒绝打开,也可能通过兼容层运行但产生额外问题。安装前先从macOS 下载入口取得对应文件,不要根据设备购买年份单独推断芯片类型。
打开磁盘映像后,将应用拖入“应用程序”目录,再从该目录启动。直接在磁盘映像中运行不利于后续保存、升级和权限管理。首次打开时,系统会校验应用来源并显示确认提示;按系统设置中的应用安全页面完成明确授权。授权只解决系统是否允许启动的问题,若界面打开后内核无法运行,还需要查看客户端日志和内核文件状态,两者不能混为一谈。
导入配置与启动内核
订阅管理流程与 Windows 类似:新增订阅备注和链接,执行订阅更新,在目标分组中选择节点,再启动服务。macOS 剪贴板可能把从富文本页面复制的链接附带换行,粘贴后应检查链接首尾。二维码适合从另一台设备传递单条配置,但批量节点仍建议使用订阅,便于后续统一更新。若订阅更新成功而节点列表为空,检查分组筛选和订阅内容类型;如果日志提示解析错误,应回到订阅来源确认格式,而不是手工补写未知参数。
内核启动后会在本机监听 HTTP、SOCKS 或混合代理端口。客户端界面中的活动节点、内核状态和系统代理状态应分别检查。节点被选中不代表系统网络已接管,系统代理已打开也不代表内核一定在监听。最常见的错误状态是系统代理仍指向本地端口,但客户端已经退出,此时浏览器会持续尝试连接一个不存在的服务。重新启动客户端或关闭系统代理即可恢复基础网络。
系统代理与不同应用的行为差异
macOS 的系统代理按网络服务保存,例如 Wi-Fi 与有线网络可以拥有不同设置。v2rayN 修改当前系统代理后,遵循系统代理的浏览器和应用会把请求送到本地端口。终端工具是否使用代理取决于工具本身:部分工具读取环境变量,部分读取系统网络配置,另一些需要单独参数。因此“浏览器正常、终端请求直连”并不矛盾。若只需要浏览器与常规应用,系统代理通常更直观;需要覆盖不读取系统代理的程序时,再评估 TUN。
切换 Wi-Fi、接入有线网络或使用热点后,应重新确认当前网络服务的代理状态。休眠唤醒后若客户端仍显示运行但请求失败,可以先断开并重新连接当前节点,让内核重建底层连接。不要在每次网络切换后删除订阅;订阅保存的是配置,网络切换只改变设备到服务器之间的路径。对于公司网络、认证网络或需要网页登录的公共网络,应先关闭接管,让系统完成网络认证,再启动代理服务。
TUN 权限、DNS 与退出恢复
TUN 会创建虚拟网络接口并调整路由,覆盖范围比系统代理更广。首次启用时可能需要系统授权。授权成功后,仍应检查虚拟接口是否建立、默认路由是否按预期变化,以及 DNS 请求由哪一层处理。若启用后所有请求都失败,先关闭 TUN 并确认系统代理模式仍能工作,这一步可以快速区分“节点或内核问题”和“虚拟网络接管问题”。
DNS 异常常表现为域名无法访问,但直接连接目标地址或客户端连接测试仍有反应。优先使用客户端路由与 DNS 的默认组合,不要同时启用多个系统级 DNS 工具。若确需自定义,先明确直连域名和代理域名分别由哪个解析器处理,避免解析结果与路由方向冲突。退出客户端前,先关闭系统代理或 TUN,再执行退出;若程序意外终止,可以在系统网络设置中检查当前网络服务的代理项,并关闭仍指向本地端口的配置。
查看处理器架构:
uname -m
查看当前网络服务列表:
networksetup -listallnetworkservices
查看 Wi-Fi 的网页代理状态:
networksetup -getwebproxy Wi-Fi
Linux:安装 v2rayN、桌面代理与 TUN
确认发行版、架构与安装格式
Linux 下载区提供 v2rayN 的 deb 与 rpm 安装包,并区分 x64 和 ARM64。Debian、Ubuntu 及其常见衍生发行版通常使用 deb;Fedora、Rocky Linux、AlmaLinux 等 rpm 系发行版使用 rpm。执行 uname -m 判断架构,再通过 /etc/os-release 确认发行版信息。安装格式与处理器架构必须同时匹配,只匹配其中一项仍可能导致安装器报错或二进制无法执行。
图形客户端依赖桌面会话、通知区域和若干运行库。服务器环境即使能够安装软件包,也不一定具备显示 v2rayN 界面的条件。本指南面向带桌面环境的 Linux 设备。Wayland 与 X11 下的托盘实现可能不同:关闭窗口后若找不到托盘图标,可从应用菜单重新打开,或检查桌面环境是否启用了状态图标支持。不要因为托盘未显示就重复启动多个实例,重复实例容易造成端口冲突。
使用系统包管理器安装
在终端进入下载目录后,可以让包管理器安装本地文件。使用包管理器而不是直接解包,便于处理依赖和后续卸载。下面的通配写法要求下载目录里只保留一个对应架构的 v2rayN 安装包;若存在多个文件,应输入实际文件名,避免选中旧包。安装过程中若提示依赖无法满足,先刷新发行版软件源并确认系统版本仍受当前发行版维护,然后再次安装。
查看系统与架构:
cat /etc/os-release
uname -m
Debian 或 Ubuntu 系安装:
cd ~/Downloads
sudo apt install ./v2rayN*.deb
Fedora 或兼容 rpm 的发行版安装:
cd ~/Downloads
sudo dnf install ./v2rayN*.rpm
安装完成后从桌面应用菜单启动 v2rayN。若终端启动时出现缺少共享库的提示,应使用发行版包管理器补齐对应依赖,不要从不明位置复制单个库文件覆盖系统目录。若程序能启动但内核无法执行,检查内核文件是否具备执行权限、程序数据目录是否可写,以及安全策略是否阻止子进程。升级时先退出正在运行的客户端,再安装新包,避免旧进程继续占用文件或端口。
导入订阅并配置桌面系统代理
新增订阅、更新分组、选择节点和启动内核的顺序与其他桌面系统一致。Linux 的差异主要在系统代理设置并非所有桌面环境都采用同一接口。GNOME、KDE 及其他桌面环境对代理配置的存储方式不同,v2rayN 能否自动写入当前桌面代理取决于环境支持。启用后应到桌面网络设置中核对代理地址是否指向本机,以及端口是否与客户端状态栏一致。
许多终端程序不会自动读取桌面代理。需要临时让当前终端会话中的工具使用本地 HTTP 代理时,可设置环境变量;端口应以客户端实际显示为准。环境变量只对当前 shell 及其子进程有效,关闭终端后失效,这种方式适合验证,不应在尚未确认端口固定时写入全局启动文件。
为当前终端会话设置本地代理:
export http_proxy=http://127.0.0.1:10809
export https_proxy=http://127.0.0.1:10809
完成测试后清除:
unset http_proxy
unset https_proxy
TUN、权限与网络管理器边界
TUN 模式依赖虚拟网络接口、路由表和相应权限。启用前确认系统存在 /dev/net/tun,并避免同时运行会修改默认路由的其他网络工具。若客户端提示权限不足,应按客户端提供的本地授权流程处理,不要长期以 root 身份运行整个桌面会话。授权目标是允许必要的网络操作,而不是让所有客户端文件都拥有最高权限。
Linux 上的 DNS 可能由 systemd-resolved、NetworkManager、桌面网络管理器或其他本地服务管理。TUN 启动后域名解析异常时,先用 ip route 查看路由是否创建,再用 resolvectl status 查看当前 DNS 归属。若系统没有该命令,则按发行版所用网络管理器检查。排错时先退回系统代理模式验证节点,节点正常后再单独启用 TUN;这样能避免把桌面代理、内核连接和系统路由三层问题混在一起。
Android:v2rayNG 与 v2flyNG 配置
客户端选择与安装架构
Android 首推 v2rayNG,它使用 Xray 内核,适合包含 VLESS、VMess、Trojan、REALITY 等常见配置的使用场景。v2flyNG 使用 V2Fly 内核,可作为需要对应内核行为时的备选。两款客户端可以安装在同一设备上,但系统同一时间只能由一个应用建立 VPN 服务。切换客户端前先断开当前连接,避免系统状态栏仍显示旧服务、而新客户端无法取得接管权限。
大多数近年设备可选择 arm64 安装包。设备架构无法确认,或 arm64 包安装时提示不兼容时,改用通用版。安装完成后首次打开,先允许必要的网络连接权限;通知权限是否开启会影响连接状态是否容易被观察,但不决定节点参数是否正确。系统要求建立 VPN 连接时会显示确认对话框,这是 Android 通过本地 VPN 接口把应用流量交给客户端处理的标准步骤。
订阅、剪贴板与二维码导入
订阅导入时,在订阅分组中新增名称和完整链接,然后更新订阅。部分系统会限制应用后台读取剪贴板,因此从剪贴板导入失败时,可在新增页面中手动粘贴。二维码适合导入单个分享配置;扫描前应确认二维码来自可信配置来源,并检查导入后显示的协议、地址、端口和传输参数是否完整。二维码模糊或被裁切时,客户端可能无法识别,但这不影响通过订阅链接导入。
订阅更新成功后,从节点列表选择一个配置并返回主界面。若存在多个分组,应确认当前节点属于刚更新的分组。节点备注只用于识别,不参与连接;真正决定连接的是地址、端口、用户标识、协议、传输层、安全层与服务器名称等参数。手工编辑时不要只比较前几个字段。尤其是 WebSocket 路径、gRPC 服务名、TLS 服务器名称、REALITY 公钥和短标识,任一缺失都可能让连接在握手阶段失败。
VPN 服务、按应用代理与后台限制
点击连接按钮后,v2rayNG 或 v2flyNG 会启动本地 VPN 服务。它与桌面系统代理不同:应用流量会进入系统虚拟网络接口,再由客户端根据路由规则决定直连或代理。系统状态栏显示 VPN 图标只说明接口已经建立,不说明远端节点一定可用。连接后应查看客户端日志或实际打开目标服务验证;若立即断开,重点检查配置解析和内核启动日志。
按应用代理用于限制哪些应用进入客户端。白名单模式只处理选中的应用,黑名单模式处理未被排除的应用。配置错误时常见现象是浏览器可以使用,但目标应用不经过代理,或系统组件被意外纳入后出现异常。首次连接建议先不启用复杂的按应用规则,确认基础连接后再逐个加入。修改应用列表后重新连接,使 VPN 路由重新建立。
Android 的省电策略会限制后台进程。屏幕关闭一段时间后连接中断、切回应用才恢复,通常需要在系统电池设置中允许客户端后台运行,并避免把它放入强制休眠列表。不同厂商设置名称不同,判断依据是客户端进程是否在锁屏后被终止。常驻通知可以帮助系统和用户识别连接状态,不应通过强制停止应用来断开;应在客户端内点击断开,让 VPN 接口和路由正常释放。
分应用规则、局域网与 DNS
访问局域网设备时,需要确保私有地址段走直连。家庭路由器、打印机、存储设备通常位于 192.168.0.0/16、10.0.0.0/8 或 172.16.0.0/12。若启用全局代理后无法访问这些设备,应改用包含局域网直连规则的路由模式,而不是为每台设备新增远端规则。移动网络与 Wi-Fi 切换时,底层连接会变化,客户端可能需要重新连接;这属于网络路径重建,不需要重新导入订阅。
Android 的私人 DNS、客户端 DNS 设置与节点域名解析可能相互影响。出现“地址形式可连接、域名形式失败”时,先恢复客户端默认 DNS,并暂时关闭额外的系统级 DNS 配置进行对照。若只有个别域名方向错误,再检查路由规则使用的是域名匹配还是解析后的地址匹配。不要同时修改私人 DNS、客户端 DNS、路由模式和节点安全参数,否则对照结果失去意义。
| 场景 | 建议设置 | 需要复查的状态 |
|---|---|---|
| 首次验证 | 默认路由,不启用按应用筛选 | 内核日志与实际访问结果 |
| 只处理指定应用 | 启用白名单并逐个选择 | 目标应用是否确实进入 VPN |
| 锁屏后断开 | 允许后台运行,调整省电限制 | 客户端进程是否被系统终止 |
| 局域网设备不可达 | 私有地址段直连 | 当前路由是否处于全局代理 |
订阅、节点与跨设备配置管理
订阅更新不是客户端升级
订阅更新、客户端升级和内核更新是三件独立的事。订阅更新从既有链接重新读取节点列表,可能增加、删除或修改节点;客户端升级更新图形界面及其管理逻辑;内核更新影响协议实现和连接行为。排查问题时必须记录改变的是哪一层。若更新订阅后某个节点失效,应先比较节点参数或换同一订阅中的其他节点;若更新内核后多个原本可用的配置同时异常,则应查看内核日志与配置兼容性。
订阅应按来源分组,并使用清晰备注。不要把多个来源合并成一个无法追溯的列表,也不要用“默认”“测试”这类难以区分的名称堆积副本。执行更新前确认目标分组,更新后观察节点数量和备注是否符合预期。某些订阅更新会移除服务端已经删除的节点,因此手工修改订阅节点的结果可能在下次更新时被覆盖。需要长期保留的个性化配置,应复制为本地独立配置,再对副本编辑。
四种导入方式的适用边界
订阅链接适合多节点与持续维护,分享链接适合单节点快速传递,二维码适合相邻设备间导入少量配置,配置文件适合携带较完整的入站、出站、路由和 DNS 结构。分享链接通常只描述一个出站节点,不一定包含客户端级路由策略;从桌面复制到 Android 后,节点参数可以保留,但系统代理、按应用代理和 TUN 等平台设置不会随节点自动迁移。
配置文件导入需要区分“客户端备份”和“内核配置”。客户端备份可能包含分组、界面设置与本地路径,只适合同一客户端体系;内核 JSON 则描述入站、出站、路由等底层结构,图形客户端未必接受所有自定义字段。导入报错时,先判断文件属于哪一类,不要把任意 JSON 都当成节点文件。跨设备同步的三种常用途径及取舍,可参考多设备同步 V2Ray 配置的三种方案。
理解节点参数的依赖关系
协议字段不能孤立判断。VLESS 与 VMess 都需要服务器地址、端口和用户标识;Trojan 以密码类凭据完成认证。传输层可能是 TCP、WebSocket、gRPC 等,安全层可能使用 TLS 或 REALITY。使用 TLS 时,服务器名称通常参与证书验证;使用 WebSocket 时,路径与请求主机需要匹配服务端;使用 gRPC 时,服务名必须一致;REALITY 配置还依赖公钥、服务器名称和短标识等参数。只修改协议名称而保留不匹配的传输参数,不会得到可工作的配置。
节点备注、分组名称和测速排序属于客户端管理信息,不参与协议握手。地址可以是域名或网络地址;域名需要先解析,因此 DNS 问题会在真正连接服务器之前发生。连接日志若显示域名解析失败,应先处理 DNS;显示连接被拒绝或超时,则继续检查地址、端口与网络路径;进入 TLS 或 REALITY 握手后失败,则重点核对安全层参数。按阶段读日志比笼统地“换一个模式”更有效。
安全保存与更新节奏
订阅链接和分享链接可能包含访问所需的完整信息。它们适合存放在受控的密码管理工具或设备安全存储中,不应写入公开笔记、论坛帖子、屏幕录制和完整日志。向他人提供排错信息时,可保留协议类型、传输方式和错误阶段,但应遮去服务器地址、用户标识、密码、公钥相关配置以及订阅链接。客户端日志中可能记录目标地址,分享前需要先阅读内容。
更新节奏应与实际使用相匹配。频繁刷新订阅不会提高连接质量,反而可能在服务端临时异常时覆盖当前列表。可以使用客户端的定时更新功能,也可以在节点失效或收到配置变更通知时手动更新。更新后先保留原有选择,确认新列表可用再切换。多设备使用同一订阅时,不必要求所有设备同一时刻刷新,但应避免某台设备长期停留在已经移除的旧参数上。
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "direct"
}
]
}
}
系统代理、TUN、路由分流与 DNS
系统代理与 TUN 的本质差异
系统代理是在操作系统中公布一个本地代理地址,只有主动读取这项设置的应用才会把请求交给客户端。它配置简单、影响范围清晰,适合浏览器和常规桌面应用。TUN 则通过虚拟网络接口接收更广范围的流量,再交由内核决定直连或代理。它可以覆盖不支持系统代理的程序,但同时涉及路由表、DNS、权限和虚拟接口,排错层次更多。
选择模式时以应用需求为依据。只需要浏览器、办公软件和明确支持代理的工具时,先用系统代理;有程序忽略系统代理、需要统一处理更多流量时,再启用 TUN。Android 客户端通过系统 VPN 服务接管流量,其使用体验与桌面 TUN 有相似之处,但权限和路由由移动系统管理。不要同时让多个客户端修改系统代理或建立虚拟网络接口,否则流量可能循环、被错误转发或进入不可预测的出口。
路由规则如何匹配
路由规则通常根据域名、网络地址、端口、协议或入站标签匹配请求,并把请求送往代理、直连或阻断出站。规则存在顺序时,前面已经匹配的请求不会继续落入后面的通用规则。因此,自定义规则应从具体条件排到宽泛条件,最后保留默认出口。局域网与私有地址一般应优先直连,避免访问路由器、打印机和本地服务时绕到远端节点。
域名匹配与网络地址匹配发生在不同阶段。使用 domain:、full: 或规则集匹配时,内核可以按请求中的域名决定方向;如果应用直接访问网络地址,域名规则不会生效。某些策略会先解析域名,再根据解析结果匹配地址规则。修改 domainStrategy 会影响这一过程,应先理解当前规则来源,不要把它当作通用加速开关。
| 模式 | 适用情况 | 主要边界 |
|---|---|---|
| 系统代理 | 浏览器与读取系统设置的桌面应用 | 不读取代理设置的程序可能直连 |
| TUN | 需要接管更多应用与协议流量 | 依赖虚拟接口、权限、路由与 DNS |
| 规则分流 | 直连与代理请求并存 | 规则顺序和匹配类型会影响结果 |
| 全局代理 | 短时验证是否存在规则误判 | 局域网和无需代理的请求也可能受影响 |
DNS 与路由必须协同
DNS 负责把域名转换为可连接的地址,路由决定解析请求和后续连接分别走哪个出口。两者不一致时,会出现域名解析到不适合当前出口的结果,或者 DNS 请求已经被错误路径阻断。常见表现包括:节点连接测试有响应,但网页域名打不开;个别域名反复超时;切换到网络地址后有变化;启用 TUN 后所有域名同时失效。
排查 DNS 时先恢复客户端默认方案,确认节点和基础路由能够工作。随后检查操作系统是否还有其他 DNS 工具、浏览器安全 DNS或企业网络策略。一次只保留一个主要控制层。需要自定义时,可以让直连域名使用本地可达解析器,让代理方向的域名按客户端方案处理,但具体规则必须与当前内核能力对应。不要复制来源不明的大段 DNS 配置,因为其中的监听地址、出站标签和路由标签可能与本机配置完全不同。
验证流量到底走向哪里
验证分流不能只看客户端图标。先检查内核日志是否出现目标域名或地址以及所选出站标签;再对照当前路由规则,确认命中的条件符合预期。若日志中完全没有目标请求,说明应用没有进入客户端,应回到系统代理、环境变量、按应用代理或 TUN 接管层检查。若日志中有请求但出站方向错误,则处理规则顺序。若方向正确但连接失败,再检查节点和网络路径。
临时切换全局模式是一种对照方法:同一节点在全局模式可用、规则模式不可用,问题通常位于路由或 DNS;两种模式都不可用,则优先检查节点、内核和基础网络。完成对照后应恢复原有模式,并重新连接当前节点。长期把全局模式当成修复方案,会掩盖规则错误,也可能让本应直连的局域网与常规请求改变路径。
配置维护与常见故障排查
建立分层排查顺序
故障定位应按“基础网络、客户端进程、内核启动、节点连接、流量接管、路由与 DNS、目标应用”逐层推进。先确认设备本身能够接入当前网络,并完成认证网络的登录;再确认客户端没有被系统终止,内核进程已建立本地监听;随后验证节点连接;最后检查系统代理、TUN、按应用规则和目标程序行为。每一层通过后再进入下一层,可以避免在节点失效时反复修改 DNS,也避免在应用未进入代理时盲目切换节点。
日志是主要依据。启动阶段的配置解析错误通常指出字段或格式问题;监听失败常见于端口占用或权限不足;域名解析错误位于连接目标之前;连接超时可能来自地址、端口、线路或远端状态;TLS、REALITY、WebSocket、gRPC 等握手错误则应核对对应安全层和传输层参数。记录错误发生的阶段,比只截取最后一行更有价值。
订阅更新失败或节点没有出现
订阅更新失败时,先在订阅设置中核对链接是否完整、是否带有空格或换行,再查看更新日志中的响应状态和解析结果。如果当前网络无法访问订阅地址,可先确认基础网络和 DNS;如果能够取得内容但解析失败,说明内容格式与客户端预期不一致。不要把普通网页地址当作订阅链接,也不要手工修改无法理解的编码内容。
日志显示更新成功但列表没有节点时,检查当前分组筛选、搜索框和订阅分组选择。旧搜索关键词会让新节点全部被隐藏。若节点出现后很快消失,可能是再次更新时服务端返回了新列表并移除了旧条目。手工保留的配置应复制到本地分组,避免被订阅同步覆盖。多台设备表现不一致时,比较各设备最后更新时刻和所用客户端内核,不要只比较节点备注。
连接成功但应用无法访问
客户端显示连接并不代表目标应用一定进入代理。桌面系统代理模式下,先用遵循系统代理的浏览器验证;命令行工具需要检查环境变量或自身代理参数;Android 需要检查按应用代理列表;TUN 模式需要检查虚拟接口和路由。若日志没有目标应用的任何请求,问题在接管层。若日志出现请求并走向代理出站,再继续检查目标域名解析、节点线路与应用协议。
只有部分网站异常时,临时用全局模式对照。如果全局模式正常,检查规则匹配和 DNS;若仍异常,换同一订阅中的另一节点测试,以区分节点与本地配置。速度慢时按节点本身、中间线路、本地设置三层处理,不要同时开启多个“优化”参数。完整的分层方法可继续阅读V2Ray 速度慢分层排查。
启动失败、端口冲突与残留代理
内核启动后立即停止,先查本地端口是否被占用。退出其他代理客户端和重复的 v2rayN 实例,再确认旧内核进程是否仍存在。若修改端口,应同时更新系统代理或环境变量中引用的端口;只改一侧会造成系统继续连接旧地址。权限错误则检查程序目录是否可写、内核文件是否可执行、TUN 操作是否获得必要授权。不要把配置目录放在只读介质或会自动回滚的临时位置。
客户端异常退出后,系统代理可能仍指向本地监听端口。典型表现是所有遵循系统代理的程序都无法访问,而关闭代理后立即恢复。此时先在操作系统网络设置中清除代理,或重新打开客户端后执行“清除系统代理”。TUN 残留则应确认虚拟接口和路由是否已经释放,必要时先正常启动客户端再执行断开。重启设备可以清理部分临时状态,但应在恢复后继续寻找导致异常退出的日志原因。
更新客户端、内核与配置的维护节奏
维护时不要把三类更新同时进行。先记录当前可用节点、路由模式和接管方式,再单独更新客户端并验证启动;随后按需要更新内核并验证既有节点;最后更新订阅。若某一步后出现问题,可以明确回到前一步检查。客户端更新前应正常退出程序,Android 更新前应先断开 VPN 服务。桌面端若保留多个版本用于回退,应确保它们使用不同目录,且同一时间只启动一个实例。
定期清理已经失效的本地副本、重复订阅和长期不用的自定义规则。规则越多,优先级冲突越难判断。稳定配置应保持可解释:知道每个订阅来自哪里、当前内核为何被选用、系统代理或 TUN为何开启、哪些规则负责直连。首次安装与基础设置还可结合v2rayN 首次安装设置指南核对;只需要重新走一遍最短操作链时,返回快速上手教程。
日志没有目标请求
检查系统代理、TUN、环境变量、按应用代理和目标程序自身的代理设置。
请求进入但方向错误
检查路由规则顺序、域名与地址匹配方式,以及默认出站标签。
方向正确但连接失败
检查节点地址、端口、传输、安全参数、DNS 与当前网络路径。