全平台指南 · 系统查阅手册

V2Ray 全平台安装与配置

围绕 v2rayN、v2rayNG 与 v2flyNG,逐章整理 Windows、macOS、Android、Linux 的下载选择、安装路径、订阅导入、系统代理、TUN、路由、DNS 与常见故障。

4 个平台 3 款客户端 8 个主题章节 Xray · V2Fly

本页定位为系统查阅手册,适合已经完成首次连接、正在处理平台差异或希望理解配置原理的读者。如果目标只是尽快完成订阅导入、选择节点和开启代理,可以先阅读快速上手主线;需要选择安装包时前往客户端下载页。本文不会重复堆叠简短步骤,而是把每个平台容易忽略的权限、代理范围、TUN 行为、DNS 关系和排错顺序展开说明。

阅读时不必从头执行到尾。首次配置建议依次查看“通用准备工作”“连接模式与配置边界”和当前平台章节;遇到订阅、分流、DNS 或连接问题,再跳到后两章按现象排查。修改关键设置前,建议记录当前工作状态,一次只调整一项,这样更容易判断问题来自客户端、订阅内容、系统网络还是目标网站。

01 · BEFORE INSTALLATION

通用准备工作:安装包、订阅与系统状态

先按平台和处理器选择客户端

桌面平台优先使用 v2rayN,它覆盖 Windows、macOS 与 Linux,并提供订阅分组、系统代理、TUN、路由和日志等完整入口。Android 可使用 v2rayNG;需要 V2Fly 内核路线时可选择 v2flyNG。三款客户端的职责并不完全相同:v2rayN 面向桌面环境,配置项更集中;v2rayNG 和 v2flyNG 更适合触屏操作,并通过系统的 VPN 接口接管指定流量。不要把不同客户端的设置截图逐项对照,因为名称、菜单层级和默认行为可能不同,应以功能目的为判断依据。

下载前先确认处理器架构。Windows 常见设备使用 x64;macOS 需要区分 Apple Silicon 与 Intel;Android 主流设备通常选择 arm64,无法确认架构或安装失败时再使用通用版;Linux 除 x64 与 arm64 外,还要按发行版选择 deb 或 rpm。deb 通常用于 Debian、Ubuntu 及其衍生系统,rpm 常用于 Fedora、Rocky Linux、AlmaLinux 等发行版。架构选错时,常见现象是安装器无法启动、系统提示包不兼容,或者安装后程序立即退出,这类问题不需要反复修改订阅。

平台 首选客户端 安装包判断 代理接管方式
Windows v2rayN x64 桌面版或经典 WPF 版 系统代理或 TUN
macOS v2rayN Apple Silicon 或 Intel DMG 系统代理或 TUN
Linux v2rayN x64/arm64 与 deb/rpm 配对 桌面代理、环境变量或 TUN
Android v2rayNG arm64 优先,通用版兼容 系统 VPN 接口

确认订阅资料属于哪一层

客户端只负责读取配置并调用内核建立连接,不会自动生成可用服务器。开始前应准备可正常访问的订阅地址、单条分享链接或完整配置文件。订阅地址通常包含多个配置,由服务提供方维护;单条分享链接只代表一个配置;JSON 文件则可能包含完整的入站、出站、DNS 与路由规则。三种资料的导入入口不同,排错方式也不同。订阅更新失败时应检查地址和网络可达性,单节点连接失败时应检查协议参数,完整配置无法启动时则要查看 JSON 结构和日志中的字段错误。

订阅地址应按敏感资料管理。不要把地址贴入公开讨论、截图或浏览器同步笔记,因为其中可能包含账户标识。需要在多台设备使用时,直接在可信设备上录入,并利用客户端的订阅分组区分来源。若同一客户端同时维护多个订阅,建议名称使用“用途或提供方名称”,不要使用“订阅一、订阅二”这类难以追踪的编号。后续发生更新失败、节点重复或规则差异时,清晰的分组名称能显著缩短定位时间。

建立可回退的初始状态

安装前先确认系统时间与时区正确。TLS 握手依赖时间,设备时间偏差过大时,客户端可能表现为所有节点同时失败。然后记录当前系统代理状态、VPN 状态、DNS 设置以及正在运行的网络工具。首次测试只保留一个代理客户端运行,避免多个程序同时修改系统代理或虚拟网卡。公司网络、校园网络和公共热点可能附带认证页面,必须先在浏览器完成网络登录,再判断客户端连接问题。

