ALL-PLATFORM SETUP REFERENCE

V2Ray 全平台安装配置大全

Windows、macOS、Android、Linux 的客户端选择、安装过程、订阅导入、系统代理、TUN、路由分流与故障定位。

系统查阅手册 v2rayN v2rayNG / v2flyNG 更新于 2026-08-19

本页定位为系统查阅手册,适合在安装、迁移、分流和排错时按章节核对。若当前目标只是完成第一次连接,可先阅读使用指南,沿着“导入订阅—选择节点—开启代理—验证结果”的主线操作;遇到平台权限、TUN、DNS、更新失败或订阅异常时,再回到本页查看对应章节。客户端安装包统一从下载中心进入,本页不放文件直链,也不固定某个版本号。

01 / PREPARATION

通用准备:平台、架构与配置来源

先区分客户端、内核与订阅

完整的 V2Ray 使用链路由三个部分组成:图形客户端负责界面、系统代理开关、日志和配置管理;内核负责解析协议、建立出站连接并执行路由;订阅或分享链接提供节点参数。v2rayN 是 Windows、macOS、Linux 上的桌面客户端,能够统一管理订阅、路由和系统代理。Android 上常用 v2rayNG 或 v2flyNG,前者采用 Xray 内核方向,后者采用 V2Fly 内核方向。两者界面流程相近,但可识别的协议扩展和高级参数并不完全相同。

客户端本身不会自动生成可用节点。安装完成后仍需导入有效订阅地址、单节点分享链接,或手工录入服务器参数。订阅地址通常返回一组节点,便于统一更新;以 vmess://vless:// 开头的分享链接通常只代表一个节点。两类内容不要混填:订阅地址应添加到“订阅分组”或“订阅设置”,单节点链接应通过剪贴板导入、扫描二维码或手工添加。具体差异可继续阅读分享链接与订阅地址说明

确认处理器架构和安装包类型

下载前先确认设备架构。Windows 与多数 Linux 桌面电脑通常使用 x64;采用 Apple 芯片的 Mac 使用 arm64,较早的 Intel Mac 使用 x64;近年的主流 Android 设备通常使用 arm64。架构选错时,常见结果是安装程序拒绝运行、系统提示应用不兼容,或程序启动后立即退出。无法判断 Android 架构时可选通用包,但通用包体积通常更大,已明确设备为 arm64 时直接选择 arm64 包更合适。

平台 首选客户端 常见架构 安装包方向
Windows v2rayN x64 桌面版或经典 WPF 版
macOS v2rayN arm64 / x64 对应芯片的 DMG
Linux v2rayN x64 / arm64 deb 或 rpm
Android v2rayNG arm64 / 通用 对应架构的安装包

记录配置边界

开始配置前建议记录四项信息:订阅名称、当前选中的节点、代理模式、是否启用 TUN。后续出现无法联网时,可以判断问题发生在订阅解析、节点连接、系统代理还是透明接管层。首次安装不要同时修改路由、DNS、端口和内核参数。先使用默认设置完成一次可验证的连接,再逐项启用分流和 TUN;一次改变多个变量会让日志难以对应具体原因。

还要确认系统时间与时区正确。部分协议的握手过程依赖时间窗口,设备时间相差过大时,表面现象可能只是连接超时。随后检查本地是否已有其他代理工具占用监听端口。常见本地端口包括 SOCKS、HTTP 和混合代理端口,不同客户端默认值可能变化,因此应以客户端设置页实际显示为准,不要照抄其他设备的端口。若计划让浏览器或开发工具单独使用代理,需要记录客户端当前监听地址和端口。

理解配置保存与敏感信息

订阅地址和节点链接可能包含访问参数,应按账号凭据处理。不要把完整地址粘贴到公开日志、截图或公开讨论中。排错时通常只需要保留协议类型、传输方式、TLS 状态、服务器端口和错误信息,可隐藏服务器地址、用户标识与订阅参数。更换设备时优先在新设备重新添加订阅,而不是直接复制整个客户端数据目录,因为不同平台的路径、权限和系统代理状态并不兼容。

准备阶段的完成标准不是“程序已经打开”,而是客户端与平台匹配、订阅来源明确、系统时间正常、端口没有明显冲突,并且知道当前将使用系统代理还是 TUN。完成这些检查后再进入对应平台章节,可显著减少安装完成却无法判断故障位置的情况。

02 / WINDOWS

Windows:v2rayN 安装、系统代理与 TUN

桌面版与经典 WPF 版的选择

Windows 平台首选 v2rayN。下载中心同时提供桌面版与经典 WPF 版:桌面版采用新一代跨平台界面,适合新安装和需要与 macOS、Linux 保持操作习惯一致的用户;经典 WPF 版沿用成熟的 Windows 界面结构,适合已经熟悉旧版菜单位置或需要传统桌面交互的环境。两者都能完成订阅管理、节点选择、系统代理和路由配置,不需要同时安装。若旧版配置仍在使用,先导出或记录订阅,再安装准备采用的版本。