建议先使用客户端默认设置完成一次连接,再做 TUN、分流和自定义 DNS。一次引入太多变量,会让故障现象失去指向性。初始验证应包含三个层次:客户端日志没有启动错误;浏览器能够访问预期网站;关闭代理后网络能够恢复原状。第三项尤其重要,它可以提前发现系统代理未清理、虚拟网卡残留或 DNS 被固定修改的问题。

完成准备后,可先阅读v2rayN 首次连接教程了解测速与生效验证。若要管理多个来源,可参考订阅分组设置实践。这些文章处理单一任务,本章则提供后续各平台共同使用的判断基线。

02 · TRAFFIC CONTROL

连接模式与配置边界:系统代理、TUN 和应用内代理

系统代理适合浏览器和遵循系统设置的程序

系统代理的本质,是把客户端监听的本地 HTTP 或 SOCKS 端口写入操作系统代理设置。浏览器、部分办公软件和多数遵循系统网络框架的应用,会把请求发送给本地端口,再由 V2Ray 内核根据路由规则选择直连或代理出站。它的优点是行为清晰、启停快速、权限要求较少,首次配置应优先使用。它的边界也很明确:不读取系统代理的程序、某些命令行工具、部分游戏和使用自定义网络栈的软件可能完全绕过。

开启系统代理后,客户端通常提供“清除”“自动配置”“全局”或“保持不变”等选项。不同版本文字可能略有差异,但判断原则一致:自动配置负责把本地监听地址写入系统;清除负责恢复系统状态;保持不变只运行内核,不修改系统。排错时不要只看菜单是否打勾,应进入系统网络设置确认代理地址仍指向本机,并检查端口是否与客户端当前入站端口一致。若端口已被其他程序占用,日志通常会出现监听失败或地址占用提示。

TUN 适合需要更广流量覆盖的场景

TUN 模式通过虚拟网卡接收 IP 流量,再交给内核处理,因此能覆盖更多不遵循系统代理的应用。它通常需要管理员权限,并涉及路由表、DNS 劫持或自动路由。TUN 并不是“更高级就一定更好”的开关:在只需要浏览器代理时,系统代理更容易维护;需要命令行、桌面程序或多个网络栈统一经过规则时,再考虑 TUN。启用前应保存当前配置,关闭其他虚拟网络工具,并确认系统防火墙没有阻止客户端创建接口。

TUN 启动后无法联网,不一定是节点问题。常见原因包括虚拟网卡权限不足、默认路由未写入、局域网网段被错误接管、DNS 请求没有返回,以及休眠恢复后接口状态失效。判断时先关闭 TUN,切回系统代理测试同一节点。若系统代理可用而 TUN 不可用,问题范围已经缩小到虚拟网卡、路由或 DNS,不应继续反复更新订阅。若两种模式都失败,再检查节点、内核日志和当前网络。

应用内代理是精确但容易遗漏的第三条路径

命令行工具和开发软件常允许单独指定代理。例如某些程序读取 HTTP_PROXYHTTPS_PROXYALL_PROXY 环境变量,另一些程序在自身设置页填写 HTTP 或 SOCKS 地址。应用内代理不会自动跟随系统代理开关,优点是影响范围小,缺点是关闭客户端后可能留下失效地址。配置时应使用客户端显示的本地监听端口,不要直接填写远端服务器地址。远端节点由内核管理,应用只需要连接本机入口。

export HTTP_PROXY=http://127.0.0.1:10809
export HTTPS_PROXY=http://127.0.0.1:10809
export ALL_PROXY=socks5://127.0.0.1:10808

curl -I https://example.com

上例端口仅用于说明本地代理变量的格式,实际值必须以客户端设置页为准。测试结束后可在当前终端执行 unset HTTP_PROXY HTTPS_PROXY ALL_PROXY。如果终端能够访问而图形应用不能,说明内核与节点大概率正常,应检查图形应用是否读取系统代理;反过来,浏览器可用而终端不可用,通常意味着终端程序没有读取系统设置。

路由模式决定连接之后如何分流

系统代理或 TUN 负责把流量送进内核,路由规则负责决定流量从哪个出站离开。这两个概念经常被混淆。开启“全局代理”通常表示进入内核的请求优先走代理出站;规则模式则按照域名、IP、端口或进程条件匹配;直连模式用于临时恢复。规则按顺序匹配时,上方较宽的规则可能遮住下方精确规则,因此修改后要检查顺序,而不只是检查规则是否存在。

局域网地址、打印机、网络存储和路由器管理页通常应保持直连。TUN 模式下尤其要留意私有地址段,否则设备可能无法访问本地服务。常见私有网段包括 10.0.0.0/8172.16.0.0/12192.168.0.0/16。如果开启后公网正常但局域网失联,应先查看这些网段是否被设置为直连,再检查系统是否同时存在公司网络或容器网络的重叠路由。