进入Windows 下载入口后选择 x64 安装包。安装前关闭正在运行的旧客户端,避免配置文件被占用。若使用安装程序,按向导选择当前用户或系统允许的位置;若下载的是可直接运行的发行形式,应解压到具备写入权限的固定目录,不要长期放在临时目录。客户端需要保存订阅、日志与本地配置,目录只读会导致设置看似成功但重启后丢失。

首次启动与订阅导入

首次启动后先打开订阅设置,新建一个易识别的分组名称,再粘贴订阅地址并执行更新。更新完成后回到节点列表,确认至少有一条配置被解析出来。若列表为空,不要立即开启系统代理,应先查看订阅更新结果:返回内容为空、地址失效、网络请求失败和订阅格式不兼容,都会造成“添加成功但没有节点”。如果拿到的是单节点分享链接,应复制完整链接,再使用“从剪贴板导入”一类入口,而不是放进订阅地址栏。

选择节点后,可先使用客户端提供的连接测试或直接建立一次连接。测试结果只用于判断目标是否能够握手,不代表所有网站都会使用该节点。真正验证时应开启系统代理,再访问一个明确使用系统代理的浏览器页面。部分已经运行的应用会缓存代理状态,切换系统代理后仍沿用旧连接;遇到这种情况,应完全退出该应用后重新打开。

系统代理模式的工作范围

系统代理主要影响遵循 Windows 代理设置的应用。选择“自动配置系统代理”或含义相同的模式后,v2rayN 会把系统代理指向本地监听端口。关闭客户端前应先恢复系统代理,否则系统可能保留指向本地端口的设置,表现为客户端退出后浏览器无法访问网络。正常退出流程通常会自动处理,但强制结束进程、系统异常关机或权限拦截时仍可能残留。

可在 Windows 的网络与 Internet 代理设置中检查代理开关。若手动代理仍指向 127.0.0.1,而 v2rayN 已停止运行,应关闭该开关后再测试直连。系统代理不是对所有程序的强制接管:部分游戏、命令行程序、虚拟机和自带网络栈的软件可能忽略它。这类场景需要在应用内指定 HTTP 或 SOCKS 代理,或者评估使用 TUN。

TUN 模式与权限

TUN 会创建虚拟网络接口,让更多不读取系统代理的流量进入客户端。启用时通常需要管理员权限,首次创建接口可能触发系统确认。先退出其他会创建虚拟网卡的网络工具,再以正常方式启动 v2rayN并开启 TUN。不要同时开启多个透明接管工具,否则路由表和 DNS 可能互相覆盖。TUN 启动后应先测试普通网页,再测试原本不遵循系统代理的应用;若所有网络同时中断,优先关闭 TUN恢复基础网络。

开机启动、日志与常见阻断

需要开机运行时,可启用 v2rayN 的开机启动选项,但不要把“程序自启动”和“自动开启系统代理”混为一项。前者只保证客户端进程启动,后者决定启动后是否修改系统代理。共享电脑或经常切换网络的设备,更适合只启动客户端并手动确认节点后再开启代理。笔记本从休眠恢复后若节点失效,可先切换一次节点或重启内核,不必立即重装客户端。

启动失败或闪退时,先确认安装目录可写、旧进程已退出、本地端口未被占用,再检查系统运行环境与安全策略。日志中出现“address already in use”通常表示监听端口冲突;出现配置解析错误则应检查最近导入的节点或自定义路由。不要删除全部配置作为第一步,可先备份配置目录,然后移走最近新增的配置并重启。更完整的启动故障分支可参考客户端打不开或闪退排查

Windows 章节的完成标准是:订阅可以更新、节点能够被选中、系统代理开启后浏览器走预期链路、关闭系统代理后直连恢复。只有需要覆盖不遵循系统代理的程序时才继续启用 TUN。每次调整后保留一段对应日志,有助于区分节点不可用、代理残留、端口冲突与虚拟网卡问题。

03 / MACOS

macOS:芯片选择、权限放行与代理接管

确认芯片并安装 v2rayN

macOS 使用 v2rayN 桌面版。下载前打开系统信息或“关于本机”,查看处理器或芯片字段:显示 Apple 芯片时选择 arm64 DMG,显示 Intel 处理器时选择 x64 DMG。安装包架构与芯片不匹配时,可能无法打开,也可能依赖兼容转换层运行,增加排错变量。进入macOS 下载入口后按芯片选择文件,打开 DMG,再把应用移动到“应用程序”目录。

首次启动若被系统阻止,不要反复双击。先在“隐私与安全性”设置中查看最近被拦截的应用记录,确认名称与刚安装的 v2rayN 一致后执行允许打开。也可以在“应用程序”中对应用使用右键打开,使系统显示一次明确确认。完成放行后,后续通常可正常从启动台或应用程序目录启动。具体界面路径可能随系统小版本调整,可参考macOS 首次打开与网络权限处理

订阅导入与菜单栏状态

客户端启动后先确认主窗口或菜单栏图标已出现。添加订阅时建立分组、粘贴地址、保存并更新,然后在节点列表中选择一条配置。若复制地址后无法粘贴,检查剪贴板内容是否包含前后空格、换行或聊天软件添加的说明文字。订阅地址必须是一段连续内容。单节点链接则使用剪贴板导入入口,导入后检查协议、端口、传输方式和 TLS 等字段是否完整。

macOS 应用关闭窗口不一定代表进程退出。点击窗口关闭按钮后,v2rayN 可能仍驻留在菜单栏并继续维持代理。排错或准备重启时,应从菜单栏执行退出,随后在活动监视器确认相关进程已经结束。若只是关闭窗口却继续安装另一份应用,可能出现两个实例同时争用本地端口。

系统代理与网络服务

开启系统代理后,客户端会调整当前网络服务的代理配置。macOS 可以同时存在 Wi-Fi、有线网卡和其他网络服务,切换网络时应确认当前活动服务已应用代理。若 Wi-Fi 下正常、接入有线网络后失效,先重新切换一次系统代理,不要直接判断节点故障。浏览器和多数桌面应用会读取系统代理,但命令行工具是否遵循设置取决于工具自身;需要时可在当前终端会话中设置代理环境变量。

export HTTP_PROXY="http://127.0.0.1:本地HTTP端口"
export HTTPS_PROXY="http://127.0.0.1:本地HTTP端口"
export ALL_PROXY="socks5://127.0.0.1:本地SOCKS端口"

# 当前终端恢复直连
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY

上例中的端口应替换为 v2rayN 设置页实际显示的监听端口。环境变量只影响从当前终端启动且读取这些变量的程序,不会替代系统代理,也不会自动覆盖其他终端窗口。排查命令行访问时,先执行 env 查看是否残留旧代理变量;客户端端口已经变化而终端仍指向旧端口,是常见的“浏览器正常但命令行失败”原因。

TUN、网络扩展与授权

启用 TUN 时,系统可能要求输入本机管理员凭据,或确认添加网络扩展。授权应在系统弹窗和设置页内完成。若拒绝授权,客户端仍可能正常运行系统代理,但 TUN 无法建立。开启后可以在系统网络设置中看到新增的网络接口或相关状态。此时不要手动删除接口;应先在 v2rayN 中关闭 TUN并退出客户端,再处理遗留项。

公司网络、访客 Wi-Fi 和需要网页认证的热点应先完成网络登录,再开启 TUN。否则认证页面可能被代理或 DNS 接管阻断。切换网络后若显示已连接但没有数据,按“关闭 TUN—确认直连恢复—重新更新订阅—重新启用”的顺序处理。这样可以避免在基础网络尚未建立时反复修改节点。

休眠恢复与代理残留

Mac 从休眠恢复、Wi-Fi 漫游或切换热点后,原有连接可能已经失效。先观察客户端日志是否重新建立出站,再测试访问。若系统代理仍开启但本地内核没有恢复,应用会持续把流量发往没有监听的端口。可先关闭系统代理,确认直连网络正常,再重启客户端并重新开启。强制退出后出现全局无法联网时,也应在当前网络服务的代理详情中检查 HTTP、HTTPS 与 SOCKS 项是否仍被勾选。

需要登录后自动运行时,可使用客户端提供的启动选项或系统登录项管理,但应避免重复添加。系统登录项和客户端内部自启动同时配置,可能导致短时间内启动两个进程。稳定配置应只保留一种启动入口,并明确是否自动修改系统代理。macOS 章节的验收顺序是:应用通过系统权限检查、订阅更新成功、菜单栏状态明确、系统代理可开可关、切换网络后能够恢复;TUN 则作为独立层验证,不与首次安装同时处理。

04 / LINUX

Linux:deb、rpm、桌面代理与自启动

选择发行版包格式

Linux 桌面平台使用 v2rayN。Debian、Ubuntu 及其常见衍生系统选择 deb;Fedora、Rocky Linux、openSUSE 等采用 rpm 包管理体系的环境选择 rpm。处理器为常见桌面 x64 时选择 x64 包,arm64 设备则使用对应 arm64 包。包格式与架构必须同时匹配,仅凭桌面环境名称不能判断包类型。可在终端执行以下命令确认架构与发行版信息:

uname -m
cat /etc/os-release

x86_64 通常对应 x64,aarch64 通常对应 arm64。发行版信息中的 IDID_LIKE 可辅助判断包管理体系。进入Linux 下载入口后选择相应文件。不要把软件包当作压缩文件直接解开运行,使用系统包管理器安装可以同时登记桌面入口、依赖与卸载信息。

安装 deb 或 rpm

将终端切换到下载目录后,可使用系统包管理器安装。文件名由当前下载内容决定,输入命令时可以键入前几个字符后按 Tab 补全,避免手工拼写。以下命令中的文件名仅表示已经下载到当前目录的包:

# Debian / Ubuntu 系
sudo apt install ./v2rayN-downloaded-package.deb

# Fedora 系
sudo dnf install ./v2rayN-downloaded-package.rpm

使用 apt install ./文件.debdnf install ./文件.rpm,比直接调用底层解包命令更容易处理依赖。安装完成后从桌面应用列表启动 v2rayN。若找不到入口,可先在终端输入应用启动命令,观察是否有缺失库、显示服务或权限错误,再刷新桌面应用数据库。不要为了修复一个缺失依赖而批量安装来源不明的运行库,应根据包管理器给出的具体包名处理。