验证代理是否生效不能只依赖客户端图标。应同时观察日志、目标网站访问结果和出口网络变化。测速也要区分 TCP 延迟与真连接测试:前者只表示基础握手响应,后者更接近实际可用性。具体判断顺序可参阅节点延迟、地区与协议选择

03 · WINDOWS

Windows:v2rayN 安装、订阅导入与系统接管

桌面版与经典 WPF 版如何选择

Windows 下载页提供 v2rayN 桌面版与经典 WPF 版。桌面版采用新一代跨平台界面,适合希望在不同桌面系统之间保持操作习惯的用户;经典 WPF 版与 Windows 桌面环境结合更紧密,界面和托盘操作路径也更为传统。两者都能完成订阅、节点选择、系统代理、路由和日志查看,不需要同时安装。首次使用可优先选桌面版;已有明确 WPF 使用习惯,或需要与既有配置流程保持一致时,再选择经典版。

安装时应使用普通用户可稳定读写的位置。若安装器需要系统授权,确认来源后按系统提示完成。首次启动后先不要开启开机自启和 TUN,先检查主窗口能否正常显示、日志区是否成功加载内核。安全软件询问网络访问权限时,需要允许客户端在当前网络类型下建立本地监听和出站连接;若直接拒绝,可能出现界面正常但所有测试失败的情况。

订阅分组与首次更新

进入订阅分组设置,新建分组并填写订阅地址。分组名称用于区分来源,不影响远端内容。保存后执行“更新当前订阅”或等价操作,等待服务器列表刷新。列表为空时,先查看更新日志:若提示地址访问失败,检查订阅地址和当前网络;若提示解析失败,确认复制时没有换行、空格或缺失字符;若更新成功但列表被隐藏,检查服务器过滤条件和当前分组标签。

多个订阅不要全部堆入同一分组。独立分组便于分别更新、停用和过滤,也能避免同名节点难以追踪。更新间隔不宜过短,客户端在启动时频繁请求订阅并不会改善节点质量。更稳妥的方式是按服务提供方建议的周期更新,出现大范围不可用或配置变更时再手动刷新。更新前后服务器名称变化属于订阅内容变化,不代表本地配置损坏。

选择配置、真连接测试与系统代理

订阅更新后,选择一条配置设为活动服务器。不要只依据名称判断,先执行真连接测试或实际访问测试。TCP 延迟为超时的配置通常不可用,但延迟较低也不代表应用层一定成功;TLS、认证、传输参数或远端状态仍可能导致连接失败。首次测试建议选择普通线路,不同时启用复杂的自定义路由和 DNS,以便先建立一个可工作的基准。

确认活动配置后开启系统代理。Windows 系统设置中的代理服务器应指向 127.0.0.1 与客户端对应端口。浏览器若仍显示旧状态,可完全退出后重新打开,或检查浏览器是否使用了独立代理扩展。关闭 v2rayN 前最好先清除系统代理;如果程序异常退出,进入 Windows 的“网络和 Internet”代理设置,关闭残留的手动代理,再重新启动客户端。

TUN、权限与休眠恢复

需要让不遵循系统代理的软件进入规则处理时,可在确认普通代理可用后启用 TUN。第一次创建虚拟网卡通常需要管理员权限。若启动失败,先以正常方式退出客户端,再使用系统授权启动一次完成组件初始化;长期使用时是否每次需要管理员权限,取决于安装方式和系统策略。不要同时保留另一个虚拟网络程序的 TUN 模式,它们可能竞争默认路由和 DNS。

Windows 休眠、切换 Wi-Fi 或从有线网络切到无线网络后,虚拟接口可能保留旧路由。现象通常是客户端仍显示运行,但新连接无法建立。处理顺序是:关闭系统代理或 TUN,等待数秒,再重新开启;仍无效时重启内核;最后才重启客户端。直接删除系统网卡不是首选操作,因为问题多数只是路由没有刷新。

v2rayN 主窗口中的服务器列表、订阅分组、日志与设置区功能,可配合v2rayN 主界面功能详解阅读。安装包与当前可用入口统一列在Windows 下载区,不要从主界面截图中的版本外观反推安装包类型。

04 · MACOS

macOS:芯片选择、权限授予与代理恢复

确认芯片类型并完成安装

macOS 版 v2rayN 提供 Apple Silicon 与 Intel 两类 DMG。可在系统“关于本机”中查看芯片信息:显示 Apple 芯片名称时选择 arm64 对应安装包,显示 Intel 处理器时选择 x64 安装包。安装包选错可能导致程序无法打开,或由兼容转换层运行而出现额外问题。将应用拖入“应用程序”目录后再启动,不建议长期从挂载的磁盘映像中运行,因为路径变化会影响权限、自动启动和后续更新。

首次启动时,系统可能要求确认来自已下载应用、网络访问或添加辅助网络配置。应通过系统设置中的隐私与安全页面处理明确提示,不要连续重复点击程序图标。若系统仍在验证应用,等待验证完成后再判断是否启动失败。安装后找不到窗口时,检查菜单栏和程序坞;部分桌面客户端关闭主窗口后仍在后台运行,真正退出需要使用菜单中的退出命令。

导入订阅与确认本地监听

订阅流程与 Windows 类似:创建订阅分组、填写地址、保存并更新,然后选择活动配置。复制地址时要留意系统剪贴板是否带入前后空格。若更新过程没有生成服务器列表,先打开日志查看 HTTP 状态与解析信息。浏览器能够打开普通网页并不能证明订阅地址可访问,因为地址可能有独立的访问限制;反过来,订阅更新成功也只说明配置已下载,不代表其中每个节点都能连接。

选择配置后先启动内核,再检查本地 HTTP 与 SOCKS 监听是否建立。系统代理需要填写客户端当前显示的地址和端口,通常地址为回环地址。不要把局域网地址随意写入系统代理,也不要开启“允许局域网连接”作为默认做法。该选项会扩大本地监听范围,只有明确需要让同一网络中的其他设备使用当前代理,并理解网络边界时才应配置。

系统代理与按服务设置

macOS 的代理设置按网络服务保存,Wi-Fi 与有线网络可以拥有不同配置。v2rayN 修改系统代理后,如果切换了网络服务,新的服务可能没有同步设置;同样,手动在系统设置中修改代理,也可能与客户端菜单状态不一致。出现浏览器不走代理时,先确认当前正在使用的网络服务,再检查网页代理与安全网页代理的服务器和端口是否指向本机。

关闭客户端后网络完全无法访问,通常是系统代理仍保留,而本地监听已经停止。此时进入当前网络服务的代理详情,关闭对应代理项,保存后重新测试直连。若客户端仍在运行,可先使用其“清除系统代理”功能。不要通过反复重启路由器处理本机代理残留,这不会改变系统中的代理地址。

TUN、网络扩展与 DNS

macOS 上的 TUN 模式可能需要系统授权创建虚拟网络接口。首次启用时应观察系统弹窗和隐私与安全页面,授权完成后重新启动模式。若按钮开启后立即回落,查看日志中是否有权限、接口创建或路由写入错误。若 TUN 能启动但域名无法访问,而直接访问已知 IP 有响应,应优先检查 DNS;如果域名与 IP 都不可达,则检查默认路由和当前节点。

网络从家庭 Wi-Fi 切换到公司网络、热点或有线接口时,系统可能改变 DNS 与默认路由。TUN 模式应在网络切换后重新建立,避免沿用旧接口。局域网服务不可访问时,检查私有地址是否直连,并确认“绕过简单主机名”或类似系统选项没有被错误覆盖。对于开发环境中的本地域名,还要确认它依赖的 hosts、局域网 DNS 或容器网络没有被远程 DNS 规则替代。

scutil --proxy
networksetup -listallnetworkservices
route -n get default

以上命令用于查看当前系统代理、网络服务列表和默认路由,不会修改配置。执行结果中若代理已启用,应核对服务器地址与端口;默认路由则应指向当前实际网络接口或由 TUN 正确接管。排查结束后仍建议回到图形界面完成开关,避免命令行状态与客户端状态分离。

当前芯片对应的安装入口位于macOS 下载区。如果同一节点在系统代理下可用、TUN 下不可用,应保留订阅和节点不变,集中检查权限、DNS 与路由,这比重新安装更有诊断价值。

05 · LINUX

Linux:软件包安装、桌面代理与服务边界

在 deb 与 rpm 之间正确选择

Linux 版 v2rayN 需要同时匹配发行版包格式和处理器架构。Debian、Ubuntu、Linux Mint 等系统通常使用 deb;Fedora、Rocky Linux、AlmaLinux 等系统通常使用 rpm。x64 用于常见的 Intel 与 AMD 桌面处理器,arm64 用于相应的 ARM 设备。可以通过 uname -m 查看架构:常见的 x86_64 对应 x64,aarch64 对应 arm64。包格式和架构任一不匹配,都可能在安装阶段被包管理器拒绝。