桌面代理与环境变量

GNOME、KDE 等桌面环境都有网络代理设置,但设置位置和自动应用范围不同。v2rayN 的系统代理功能会尽量对接桌面代理配置,验证时先查看桌面系统设置中的代理模式是否已经变化,再用浏览器测试。只在终端导出 HTTP_PROXY 并不等于整个桌面已开启代理;反过来,桌面代理已启用,也不保证所有命令行工具会读取它。

# 仅对当前 shell 会话设置
export http_proxy="http://127.0.0.1:本地HTTP端口"
export https_proxy="http://127.0.0.1:本地HTTP端口"
export all_proxy="socks5://127.0.0.1:本地SOCKS端口"

# 清理当前会话
unset http_proxy https_proxy all_proxy

本地监听默认只绑定回环地址时,只有本机程序可以连接。若要让同一局域网中的其他设备使用该端口,需要显式允许局域网连接、调整监听地址并配置防火墙。这会扩大服务暴露范围,不属于首次安装的必要步骤。没有明确需求时保留回环监听即可。

TUN、能力授权与路由

Linux 上的 TUN 需要系统提供 /dev/net/tun,并需要创建接口、修改路由和处理 DNS 所需的权限。桌面客户端可能通过授权对话框申请权限,也可能依赖已安装的权限管理组件。启用失败时先检查 TUN 设备是否存在,再查看日志中的“permission denied”“operation not permitted”或路由添加失败信息。不要直接长期以 root 身份运行整个图形客户端,这会让用户目录下的配置文件归属发生变化,之后普通用户可能无法保存设置。

虚拟机、容器桌面和受限企业环境可能禁用 TUN。此时系统代理仍然可用,应先保留可工作的系统代理方案。若 TUN 开启后只有域名访问失败而直接连接地址正常,重点检查 DNS;若所有流量立即中断,则检查默认路由、策略路由和其他虚拟网络软件是否冲突。关闭 TUN 后应确认虚拟接口和附加路由已被清理,再继续下一轮测试。

登录自启动与桌面会话

图形客户端应在用户桌面会话建立后启动。可优先使用 v2rayN 内置自启动设置;若桌面环境未正确处理,可使用用户级 systemd 服务,但服务必须等待图形会话和网络就绪,并使用当前用户身份。完整操作可参考Linux 安装与开机自启动设置。配置自启动后要实际注销并重新登录测试,不要只运行一次服务命令就判断成功。

自启动失败时,查看用户级日志而不是系统级服务列表。常见原因包括程序路径在更新后变化、显示环境变量不可用、桌面密钥环尚未解锁,以及网络尚未取得地址。对于经常移动办公的设备,建议客户端自动启动但不要立即强制开启 TUN,让网络认证和桌面会话先完成,再由用户确认当前网络环境。

卸载、升级与配置保留

升级时使用与当前发行版和架构一致的新包覆盖安装即可。安装前先正常退出客户端,避免内核进程和配置文件仍被占用。包管理器卸载通常不会自动删除用户主目录中的全部配置,因此重装后旧订阅可能继续出现。若排错目标是建立一份全新配置,应先备份用户配置目录,再把旧目录改名,不要直接删除。这样可以随时恢复订阅和路由规则。

Linux 章节的完成标准包括:系统包管理器能识别 v2rayN、桌面入口可以启动、订阅与节点保存在当前用户目录、桌面代理可恢复直连、TUN 关闭后路由表正常。若问题只发生在终端工具,优先检查环境变量;若只发生在图形应用,检查桌面代理;若整个系统同时受影响,再检查 TUN、DNS 与路由。

05 / ANDROID

Android:v2rayNG、v2flyNG 与系统 VPN 接管

客户端与架构选择

Android 首选 v2rayNG,需要使用 V2Fly 内核方向时可选择 v2flyNG。两款客户端都提供 arm64 与通用包。2015 年后的主流手机通常采用 arm64,但仍应以设备信息为准;明确为 arm64 时选择 arm64 包,无法确认时选择通用包。不要同时让两款客户端保持连接,因为系统同一时间通常只允许一个此类 VPN 会话处于活动状态。

Android 下载入口取得安装包后,系统可能要求允许当前浏览器或文件管理器安装应用。授权只需对实际用于打开安装包的应用开启。安装结束后可关闭这项来源权限。若系统提示无法安装,先检查已有同名应用是否来自不同签名来源、存储空间是否充足,以及下载文件是否完整到达设备;不要反复点击安装覆盖错误信息。

导入订阅与单节点链接

打开 v2rayNG 或 v2flyNG 后,订阅地址应添加到订阅分组,再执行更新。更新完成后从配置列表选择节点。单节点分享链接可复制到剪贴板,再使用从剪贴板导入功能;二维码则使用客户端扫描入口,并按系统要求授予相机权限。导入后如果列表出现重复项,通常是多次执行了剪贴板导入,或同一订阅在多个分组中重复添加,应保留来源清晰的一份。