uname -m

sudo apt install ./v2rayN*.deb
sudo dnf install ./v2rayN*.rpm

应在下载文件所在目录执行与发行版匹配的一条安装命令。使用包管理器安装比直接解压更便于处理桌面入口和依赖关系。若提示依赖无法满足,先更新当前发行版的软件包索引并检查系统版本是否仍受支持,不要随意从其他发行版混装基础库。程序安装成功但无法从菜单启动时,可从终端启动一次并观察标准输出,通常能够看到缺少图形依赖、显示服务或权限方面的具体信息。

桌面环境决定系统代理能否自动写入

Linux 没有统一的桌面代理接口。GNOME、KDE Plasma 与其他桌面环境保存代理的方式不同,v2rayN 的自动设置能力也可能随桌面会话而变化。客户端显示“系统代理已开启”后,仍应进入桌面网络设置确认 HTTP、HTTPS 与 SOCKS 项。某些应用遵循桌面代理,某些应用只读取环境变量,还有些应用完全使用自身设置。因此,Linux 上更要区分“内核运行正常”和“应用是否把流量交给内核”。

浏览器可以访问而终端命令不可以,通常不是节点突然失效,而是终端没有读取桌面代理。可在当前终端临时导出代理变量进行测试,端口以客户端实际值为准。测试成功后,再决定是否写入 shell 配置。长期环境变量会影响软件包管理器、容器工具和局域网访问,不建议在不了解影响范围时全局写入。关闭客户端后也要清除这些变量,否则命令仍会尝试连接已经停止的本地端口。

订阅目录、权限与配置持久化

订阅导入仍通过 v2rayN 图形界面完成。若以管理员身份启动过一次、之后普通用户无法保存配置,可能是配置目录所有者发生变化。图形客户端通常应由当前桌面用户运行,只有创建 TUN 或执行特定系统操作时才提升权限。长期使用管理员账户运行会让下载文件、日志和配置归属混乱,也扩大程序可访问范围。遇到保存失败时,应检查用户配置目录权限,而不是反复删除订阅。

桌面会话退出、系统升级或应用异常终止后,系统代理可能保留。恢复方法取决于桌面环境:先在网络设置中切回“无代理”或“自动”,再确认终端环境变量已经清除。若应用使用独立代理,还需进入应用设置删除本地地址。排查时可以关闭 v2rayN,然后执行普通网络请求;若请求仍试图访问 127.0.0.1,说明某处仍保存着代理配置。

TUN、路由表和容器网络冲突

Linux TUN 依赖内核设备、网络管理方式和权限。启用失败时先确认系统存在 /dev/net/tun,再查看日志是否显示权限不足。TUN 能启动但部分地址不可达时,应检查 ip routeip rule。Docker、Podman、虚拟机和公司 VPN 可能创建额外网段,如果与本地局域网或代理规则重叠,会导致流量进入错误接口。不要看到多条路由就全部删除,应先确认每条路由属于哪个软件。

ip route
ip rule
cat /etc/resolv.conf
ss -lntp

ip routeip rule 用于查看路由决策,/etc/resolv.conf 显示当前解析入口,ss -lntp 可检查本地监听端口。若客户端声称内核已启动,但对应端口不存在,应先看启动日志;若端口存在而应用连接被拒绝,则检查地址类型、协议类型和防火墙。把 HTTP 请求发送到 SOCKS 端口,或把 SOCKS 设置填入只接受 HTTP 的程序,也会表现为本地连接失败。

安装包入口和 arm64 对应项位于Linux 下载区。对于需要长期稳定运行的桌面环境,建议先让图形客户端在普通用户会话下正常工作,再逐步加入开机启动、TUN 和自定义路由。

06 · ANDROID

Android:v2rayNG、v2flyNG 导入与系统 VPN 接管

客户端与安装包选择

Android 首选 v2rayNG,它使用 Xray 内核路线;需要 V2Fly 内核时可选择 v2flyNG。两者都提供订阅、配置列表、路由和系统 VPN 接管,但菜单名称与部分协议支持可能不同。不要在两个客户端中同时启动连接,因为系统同一时间只允许一个此类 VPN 会话处于活动状态。切换客户端前,应先在当前客户端断开连接,再进入另一个客户端启动。

多数较新的主流设备选择 arm64 安装包即可;无法确认架构、arm64 包无法安装或设备兼容性特殊时,再选择通用版。安装前确保系统允许当前文件管理器或浏览器完成本次安装,结束后可关闭该来源的安装权限。若系统提示应用未安装,先检查是否已有签名不同的同名应用、存储空间是否充足,以及安装包架构是否匹配,而不是删除所有网络设置。

扫描、剪贴板与订阅导入

单条配置可通过扫描二维码、从剪贴板导入分享链接或手动填写完成。二维码导入需要相机权限;剪贴板导入前应确认复制的是完整链接;手动填写适合核对少量参数。订阅则应进入订阅分组或订阅设置,新增地址后执行更新。把订阅地址当作单条节点链接导入,通常不会得到预期列表;把单条分享链接填入订阅地址,也可能只产生错误提示。

更新后配置列表为空时,检查当前分组、筛选关键字和更新日志。列表存在但无法连接时,选择一条配置设为活动项,然后执行实际连接测试。移动网络和 Wi-Fi 的路径不同,同一配置在两种网络上的结果可能不同。判断问题时要记录当前网络类型,避免在 Wi-Fi 下更新订阅、切到移动网络测试后直接得出节点失效结论。

连接授权、分应用代理与后台限制

首次点击连接按钮时,系统会显示 VPN 连接授权。确认后,状态栏通常出现相应系统标识。若点击连接没有反应,检查是否已有其他 VPN 会话、工作资料策略或系统网络功能占用接口。客户端显示已连接但所有应用均不可访问时,先断开并切换另一条已知可用配置;若仅个别应用无网络,则检查分应用代理设置。

分应用代理可以选择哪些应用经过客户端处理,也可以设置绕过名单。规则方向必须看清:选择“仅代理所选应用”和“所选应用不走代理”会产生完全相反的结果。首次配置建议关闭分应用限制,确认整体连接正常后再逐个加入。若启用后只有新安装的应用无法连接,可能是它未被纳入现有名单,需要重新检查选择范围。

部分系统会限制后台应用、休眠网络或自动清理进程,表现为锁屏一段时间后连接断开。可在系统电池设置中允许客户端保持必要的后台运行,并关闭针对该应用的过度休眠限制。无需把所有系统节能功能全部关闭,只调整当前客户端即可。连接频繁重建还可能来自 Wi-Fi 与移动网络自动切换,应先固定一种网络测试。

路由、远程 DNS 与局域网访问

Android 客户端通常通过系统 VPN 接口接管流量,路由模式决定域名与 IP 的出站方向。使用规则模式时,局域网地址应保持直连,否则投屏、打印机、网络存储和路由器管理页可能不可达。若公网访问正常而局域网设备消失,先检查绕过局域网设置和私有地址规则,不要修改节点协议参数。

DNS 设置需要与路由目标一致。远程域名通过代理访问时,远程 DNS 可减少本地解析结果与代理出口不一致的问题;本地域名、路由器域名和局域网服务则可能依赖本地 DNS。配置过于单一时,一类域名正常,另一类域名可能失败。首次使用保留客户端默认 DNS,只有出现稳定、可复现的解析问题时再改动,并在每次修改后断开重连。

两个 Android 客户端的 arm64 与通用版入口列在Android 下载区。若想理解 Xray、V2Fly 与图形客户端的关系,可阅读Project V、V2Fly 与 Xray 生态梳理,避免把客户端名称、内核名称和协议名称混为一层。

07 · CONFIGURATION

订阅、路由与 DNS:跨平台配置的共同核心

订阅更新与节点参数是两条不同链路

订阅更新过程包括请求订阅地址、读取返回内容、解析配置并写入本地分组;节点连接过程则包括读取某一条配置、启动内核、解析服务器域名、建立传输并完成协议握手。更新成功只能证明第一条链路完成,不能证明所有节点可用;节点连接成功也不表示后续订阅一定能更新。排错时应先确定失败发生在哪条链路,否则容易用“更换节点”处理订阅地址错误,或用“重新导入订阅”处理单节点参数问题。

订阅更新前可记录当前可用配置,更新后若大量条目变化,先检查分组是否正确。多个订阅产生重名节点时,不要仅按显示名称判断来源。可以通过分组筛选后再测速,或使用关键字过滤排除不需要的地区与倍率标记。过滤条件过宽会隐藏正常节点,过滤条件过窄则失去管理意义。详细的多来源整理流程可参考多订阅分组与服务器过滤

路由规则按匹配范围和顺序工作