移动端剪贴板可能在复制时截断长链接。导入失败时先把内容粘贴到本地文本编辑器,确认开头协议、末尾参数和中间字符连续。不要在即时通信窗口中手工编辑编码后的分享链接,一个字符变化就可能导致解析失败。订阅更新后节点没有变化时,先确认当前查看的是对应订阅分组,再查看更新提示,避免把“服务器端内容未变化”误判为客户端故障。

首次连接与系统确认

选择节点后点击连接,Android 会显示创建 VPN 连接的系统确认框。只有完成该确认,状态栏才会出现连接标识。客户端界面显示已选择节点,不等于系统流量已经进入代理。首次验证可先保持默认路由与 DNS,连接后打开浏览器测试;若浏览器正常,再测试其他应用。出现连接标识但所有应用均无法访问时,应先断开连接,确认移动数据或 Wi-Fi 本身可用。

从 Wi-Fi 切换到移动网络时,既有连接可能需要重新建立。系统省电策略也可能在锁屏后限制后台进程,使连接状态图标仍在但内核已停止传输。可在系统的电池设置中允许客户端必要的后台运行,并避免一键清理工具强制结束进程。不同设备厂商的设置名称不同,核心目标是允许客户端在连接期间维持前台服务和网络活动。

分应用代理与绕过规则

Android 客户端通常提供分应用代理,可选择仅让指定应用进入代理,或让选中的应用绕过代理。两种逻辑方向相反,配置前先确认当前模式。首次使用建议保持全局应用范围,验证基础连接后再做筛选。若启用“仅代理已选应用”,但忘记勾选浏览器,测试会表现为节点完全没有作用;若采用“绕过已选应用”,则被勾选的应用会直接连接。

系统组件、下载管理器和应用内嵌网页可能由不同进程发起请求。只选择主应用并不一定覆盖它调用的全部系统服务。遇到登录页能打开但下载失败时,可以临时关闭分应用限制进行对照。确认问题来自应用筛选后,再逐步添加相关组件,而不是立即修改节点协议和 DNS。

按需连接、始终开启与局域网访问

系统设置中的始终开启 VPN 会在网络恢复后尝试维持客户端连接,适合配置稳定且长期使用同一客户端的设备。启用“阻止未通过 VPN 的连接”会提高接管范围,但节点不可用或客户端未启动时,设备可能完全无法联网。首次安装阶段不建议同时打开这两个系统选项,应先确认订阅更新、节点切换和断开恢复都正常。

访问打印机、投屏设备、路由器管理页或其他局域网服务时,可能需要启用绕过局域网规则。典型私有地址包括 10.0.0.0/8172.16.0.0/12192.168.0.0/16。如果开启代理后只能访问互联网却找不到局域网设备,应检查路由是否把私有地址也送入远端出站。不要把整个未知地址段随意设为直连,应以实际局域网范围为准。

日志、耗电与后台故障

移动端排错时先查看客户端日志的时间点是否与刚才的操作一致。连接超时、DNS 解析失败、配置解析失败和系统主动停止服务属于不同分支。若应用从后台返回后立即断开,重点检查电池优化;若切换节点后仍显示旧节点,先断开再重新连接;若只有某个应用失败,检查分应用设置和该应用是否使用私有 DNS或特殊网络栈。

持续连接会维持前台服务并产生正常的网络与电量消耗。耗电明显异常时,先排除节点频繁重连、信号弱导致的网络切换和日志级别过高。不要把日志长期设为最详细级别,完成排错后恢复常规级别。Android 章节的完成标准是:系统连接确认已通过、浏览器能够验证、断开后直连恢复、网络切换后可重新建立连接,分应用规则与后台策略均符合实际使用范围。

06 / SUBSCRIPTION AND ROUTING

订阅管理、节点选择与路由分流

订阅更新的完整链路

订阅更新不是简单的“下载一个列表”。客户端先请求订阅地址,读取返回内容,再按支持的格式解析节点,最后写入指定分组。故障可能发生在任何一步:请求阶段受网络或地址状态影响,解析阶段受格式和内核能力影响,写入阶段则可能受到配置目录权限或分组设置影响。更新后应同时检查提示信息、分组名称和节点数量变化,不要只看按钮是否点击成功。

同一个订阅不应在多个分组重复添加。重复订阅会生成名称相近的节点,后续难以判断当前选择来自哪次更新。建议按用途或来源建立稳定分组,名称中不必记录版本和日期;更新时间由客户端状态或日志提供。删除订阅前先确认是否勾选“同时删除该订阅下节点”,避免留下失去来源的旧配置。订阅地址变更时,优先编辑原分组并更新,而不是新建多个临时分组。

节点参数与兼容边界

节点能否导入取决于客户端和内核是否识别其协议、传输层及附加参数。VMess、VLESS 等协议只描述连接的一部分,实际配置还可能包含 TCP、WebSocket、gRPC、TLS、REALITY、服务名、路径和服务器名称等字段。导入成功但连接失败时,应检查关键字段是否在复制或订阅转换过程中丢失。不同客户端之间迁移时,最好重新导入原始订阅,不要把某一客户端生成的内部配置文件直接交给另一平台。