常见路由条件包括域名、IP 地址、端口、协议和进程。域名规则适合处理明确站点;IP 规则适合局域网和固定网段;进程规则便于桌面应用分流,但跨平台可用性不同。规则通常从上到下匹配,命中后选择代理、直连或阻止出站。因此,更精确的规则应放在更宽泛规则之前。例如先让局域网与本地域名直连,再处理特定域名,最后使用默认出站承接未匹配流量。

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": [
          "domain:example.com"
        ],
        "outboundTag": "proxy"
      }
    ]
  }
}

示例展示了路由结构的基本关系:私有地址走直连,指定域名走代理。实际完整配置还必须存在与 directproxy 标签对应的出站定义。客户端图形路由界面通常会代替手写 JSON,但理解标签关系仍然重要。若规则引用了不存在的出站标签,内核可能拒绝启动;若域名规则写法不符合当前内核格式,规则可能不命中。

DNS 决定域名如何进入路由判断

访问域名时,客户端可能先按域名规则匹配,也可能解析为 IP 后继续判断。domainStrategy 控制何时解析域名,但不同内核与客户端提供的选项可能略有差异。AsIs 倾向保留域名进行规则匹配;IPIfNonMatch 在域名规则未命中时解析 IP;更积极的解析策略会增加 DNS 参与程度。选择时应围绕规则需要,而不是把某个值当成通用加速项。

DNS 问题通常表现为域名打不开、首次访问等待较久、同一网站在不同网络结果不一致,或者 TUN 模式下全部域名失败。排查可以先比较域名与 IP 的可达性,再查看客户端 DNS 日志。不要同时修改系统 DNS、客户端 DNS、浏览器安全 DNS和路由策略;一次只改一层,才能知道哪一层生效。浏览器可能内置独立 DNS 设置,因此浏览器结果与其他应用不一致时,应检查它是否绕过系统和客户端解析。

{
  "dns": {
    "servers": [
      "https+local://1.1.1.1/dns-query",
      "localhost"
    ],
    "queryStrategy": "UseIP"
  }
}

DNS 配置能力随内核版本和客户端实现变化,上例用于说明服务器列表与查询策略的层次,不建议在未确认客户端支持方式时直接覆盖完整配置。图形客户端已经提供 DNS 预设时,应优先使用与当前内核匹配的预设,再根据日志微调。自定义配置前保存原值,出现解析异常时才能快速回退。

测速结果需要结合真实连接判断

节点列表中的延迟可能来自 TCP 探测、连接测试或目标网址测试,不同方法不能直接横向比较。TCP 延迟低表示基础连接建立较快,但不包含完整的应用请求;真连接测试更接近实际使用,却也会受测试地址、DNS 和当前网络影响。选择节点时应综合连接成功率、实际访问、地区需求与流量倍率,不要只选择列表中数值最小的一项。

批量测速会同时建立多条连接,网络较弱或节点数量很多时可能出现暂时超时。可以按订阅分组分批测试,再对候选节点进行实际访问验证。节点状态在不同时间变化属于正常网络现象,频繁切换反而会让问题难以复现。若所有节点在同一时刻失败,优先检查本机网络、系统时间、订阅状态和内核启动,而不是逐条编辑节点。

08 · TROUBLESHOOTING

配置常见问题:按现象建立排查路径

客户端无法启动或启动后立即退出

先判断是安装层还是配置层。安装器无法运行、系统提示包不兼容,多与平台、架构或包格式选择错误有关;程序窗口短暂出现后退出,则可能是运行依赖、权限、配置解析或内核加载失败。桌面平台可从终端启动程序观察输出,Windows 同时查看客户端日志目录,macOS 查看系统提示,Linux 查看标准输出和桌面会话信息。不要在没有记录错误的情况下连续重装,因为重装可能覆盖现场,却不解决架构和权限问题。

若删除配置后能够启动,说明问题可能来自自定义路由、DNS 或完整 JSON。应从最近一次修改开始回退,而不是重新导入全部内容。若默认配置也无法启动,检查系统时间、磁盘空间、用户目录写入权限和安全软件拦截。应用安装在只读位置、配置目录归管理员所有、内核文件被阻止执行,都可能产生相似现象。

订阅更新失败、更新后列表为空

订阅失败要先看请求是否发出。地址格式错误、复制不完整、网络无法访问和服务端返回异常,会在请求阶段失败;请求成功但解析失败,则重点检查返回内容是否为客户端支持的订阅格式。若解析成功但列表为空,检查当前分组、筛选关键字和是否误启用了隐藏条件。多个分组时,要确认执行的是当前分组更新,而不是另一个来源。