节点名称只是便于识别的标签,不能代表实际线路质量。测试时应选择一个节点建立真实连接,并结合日志判断。单次延迟测试失败可能来自目标不响应探测、当前网络丢包或协议未完成握手;单次显示较低延迟也不代表持续传输稳定。排错目标是确认“能否建立连接、能否完成域名解析、请求是否进入正确出站”,而不是追求某个固定数字。

路由规则的匹配逻辑

路由规则通常按域名、地址、端口、网络类型或进程信息匹配,再把流量送到代理、直连或阻断出站。规则顺序很重要:更具体的条件应放在通用规则之前,最终再设置默认出站。若一条广泛规则提前匹配,后面的精确规则就不会生效。修改前记录当前路由模式,完成后分别测试一个应直连的目标和一个应使用代理的目标,确认两个方向都符合预期。

域名规则与地址规则处理的是不同阶段。应用先请求域名,DNS 返回地址后,内核可能继续依据解析结果匹配地址规则。启用域名嗅探时,内核还可能从流量中恢复目标域名,用于进一步分流。嗅探不是越多越好:某些非标准协议、加密连接或局域网服务可能不适合被改写。首次配置保持客户端预设,再针对明确问题调整。

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

以上示例展示规则结构:私有地址进入直连出站,指定示例域名进入代理出站。实际使用时,outboundTag 必须与当前配置中已有的出站标签一致;若客户端使用不同标签名称,直接复制会导致规则找不到目标出站。图形客户端通常会提供预设路由界面,优先在界面中修改,只有明确理解生成结果时再编辑底层 JSON。

系统代理、PAC 与全局路由

系统代理负责把遵循系统设置的应用送到本地端口,路由规则则在流量进入内核后决定走哪个出站。这两个层次不要混淆。应用没有进入本地代理时,内核路由写得再完整也不会生效;应用已经进入代理但被规则送往直连时,则表现为“客户端开启了但目标仍直连”。PAC 或自动配置脚本还会在系统代理层先做一次选择,排错时应确认到底是 PAC 没有选中,还是内核路由选择了直连。

需要简单稳定的方案时,可让系统代理把浏览器流量统一送入客户端,再由内核路由决定直连和代理。需要接管更多应用时再使用 TUN。不要同时启用多个来源的 PAC、自定义浏览器代理扩展和系统代理,这会产生多层决策,导致同一域名在不同应用中走向不同。保留单一入口,日志才能准确反映请求。

订阅更新后的安全变更流程

更新订阅可能删除旧节点、增加新节点或改变名称。更新前正在使用的节点若被移除,客户端可能切换到其他配置,也可能保留失效引用。更新后应确认当前选中项仍存在,再重新连接。自定义路由若按节点标签指向特定出站,还要检查标签是否随更新改变。分组内节点较多时,使用清晰的订阅分组和固定路由出站比依赖展示名称更稳定。

推荐的变更顺序是:记录当前节点和路由模式,更新订阅,确认解析结果,选择节点,先在默认路由下测试,再恢复自定义规则。若更新后立即失败,可切回更新前仍保留的节点进行对照。订阅与路由问题还可在术语表中查阅协议、出站、分流和 DNS 等概念,避免把界面标签当成同一层配置。

07 / TUN AND DNS

TUN、DNS 与系统网络边界

何时需要 TUN

TUN 的作用是通过虚拟网络接口接收系统流量,覆盖不读取系统代理的程序。浏览器、常规桌面应用已经能通过系统代理正常工作时,不必为了“配置更完整”而强制开启 TUN。游戏启动器、部分命令行工具、独立网络栈应用或需要统一接管的场景,才是评估 TUN 的主要理由。TUN 增加了路由、DNS、权限和虚拟接口四个变量,功能范围更广,排错链路也更长。

启用前应关闭其他会修改默认路由或创建虚拟网卡的工具,并记录系统代理状态。多数情况下,TUN 与系统代理不需要重复承担同一批流量;具体是否同时开启取决于客户端实现。若不确定,先按照客户端预设使用。启用后立刻验证三类目标:普通域名、局域网地址、一个不遵循系统代理的程序。任何一类异常都应单独记录,不要只用“能否打开网页”概括结果。

严格路由与流量回环

TUN 需要避免把客户端自身发往服务器的连接再次送回 TUN,否则会形成回环。图形客户端通常会自动排除内核进程、服务器地址或特定接口。手工修改路由时,必须保留这类排除规则。典型回环现象是启用 TUN 后日志快速重复连接、流量计数异常增长,但任何请求都无法完成。此时先关闭 TUN,不要继续切换节点;恢复网络后再检查排除路由。

严格路由用于减少流量绕过,但可能影响虚拟机、容器、局域网发现和企业内部网络。启用后若局域网设备消失,应检查私有地址是否直连、组播和广播是否被接管,以及实际活动接口的优先级。Windows 的虚拟网卡、macOS 的网络扩展、Linux 的策略路由实现不同,不能把一个平台导出的路由表直接套到另一个平台。

DNS 请求经过哪些层次

访问域名时,应用可能使用系统 DNS、浏览器内置解析、加密 DNS 或客户端接管的 DNS。客户端日志没有出现域名请求,并不一定表示应用没有联网,可能是应用自行完成了解析。相反,能解析出地址也不代表出站连接一定成功。排错要分成两步:先确认域名是否得到合理地址,再确认到该地址的连接由哪个出站处理。

开启 TUN 后,客户端可能接管系统 DNS 并把请求转发到配置的服务器。若出现所有域名失败但直接使用地址仍可访问,重点检查 DNS 监听端口、上游可达性和端口冲突。若仅部分域名解析异常,检查分流 DNS、缓存和域名规则。修改 DNS 后应重启相关连接或清理系统缓存,否则旧结果仍可能被应用继续使用。

现象 优先检查 对照方法
域名全部失败 DNS 监听、上游 DNS、端口占用 关闭 TUN 后验证系统解析
只有局域网域名失败 本地 DNS、私有域名规则 直接访问局域网地址
解析成功但连接超时 节点、出站、路由规则 查看连接阶段日志
切换节点后仍用旧结果 系统与应用 DNS 缓存 重启应用并重新连接

Fake DNS 与域名映射

部分 TUN 配置会使用 Fake DNS:先向应用返回一段内部映射地址,再由客户端在收到连接时恢复原始域名。这种方式有利于保留域名信息并执行路由,但要求映射地址段、路由和客户端状态保持一致。如果客户端退出后映射仍被系统或应用缓存,访问可能暂时失败。遇到此类现象,应关闭 TUN、恢复系统 DNS并清理相关缓存,再重新连接。

Fake DNS 不适合随意与其他本地 DNS 服务叠加。若系统中已有广告过滤 DNS、本地开发解析或容器 DNS,应先画清请求链路:谁监听本地端口、谁是上游、哪个组件负责域名规则。两个服务争用同一端口会直接启动失败,循环互相转发则会表现为持续超时。稳定方案应只有一个明确的系统入口,再由该入口转发到后续服务。

局域网、热点与虚拟环境

开启 TUN 后访问 NAS、打印机、路由器管理页失败,通常与私有地址路由或本地 DNS 有关。先直接访问设备地址;地址可达但主机名不可达时,处理本地 DNS;地址也不可达时,检查私有网段是否被错误送入代理。设备开启热点共享时,其他设备的流量是否进入 TUN 取决于系统转发与客户端能力,不能根据本机连接状态推断。

虚拟机和容器往往拥有独立网桥、DNS 与路由。宿主机系统代理通常不会自动进入虚拟环境,TUN 也可能因为接口优先级只覆盖部分流量。排错时分别在宿主机与虚拟环境中查看默认路由和 DNS,不要把容器内部连接失败归因于节点。若只需让开发工具使用代理,在工具或环境中显式设置本地代理地址往往比扩大 TUN 接管范围更容易维护。

稳定的启停顺序

启用顺序建议为:确认基础网络可用,启动客户端,更新订阅并选择节点,验证系统代理,再开启 TUN。关闭时先停 TUN,确认虚拟接口和附加路由清理,再恢复系统代理,最后退出客户端。系统异常重启后若网络不通,应按相反方向检查遗留状态:系统代理是否仍指向本地、虚拟接口是否存在、DNS 是否仍指向已停止的监听端口。

本章的验收标准是:TUN 开关前后网络状态可预测,局域网范围明确,DNS 入口只有一个,客户端退出后系统能够恢复。只要系统代理已经覆盖实际应用,就可以保留更简单的配置;更广的接管范围不等于更适合当前设备。

08 / TROUBLESHOOTING

配置常见问题与分层排错

先建立故障分层

有效排错需要先判断问题位于哪一层。第一层是设备基础网络,关闭客户端后应能正常直连;第二层是订阅与配置,客户端应能解析出节点;第三层是内核连接,日志应显示出站建立或明确错误;第四层是系统接管,应用流量必须进入本地代理或 TUN;第五层是路由与 DNS,请求应被送到预期出站。跳过前面的层次直接修改高级参数,通常会让现象更复杂。

每次只改变一个变量,并记录改变前后的结果。例如节点无法连接时,先在同一网络下切换一个节点;如果全部失败,再检查订阅与网络;只有一个失败时,问题更可能位于该节点配置。浏览器失败但客户端测试成功时,检查系统代理;系统代理正常而某个独立应用失败时,再检查应用代理或 TUN。这样的对照比反复重装更有信息量。

订阅更新失败

订阅更新失败时先确认地址完整、没有前后空格,且被添加到订阅设置而非单节点导入入口。随后查看更新提示是网络请求失败、返回为空还是解析失败。请求失败可以在基础网络恢复后重试;返回为空需要确认订阅来源状态;解析失败则检查客户端是否支持返回格式。不要把订阅地址改写成分享链接,也不要手工删除其中看似多余的查询参数。

更新成功却没有新增节点时,检查当前查看的分组、过滤条件和重复处理规则。有些订阅更新会覆盖原分组而不是追加;服务器端节点没有变化时,列表自然保持原状。若旧节点仍可用而新节点缺失,可以新建临时分组对照更新结果,但确认后应合并或删除临时分组,避免长期重复。