订阅地址能够在浏览器打开,也不代表复制到客户端后完全相同。浏览器可能自动补全或保留登录状态,客户端则按原始地址请求。重新复制时应从提供订阅的位置使用复制功能,并避免聊天软件对链接进行截断。更新频率过高可能触发服务端限制,等待合理时间后再试比连续点击更有效。

节点显示可用,但浏览器打不开网页

先检查活动节点是否真的被选中,再确认系统代理已经写入。客户端测试只验证内核对指定目标的连接,浏览器还需要把流量发送给本地端口。进入系统代理设置核对回环地址和端口,随后完全重启浏览器。若浏览器安装了独立代理扩展,暂时停用扩展,避免它覆盖系统设置。只有某一个网站失败时,应检查路由规则、DNS 与目标网站状态,不应直接判断整个代理不可用。

如果所有浏览器失败但命令行通过应用内代理可用,问题集中在系统代理或浏览器设置;如果浏览器可用而其他应用不可用,说明其他应用没有遵循系统代理,可考虑应用内代理或 TUN。通过对比应用类型,可以快速判断流量在哪一层没有进入客户端。

开启 TUN 后完全断网

立即关闭 TUN 并验证普通网络是否恢复。若关闭后仍不能访问,检查系统代理是否残留,再确认 DNS 与默认路由。普通网络恢复后,用同一节点开启系统代理测试:系统代理可用说明节点与内核基本正常,接下来只查 TUN 权限、虚拟接口、自动路由和 DNS;系统代理也不可用,则先处理节点或内核,不要继续调整虚拟网卡。

TUN 问题常发生在同时运行多个 VPN、容器网络、虚拟机或公司网络客户端时。应一次停用一个可能冲突的网络工具,并观察路由变化。局域网不可达但公网可用时,检查私有网段直连;域名失败但 IP 可达时,检查 DNS;全部流量都没有出口时,检查默认路由和接口权限。按现象拆分比“重置全部网络”更容易保留有效配置。

连接一段时间后自动中断

移动设备先检查后台限制和网络自动切换,桌面设备检查休眠恢复与网络接口变化。若每次固定时间中断,查看客户端是否设置了定时更新、内核重启或系统节能策略。若只在 Wi-Fi 信号变化时发生,可能是网络切换导致现有连接失效,断开重连通常能够恢复。若日志显示远端主动关闭或连续握手失败,再更换节点比较。

不要仅凭一次断开判断节点稳定性。记录发生时间、网络类型、当前模式和日志关键行,重复两到三次后再找规律。所有节点同时中断更像本机网络或客户端状态,只有单个节点反复失败则更接近节点侧问题。对候选节点进行真连接测试的具体方法可参考首次连接与代理生效验证

关闭客户端后网络仍异常

最常见原因是系统代理或环境变量仍指向本地端口。Windows 与 macOS 进入当前网络的代理设置关闭手动代理;Linux 除桌面代理外,还要检查终端中的 HTTP_PROXYHTTPS_PROXYALL_PROXY;Android 则确认系统 VPN 会话已经断开。若曾启用 TUN,等待虚拟接口和路由清理完成,再重新连接网络。

浏览器仍异常时,完全退出再启动,必要时检查其独立代理和 DNS 设置。只有某个应用无法恢复,进入该应用网络设置删除本地代理。不要把清除浏览器数据当作第一步,因为代理残留与网页缓存属于不同层次。先恢复系统直连,再逐层恢复客户端设置,能够避免把简单问题扩大。

如何判断应该更新订阅、换节点还是重装

订阅请求失败或服务器列表长期不更新,应处理订阅;某一条配置握手失败而其他配置正常,应换节点或等待远端恢复;所有节点失败但内核正常,应检查网络、时间、系统代理和 DNS;程序无法启动、依赖损坏或安装包架构错误,才进入安装层处理。重装位于排查路径的后段,因为多数连接问题发生在配置和系统网络层。

处理复杂故障时,建立最小配置:保留一个订阅分组、一条已知可用配置、默认路由、默认 DNS,并使用系统代理测试。最小配置成功后,逐项恢复自定义设置;在哪一步重新出现问题,原因通常就在该层。若最小配置仍失败,再收集客户端日志、系统平台、网络类型和复现步骤。描述“点击连接后日志出现什么、系统代理是否写入、系统代理与 TUN 的对比结果”,比只描述“不能用”更有助于定位。

完成排查后,建议把已确认的客户端类型、订阅分组命名、常用连接模式和自定义规则记录下来。需要重新安装时可先前往客户端下载页确认平台入口;只需重新走一遍基础流程时,返回快速上手教程即可。本手册适合处理边界与异常,快速教程则适合恢复最短可用路径。