节点已选但无法连接

先核对系统时间、当前网络与节点参数。日志中的超时通常表示连接未完成,可能是地址不可达、网络丢包或服务器未响应;连接被拒绝通常表示目标地址可达但对应端口没有接受连接;配置解析错误则说明参数结构有问题。TLS、服务器名称、传输路径和服务名等字段必须与节点来源一致,不应凭经验改成常见值。

同一节点在一个平台可用、另一个平台失败时,比较两端的协议字段和内核能力,不要只比较节点名称。重新从原始订阅导入通常比复制客户端内部 JSON 更可靠。若 v2rayNG 能导入某项扩展,而 v2flyNG 无法识别,应依据内核方向选择兼容客户端,不要把缺失字段留空后强行连接。

客户端显示连接但应用没有变化

这通常是系统接管层问题。桌面平台检查系统代理是否已经指向客户端当前监听端口,Android 检查系统 VPN 确认是否完成。随后确认应用是否读取系统代理,是否在连接前已经建立长期连接。完全退出应用后重新打开可以排除连接缓存。浏览器中若额外配置了代理扩展,也应暂时停用,避免它覆盖系统设置。

命令行程序需要检查代理环境变量,游戏和独立网络栈应用可能需要 TUN。不要因为一个应用忽略系统代理就判断节点不可用。选择一个明确遵循系统代理的浏览器作为基础样本,确认基础样本正常后,再扩大接管范围。

关闭客户端后无法联网

最常见原因是系统代理仍指向已经停止的本地端口。Windows 和 macOS 在系统网络设置中关闭手动代理或自动代理配置;Linux 检查桌面代理和终端环境变量;Android 检查系统连接状态和始终开启设置。若曾启用 TUN,还要确认虚拟接口、默认路由和 DNS 已恢复。完成后先验证直连,再重启客户端。

强制结束进程比正常退出更容易留下状态。长期使用时应从客户端菜单关闭系统代理和 TUN,再执行退出。若系统每次重启后都复现,检查是否存在重复自启动项,或另一个网络工具在登录时写入代理。不要同时让多个程序管理同一系统代理开关。

端口占用与内核启动失败

日志出现端口已被使用时,先退出其他代理客户端并确认 v2rayN、v2rayNG 或 v2flyNG 没有重复实例。也可能是上次异常退出留下的内核进程仍在运行。结束确认无用的旧进程后重新启动。若必须修改监听端口,应同时更新浏览器、终端环境变量和其他依赖该端口的工具,避免客户端已换端口而应用仍连接旧值。

# Linux 查看指定端口的监听进程
ss -lntp

# Windows PowerShell 查看 TCP 监听
Get-NetTCPConnection -State Listen

# macOS 查看 TCP 监听
lsof -nP -iTCP -sTCP:LISTEN

不要结束无法确认用途的系统进程。命令结果用于找到端口与进程的对应关系,再决定是关闭旧客户端还是调整新客户端端口。监听地址为 127.0.0.1 表示仅本机访问,监听所有接口则还需检查局域网访问设置与防火墙。

TUN 开启后全网中断

立即关闭 TUN并确认基础网络恢复,然后按权限、虚拟接口、路由、DNS 的顺序检查。权限不足通常在创建接口时就报错;路由冲突会在接口创建后导致流量走向错误;DNS 问题则更常表现为域名失败。若同时运行虚拟机、容器网络或其他虚拟网卡工具,先暂时停用其中一个做对照。

Android 还要检查系统是否保留了另一个 VPN 配置,桌面平台则检查是否有多个客户端同时自动启动。恢复测试时不要一次性重新打开全部功能:先节点连接,再系统代理,最后 TUN。每一层通过后再继续,才能确定故障由哪一步引入。

日志整理与进一步查阅

提交问题前记录操作系统、客户端名称、安装包架构、使用系统代理还是 TUN、问题发生时间和最近一次改动。日志只截取故障前后相关段落,并隐藏订阅地址、用户标识、服务器地址等敏感内容。描述应使用可复现步骤,例如“更新订阅成功,选择节点后系统代理开启,浏览器请求超时;关闭系统代理后直连恢复”,比“无法使用”更便于定位。

如果仍无法判断,可前往常见问题按基础认知、安装配置、使用技巧和故障排查分类继续查阅。新手也可阅读V2Ray 新手十问十答,确认内核、订阅和代理模式的基本关系。排错结束后,应撤销临时日志级别、测试端口和临时路由,保留一份已验证的稳定配置。

整套配置的最终验收应覆盖四个状态:客户端启动后订阅可更新,节点连接后目标应用按预期进入代理,关闭系统代理或 TUN 后直连恢复,设备重启或切换网络后能够重新建立连接。达到这四项,说明安装、配置、系统接管和恢复路径都已经闭合。

继续安装对应平台客户端

进入下载中心选择 v2rayN、v2rayNG 或 v2flyNG,并按当前系统与处理器架构取得安装包。

打开下载中心