安装大全 · 平台与配置查阅

V2Ray 全平台
安装配置大全

v2rayN 桌面安装、安卓客户端配置、订阅管理与路由排查。

首次连接可先按快速上手教程完成导入、选择配置和连接验证。本页用于系统查阅:按操作系统处理安装与权限,再按订阅、路由和故障现象定位问题。桌面端首推 v2rayN;安卓端以 v2rayNG 为主,v2flyNG 为 V2Fly 内核备选。

下载v2rayN 查看教程 包格式与处理器架构先确认,再进入对应章节。

通用准备:系统、架构与配置来源

确认安装对象与客户端边界

V2Ray 是代理生态中的技术名称,不等于某个固定的图形界面。客户端负责保存服务器资料、更新订阅、生成配置和调用内核;内核负责实际的协议通信、入站监听与路由执行。v2rayN 面向 Windows、macOS 和 Linux 桌面;v2rayNG 与 v2flyNG 面向 Android。先选平台,再选安装包,不能把桌面程序解压到手机后直接运行,也不能把安卓配置界面的按钮名称当作桌面端的操作路径。

安装前记录操作系统、处理器架构和准备使用的包格式。Windows 可在“设置 → 系统 → 系统信息”查看系统类型;macOS 可在“关于本机”查看芯片;Linux 可运行下方命令查看机器架构与发行版;Android 可查设备规格或已有应用的架构信息。操作系统支持的架构比处理器宣传名称更重要,尤其是使用兼容层或较旧系统的设备。下载页给出的入口决定当前可选包,不要按文件名印象选择。

uname -m
cat /etc/os-release

Linux 输出为 x86_64 时通常选 x64;输出为 aarch64 时通常选 arm64。发行版信息用于判断 deb 或 rpm,不用于判断处理器架构。macOS 的 Apple Silicon 与 Intel 分别对应 arm64 和 x64。Android 的 arm64 包只适用于支持该应用架构的系统;无法确认时先阅读安卓下载说明,再考虑通用版。

准备可导入的连接资料

客户端安装完成并不会自动生成可用服务器。准备由可信配置提供方交付的单条分享链接或订阅地址,并确认资料仍在有效期内。分享链接描述一条配置,订阅地址用于获取一组配置,两者不能互换输入框。订阅链接有时带访问凭据,应视为敏感信息保存;截图、日志和求助文字中不应保留完整地址、用户标识或认证字段。

如果提供方给出多个协议或传输方案,先使用与客户端内核相容且说明完整的一项。地址、端口、协议、认证信息、TLS 设置和传输参数共同构成连接条件,不能只复制服务器域名。浏览器能打开某个域名也不能证明代理配置正确。新手先用明确的单条配置建立基线,再添加订阅,有助于区分订阅获取问题与实际连接问题。

保存环境基线,减少同时修改

安装前记下已有代理软件、系统代理状态、网络接口和是否存在虚拟网络工具。首次测试只启用一个客户端,避免两个程序竞争系统代理、监听端口或默认路由。公司设备的安全策略、受管理网络的访问规则和本机防火墙可能限制虚拟接口或后台监听,应先确认权限范围,不要把所有防护功能关闭作为安装步骤。

开始配置前需要记录的信息
项目记录内容用途
平台与架构系统名称、x64 或 arm64选择可运行的安装包
配置来源分享链接或订阅地址选择正确导入入口
原代理状态是否已有手动代理或自动脚本退出时恢复原设置
本地监听客户端设置中显示的地址与端口验证应用是否走到客户端

系统时间也属于连接条件。时间偏差会影响证书有效期判断与部分认证过程,先启用系统自动校时。保留安装前的网络状态和一份配置备份,修改前记录原值。备份包含服务器凭据时,应放在仅本人可访问的位置,不能作为公开附件上传。准备完成后进入对应平台章节,不需要同时实施系统代理和 TUN 两种接管方式。

Windows:v2rayN 安装与系统代理

桌面版与经典 WPF 版的选择

打开Windows 下载区,优先选择 v2rayN。桌面版采用跨平台界面技术,经典 WPF 版面向 Windows,二者在窗口组织与设置位置上可能不同。选择时以下载页系统要求和安装包说明为准,不能认为同一个应用名就代表完全相同的运行依赖。如果当前设备是受管理电脑,还应确认软件安装与代理修改权限。

下载后按包的实际类型处理。安装程序需要按向导选择目标位置;压缩包需要完整解压到可写目录,再从解压后的目录启动,不能直接在压缩包预览窗口内运行。将程序放在临时下载缓存或会自动清理的目录,可能使配置、日志或随包内核丢失。若界面提示缺少运行环境,按照该包对应的要求补齐依赖,不要反复更换不相关的内核文件。

首次运行时观察主窗口是否完整加载,设置能否保存,退出后再次启动能否恢复配置。普通系统代理通常不要求全程管理员运行,先以普通权限建立可用基线。防火墙出现提示时,核实请求程序和网络范围;本地代理主要用于本机应用,不需要为了浏览器测试扩大到所有网络设备。程序被系统阻止时先阅读提示原因,而不是忽略所有安全提示。

导入订阅并确认当前配置

单条分享链接可复制后使用“从剪贴板导入”一类入口。订阅地址应进入订阅分组设置,新建分组、填写地址并保存,再执行更新。按钮名称可能随界面调整,但顺序不变:先保存地址,再获取列表,最后选择一条配置设为当前使用项。列表出现条目只说明导入成功,不代表内核已运行,也不代表服务器可以连接。

更新后检查配置所属分组、协议类型和传输设置是否符合提供方说明。名称只是显示标签,不能用名称判断两条配置是否相同。订阅更新可能替换条目,因此手工修改前应复制到独立分组,避免下一次更新覆盖。连接资料较多时先选择一条明确有效的配置,不要同时改协议、端口和 TLS 参数。分享链接与订阅的具体区别可参阅分享链接与订阅导入方法。

系统代理、TUN 与权限顺序

内核启动后,在客户端选择设置系统代理,并在 Windows 的代理设置中核对地址和端口。系统代理只是把代理入口写入系统设置,愿意读取该设置的浏览器或应用才会使用它。有些应用拥有独立代理配置,有些直接联网;因此浏览器正常而其他程序不通,不一定是服务器故障。自动配置脚本、手动代理和浏览器扩展也可能覆盖客户端设置。

TUN 模式通过虚拟网络接口处理流量,覆盖范围与系统代理不同,通常涉及更高权限和路由调整。只有当前版本、所选内核与系统环境支持时才启用。先关闭其他代理接管方式,再按界面要求授权。若启用后完全断网,关闭 TUN 并确认默认路由恢复,回到已验证的系统代理方案,随后检查日志、接口状态和安全软件提示。

Get-NetTCPConnection -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

以上 PowerShell 命令用于查看本地监听,不会自动修复连接。将客户端设置中实际显示的监听端口与结果对照;若端口已被其他程序占用,可以修改客户端本地端口,并同步修改应用代理设置。不要把远端服务器端口误当成本地代理端口。开启“允许局域网连接”会改变监听范围,单机使用通常保持本机回环地址即可。

退出、自启动与升级边界

关闭窗口可能只是最小化到通知区域。停止使用时先清除客户端设置的系统代理,再执行退出,避免应用继续连接一个已经停止的本地端口。启用登录自启动后,应重启验证客户端与代理设置是否按预期恢复;客户端自动启动不一定等于 TUN 自动取得权限。升级前退出旧进程并备份设置,升级后核对订阅分组、当前配置、监听端口和路由预设,而不是只检查主窗口能否打开。

macOS:芯片选择、安装与网络授权

按芯片选择 v2rayN 安装包

在“关于本机”中查看芯片信息,再进入macOS 下载区。Apple Silicon 使用 arm64 入口,Intel 使用 x64 入口。不要用屏幕尺寸或购买年份推断架构。某些兼容环境能运行另一种架构的应用,但原生匹配通常更便于判断运行依赖与权限问题。下载完成后打开 dmg,将应用按窗口指引放入“应用程序”目录。

复制结束后,从“应用程序”目录启动 v2rayN,不要长期在磁盘映像中运行。磁盘映像属于分发载体,卸载映像后其中的路径会消失,也可能影响应用保存和更新。首次启动若出现系统安全提示,确认文件来源与提示内容,再按系统提供的授权路径处理。不能为了单个应用关闭整个系统的安全检查,也不建议粘贴来源不明的权限修改命令。

应用启动后先检查设置能否保存、内核能否正常启动。界面能够打开,但随包执行文件因权限或架构不匹配无法运行时,日志通常会停在启动阶段。此时应先解决本机执行问题,不必修改远端服务器参数。系统更新后如果原有授权发生变化,也应重新检查提示,而不是直接复制旧电脑上的权限状态。

导入配置与网络服务代理

复制分享链接后从客户端剪贴板入口导入,或在订阅分组内保存订阅地址并更新。macOS 剪贴板可能保留先前内容,导入失败时确认复制的是完整链接,没有附加说明文字或换行。导入完成后设置当前配置,再启动内核。测试时选用一个明确读取系统代理的应用,尽量避免同时开启带独立代理设置的浏览器扩展。

系统代理通常与具体网络服务关联。Wi-Fi 与有线网络可以拥有不同的代理状态,切换网络后应重新核对当前服务,而不是只看客户端托盘菜单。打开系统网络设置,在正在使用的网络服务中查看代理选项,确认地址和端口指向客户端实际监听值。若设备使用自动代理脚本,手动代理与脚本之间的作用顺序也需要确认。

系统要求授权修改代理设置时,先确认请求来自当前客户端,再完成授权。授权被拒绝并不一定妨碍内核本地监听,但应用不会自动使用该入口。可以在应用内部明确填写代理地址进行验证,确认链路正常后再处理系统设置。这样能把“无法写入系统代理”与“内核不能连接服务器”分成两个独立问题。

TUN、DNS 与休眠恢复

TUN 模式的可用性取决于当前客户端构建、内核能力与系统权限。启用前记录当前网络服务和 DNS 设置,并关闭其他虚拟网络工具的接管。若界面需要提权或安装辅助组件,应按当前版本的提示操作,不要把其他平台的驱动安装步骤搬到 macOS。启用后同时验证域名访问与本地网络资源,确认分流没有改变原本需要直连的路径。

DNS 问题可能只出现在一个应用。浏览器启用独立的安全 DNS 时,不一定使用系统或客户端指定的解析路径;因此一个浏览器失败不能直接证明所有 DNS 都失效。先比较另一个应用,再检查客户端日志中的域名解析与连接阶段。用 IP 地址访问带证书的网站会改变证书匹配条件,不能作为等价的 TLS 测试。

scutil --proxy
scutil --dns

这两条只读命令分别展示当前代理和 DNS 信息,用于与图形设置对照。输出可能包含企业配置或本地网络信息,分享前删除敏感内容。电脑从休眠恢复、切换热点或更换网络服务后,旧连接可能暂时失效;先重新建立连接并核对服务状态,再尝试重启内核,不需要第一时间删除整个应用数据目录。

退出与升级后的复核

退出前恢复由客户端修改的代理状态。如果程序异常关闭,当前网络服务可能仍保留本地代理,浏览器会连接已不存在的监听入口。重新启动客户端可以帮助恢复状态,也可在系统设置中仅移除本次新增的代理项,避免覆盖原有企业配置。升级后验证应用路径、权限、当前配置和路由预设;若同时更换了芯片架构,应重新下载对应包,不要直接迁移旧可执行文件。

Linux:deb、rpm 安装与桌面集成

发行版与架构分别确认

Linux 桌面使用 v2rayN。进入Linux 下载区,Debian、Ubuntu 及其兼容发行版通常选 deb,Fedora 与兼容环境通常选 rpm。包管理格式和机器架构是两个维度:同为 deb 包也存在 x64 与 arm64 区别。先查看 /etc/os-release 和 uname -m,再选择包,不要因为文件能下载就认为可以在当前机器上安装。

下面的命令使用临时工作目录隔离待安装包,适用于当前目录恰好只有一个对应安装包的情况。文件名保留下载时的真实名称。先把选定的包复制到该目录,确认列表后再执行安装;不要在混有多个历史包的下载目录直接运行通配符命令。deb 与 rpm 两组命令只选匹配发行版的一组。

# Debian / Ubuntu:先确认当前目录中的 deb 文件
ls -1 ./*.deb
sudo apt install ./*.deb

# Fedora:先确认当前目录中的 rpm 文件
ls -1 ./*.rpm
sudo dnf install ./*.rpm

通过系统包管理器安装有助于处理依赖,并将应用登记到系统中。若提示架构不匹配,应更换包;若提示依赖无法满足,应核对发行版支持范围与软件源状态。不能把忽略依赖作为常规处理方法。安装完成后从桌面应用菜单启动,用当前普通用户保存配置。直接以 root 运行图形界面可能造成配置所有权混乱,后续普通用户无法写入。

导入订阅与桌面系统代理

客户端启动后按订阅分组流程保存地址并更新,或从剪贴板导入单条配置。Linux 下远程桌面、不同显示会话与终端剪贴板工具可能使用不同选择缓冲区,导入失败时先确认图形客户端收到的文本。不要将订阅地址直接粘贴到公开终端记录中。设置当前配置并启动内核后,观察本地监听与启动日志,再启用系统代理。

Linux 的“系统代理”并不是所有程序共享的强制入口。桌面环境、浏览器、终端程序和后台服务可能各自读取不同配置。桌面网络设置已生效,不代表 shell 中的命令自动使用代理;反过来,给某个终端设置环境变量,也不代表桌面应用会读取它。先在一个支持明确代理参数的应用中验证,再根据使用场景处理桌面设置。

HTTP 代理端口与 SOCKS 端口的协议不能混用,混合监听则以客户端实际说明为准。终端中已存在的代理环境变量可能指向旧端口,导致测试结果与浏览器不同。检查时注意命令行历史和变量可能包含凭据,不要整体公开。监听情况可用下面的只读命令查看,再与客户端设置逐项对照。

ss -lntup
ip route
ip -6 route

TUN 权限与网络管理冲突

TUN 模式通常需要创建虚拟接口并调整路由。普通用户能打开客户端,不等于具备这些权限。优先使用当前客户端提供的提权方式,不要为整个应用目录设置宽泛写权限,也不要随意给未知文件增加永久特权。启用后检查虚拟接口、默认路由及 DNS 状态;如果内核未启动成功,先处理日志中明确的权限错误,再修改分流规则。

NetworkManager、其他虚拟网络工具、容器网络和企业隧道可能共同修改路由。发生冲突时先停用新增接管方式,恢复原网络,再逐个启用以确定来源。局域网资源无法访问时,应核对私有地址的直连规则与虚拟接口路由,而不是把全部访问切换到代理。IPv4 正常而 IPv6 异常,也可能是两套路径不同,需要分别记录测试结果。

桌面登录自启动与升级

先使用客户端内置的登录自启动设置;若当前版本没有该入口,再使用桌面环境的启动应用管理器选择已安装的程序。桌面登录自启动和系统开机服务不是同一概念,图形客户端依赖用户会话,不宜直接当作无界面服务启动。配置完成后注销并重新登录验证,观察是否存在重复进程。

升级时退出旧进程,通过同一种包管理方式安装新包,并保留用户配置备份。若曾用管理员身份启动,遇到保存失败应检查配置目录所有者,只修复明确属于客户端的数据目录,不递归修改整个家目录。更多包部署与登录自启动说明见Linux 安装与自启动设置。

Android:v2rayNG 与 v2flyNG 配置

选择客户端、架构与安装授权

安卓端优先使用 v2rayNG,其内核家族为 Xray;需要 V2Fly 内核配置时可考虑 v2flyNG。选择依据应是配置所需能力与现有使用习惯,而不是只比较名称。两者分别保存自己的配置和应用设置,安装其中一个不会自动迁移另一个的数据。先在Android 下载区确认包入口与系统要求。

支持 arm64 应用架构的设备通常选 arm64 包;无法确定架构或安装器提示不兼容时,再核对通用版说明。安装包解析失败还可能来自下载未完成、系统版本不符合要求或既有安装的签名不兼容,不能只归因于架构。允许当前下载来源安装应用时,仅针对实际使用的来源授权,安装结束后可以收回该权限。

如果系统提示更新签名冲突,不要直接卸载已有客户端。先确认旧应用的来源并导出可恢复配置,因为卸载可能删除分组、手工条目和应用分流设置。导出文件含连接凭据,应保存在私密位置。尝试重新下载同来源的正确包通常比盲目覆盖更容易判断问题;不同来源安装包之间能否直接更新,应以系统实际提示为准。

剪贴板与订阅分组导入

单条分享链接从剪贴板导入;订阅地址在订阅设置中新建条目,保存后更新。Android 的剪贴板可能自动清理内容,复制完成后及时进入客户端,确认不是空内容或网页说明文字。首次更新失败时,先记录错误属于地址格式、连接、响应还是解析阶段,再决定是否需要通过已工作的配置获取订阅。

列表中选择一条配置作为当前使用项,然后点击连接。第一次建立本地 VPN 通道时,系统会弹出授权对话框,这是安卓客户端接管流量所需的系统接口。授权后查看客户端连接状态和系统通知,再用一个应用测试。系统出现 VPN 标识只表示通道已建立,并不证明远端连接或域名解析已经成功。

订阅更新会依据提供方返回内容刷新条目。手动修改订阅内配置可能在下次更新后消失,需长期保留的调整应复制为独立条目,并记录原始来源。不同客户端对同一分享格式的支持可能不同,尤其是包含较新传输字段的配置;导入成功后仍应检查协议、TLS、传输类型及必要参数是否完整。

应用分流与后台运行

安卓客户端主要通过系统 VPN 接口工作,不需要照搬桌面端的系统 HTTP 代理步骤。系统通常只允许一个 VPN 服务同时占用该接口,其他依赖相同接口的工具可能使当前连接被替换。测试时先保留一个接管程序,避免连接按钮显示成功后又被另一项服务立即接管。

按应用分流需要先理解当前模式是“仅代理所选应用”还是“绕过所选应用”。这两种名单含义相反,勾选同一应用会产生不同结果。先用一个测试应用验证,再扩大名单;修改名单后,按客户端提示重新建立连接。应用分流与域名路由属于不同层次,某个应用被排除后,其流量可能根本不会进入内核规则匹配。

息屏后断连常与电池优化、后台限制或厂商任务清理有关。先检查客户端通知是否仍存在、进程是否被终止,再在系统应用设置中允许必要的后台运行。不要一开始就改服务器协议。移动网络与 Wi-Fi 切换会重建连接,若只有某个网络失败,应保留相同配置进行对照,而不是同时修改节点和 DNS。

DNS、热点与更新后的检查

系统私人 DNS、浏览器独立解析和客户端 DNS 设置可能形成不同路径。域名访问失败时先观察日志,并与关闭连接后的解析结果比较;不要把随机 DNS 地址逐个替换作为固定操作。热点共享的其他设备也不一定自动进入手机客户端的通道,本机应用正常不能证明热点设备已经使用相同出口。

更新客户端后核对当前条目、应用分流名单、路由模式和后台权限。系统升级可能重置部分权限,需要重新检查。v2rayNG 与 v2flyNG 的具体设置名称可能不同,迁移时应按功能逐项对应,不要只导入订阅就认为所有行为一致。选型背景可参阅三款客户端横向评测,首次连接步骤见快速上手教程。

订阅管理:分组、更新与配置迁移

分享链接、订阅地址与完整配置

vmess://、vless:// 等分享链接通常描述一条服务器配置;订阅地址通常通过 HTTP 请求返回一批条目;完整 JSON 则可能同时包含入站、出站、路由与 DNS。三者的作用范围不同。将订阅网址粘贴到单条服务器编辑框,或把完整配置当作分享链接导入,都会造成结构识别问题。先判断内容类型,再选择客户端对应入口。

订阅地址能在浏览器打开,并不保证客户端能解析。返回内容可能是登录页面、访问提示、重定向页面或不支持的配置格式。浏览器展示一段文本也不代表每个字段都被客户端接受。发生解析错误时,应确认响应是否真的是订阅内容,再检查格式支持情况,不能凭网页显示成功就不断重装客户端。

订阅地址中的访问参数可能具有账户权限。不要发送完整地址到公共转换服务,不要把它写入公开配置示例,也不要把浏览器历史截图直接用于求助。确需订阅转换时,先确认输入与输出格式、处理方的可信程度,以及转换过程中哪些字段可能被丢弃。转换只改变表达形式,不会修复失效账户、不可达服务器或缺失的认证信息。

分组命名与更新验证

每个来源建立独立分组,名称使用能辨认来源和用途的短标签。测试配置、手工配置与订阅条目分开保存,有助于确认更新影响范围。分组内重复条目不必立即删除,先比较服务器地址、协议、端口和传输参数;显示名称相同不代表配置相同,名称不同也可能指向同一服务器。

首次更新采用手动触发,观察返回结果和条目变化。成功后再考虑自动更新频率,避免在网络未就绪或客户端尚未启动时产生重复失败。某些客户端允许“通过代理更新”,应仅在已有配置可以工作的前提下使用;尚未建立第一条可用连接时,开启该选项可能让订阅获取依赖一个尚不存在的出口。

更新后当前条目可能被替换或删除,应重新核对当前选择。若条目数量改变,先看提供方是否调整订阅内容,而不是立即认定本机数据损坏。只要手工基线配置仍能连接,就可把排查范围缩小到订阅请求与解析过程。更新失败时保留旧配置,通常比清空所有条目后重试更有诊断价值。

迁移时区分资料与运行设置

跨设备迁移至少涉及两部分:服务器资料与本地运行设置。分享链接或订阅通常只覆盖前者,系统代理、监听端口、应用分流、TUN 权限和登录自启动不会自动迁移。Windows 的本地路径、Linux 的权限设置也不应直接复制到 Android。迁移后应重新按目标平台章节建立连接,再逐项恢复分流习惯。

配置迁移的范围与边界
内容常见迁移方式迁移后检查
单条服务器客户端导出的分享链接协议、TLS 与传输字段
订阅来源重新添加地址并更新分组与当前选择
本地代理在新设备重新设置监听地址、端口及应用入口
分流与权限按目标平台逐项恢复规则顺序、应用名单与授权

导出备份后要验证恢复范围。某些导出只包含服务器,有些包含客户端偏好,但都不能假定包含系统层面的授权。备份加密与访问限制应按设备实际能力设置;若泄露了订阅地址,仅删除本地文件不足以撤销远端权限,需要通过提供方支持的方式更换访问凭据。

内核兼容与字段检查

V2Fly 与 Xray 同属相关开源生态,但功能支持不完全相同。切换内核不会自动把配置语义转换为另一种实现。遇到未知字段、传输不支持或启动失败时,先看具体错误,再核对提供方要求。对于 REALITY 等有明确内核能力要求的配置,应选符合要求的客户端组合,不要在 v2flyNG 中照抄未被其内核支持的选项。

更详细的格式辨认见分享链接与订阅链接的区别。复杂配置则应阅读config.json 结构解析,区分客户端生成字段与手工自定义字段,避免把展示层名称当作内核参数。

代理与路由:入口、出口和规则顺序

先分清流量是否进入内核

路由规则只处理已经进入内核的流量。系统代理负责向应用提供本地代理入口,TUN 负责通过虚拟接口接管符合条件的网络流量,安卓应用名单则可决定哪些应用进入通道。若应用根本没有使用客户端,修改 routing 不会改变它的行为。排查分流前,先确认应用入口与本地监听一致,再看规则匹配。

客户端中的“全局”通常表示把进入客户端的流量交给某个统一出口,而不是自动强制接管设备上的全部程序。类似“绕过大陆”“黑名单”或“白名单”的名称属于客户端预设,实际行为取决于生成的规则和出口。不要只凭预设名称推断所有域名的路径;同名预设在不同客户端或版本中也可能存在规则差异。

本地 HTTP、SOCKS 或混合入站把流量交给内核,outbounds 定义可用出口,routing.rules 将匹配对象指向出口标签。标签是引用关系,不是预留的魔法名称。规则中的 outboundTag 必须与实际出口的 tag 一致,否则配置可能无法启动或不能按预期转发。

规则匹配与示例边界

规则通常按顺序检查,前面的匹配优先于后面的兜底。广泛匹配规则放在过前的位置,会遮住更具体的规则。域名规则适合明确的服务范围,IP 规则适合私有网络或地址范围;应用使用域名还是直接使用 IP,会影响可匹配的信息。嗅探功能可以补充部分目标信息,但并非所有流量都能还原出可靠域名。

下方是一份可作为结构学习与本机监听测试的完整配置。它只定义直连与阻断出口,不包含远端代理服务器。所有入站流量默认直连,访问文档示例域名的流量被阻断。运行前确认端口未被占用;该示例适用于理解字段关系,不应粘贴覆盖已经可用的服务器配置。客户端是否允许导入完整配置,应以当前界面入口为准。

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "local-socks",
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "block",
      "protocol": "blackhole",
      "settings": {}
    }
  ],
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "domain": ["domain:example.com"],
        "outboundTag": "block"
      },
      {
        "type": "field",
        "ip": [
          "10.0.0.0/8",
          "172.16.0.0/12",
          "192.168.0.0/16",
          "127.0.0.0/8"
        ],
        "outboundTag": "direct"
      }
    ]
  }
}

domain:example.com 匹配示例域名及其子域;只匹配精确主机名可使用 full: 写法。没有命中规则的流量通常使用第一个出站,因此示例把直连放在首位。要实现代理分流,必须另行定义真实可用的代理出口,再把相应规则引用到该出口,不能只新增一个叫 proxy 的标签就获得代理能力。

域名策略、数据文件与 DNS

IPIfNonMatch 表示域名规则未匹配时,可解析目标域名并尝试 IP 规则;它不是让每次请求都先解析 IP。AsIs 与 IPOnDemand 的解析时机不同,选择会影响匹配信息和 DNS 请求。对不熟悉的配置,先保持客户端预设,再通过日志确认问题,不要把域名策略当作通用加速开关。

geosite:cn、geoip:cn 和 geoip:private 依赖内核可读取的数据及分类名称,不是任意配置都自带的字典。缺少文件或分类时,应按客户端支持的资源更新方式处理。上面的示例用显式私有网段避免依赖外部分类,但它不穷举所有需要直连的地址,也没有配置 IPv6 私有范围,不能直接充当完整生产分流模板。

验证一条规则的实际行为

每次只新增一条规则,重启或重载后确认内核启动正常,再测试一个明确目标。对照连接日志中的目标、入站标签和出口标签,而不是只看网页是否打开。网站可能同时请求多个域名,主页正常不代表所有资源使用同一路径。检查完成后记录规则意图与顺序,避免后续更新预设时无法解释已有规则。

配置常见问题:按故障层次排查

从本机启动问题开始

先确定故障发生在哪一层:应用安装、内核启动、本地监听、流量接管、远端连接、域名解析,还是目标应用。每次保留一个可重复的测试动作,例如在同一网络下用同一应用访问同一目标。不要一次更换客户端、配置、DNS 和路由;同时修改会消除原有对照条件,即使恢复连接,也难以确认有效改动。

客户端打不开时先核对系统要求、包架构与运行依赖。界面正常但连接按钮立即返回错误时,查看内核启动日志,优先处理未知字段、缺少资源、执行权限和端口冲突。此阶段尚未连接远端,改服务器地址通常没有作用。若设置无法保存,检查数据目录是否可写、磁盘是否有足够空间,以及是否曾用另一权限启动程序。

本地代理端口没有监听时,应用连接它只会得到拒绝或超时。核对设置中的端口,不要从其他教程猜一个固定值。端口已被占用时先确认占用进程,正常退出冲突程序或修改本地端口,不要任意终止系统进程。修改后同步更新应用内部代理与系统设置,否则内核恢复了,应用仍会连向旧入口。

订阅为空与远端连接失败

订阅列表为空,先看更新是否实际完成。网络请求失败与内容解析失败需要不同处理:前者检查地址可达性、当前更新路径和网络状态;后者检查响应格式及客户端支持范围。确认地址没有复制遗漏,也没有把账户页面当成订阅。保留已有可用条目,不要因一次失败清空全部分组。

内核已启动但所有请求失败,检查当前配置是否被正确选中、资料是否仍有效、系统时间是否准确。连接超时通常表示某个阶段未及时完成,不足以直接判定服务器损坏;认证失败则应优先核对凭据、账户状态和参数。TLS 错误需要检查服务器名称、证书条件与时间,不能把跳过证书验证当作固定修复步骤。

只在某种网络环境失败时,保留相同配置切换网络做对照。Wi-Fi、移动网络、企业网络可能拥有不同的解析路径和出口条件。若切换网络后恢复,继续记录失败网络下的阶段与日志,不要把这个结果扩大成对所有客户端的判断。协议参数必须按提供方说明填写,不能仅因为某个选项看起来相似就替换。

浏览器正常,其他应用失败

首先检查失败应用是否读取系统代理,是否存在自己的代理设置,是否被安卓应用名单排除,以及是否需要 UDP。HTTP 代理、SOCKS 和 TUN 的覆盖能力不同,远端协议是否支持相关流量也要单独确认。某些客户端测试功能只检查指定类型的连接,不等于目标应用的完整业务流程已经通过。

DNS 异常时比较域名解析与连接错误,区分系统 DNS、客户端 DNS、浏览器独立解析和系统私人 DNS。不要根据单次域名失败直接关闭 IPv6;应先对照两种地址族的路由与日志,再决定是否需要有针对性的调整。本地服务无法访问时,优先检查私有地址分流和 TUN 路由,避免把本地资源也交给远端出口。

常见现象与优先检查项
现象优先检查下一步
内核无法启动日志、字段、资源与权限恢复最后一份可启动配置
应用连接被拒绝本地监听与端口统一客户端和应用入口
订阅更新后为空请求结果与响应格式核对地址和解析支持
仅一个应用失败应用代理与分流名单使用明确代理设置对照
启用 TUN 后断网权限、虚拟接口与默认路由停用 TUN,恢复基线

停止接管、恢复网络与整理日志

需要恢复普通网络时,先停用 TUN 或安卓连接,再清除由客户端设置的系统代理,最后退出程序。若程序已异常退出,检查操作系统是否还保留本地代理。企业原有代理不应一并删除;只撤销本次新增或修改的设置。仍无法恢复时查看默认路由和 DNS 状态,必要时重新连接当前网络服务,再重启设备。

求助记录应包括平台与架构、客户端名称、失败阶段、已尝试操作和经过脱敏的错误片段。删除订阅地址、认证字段、完整用户标识和不必要的网络信息,只保留能定位问题的上下文。调试日志可能包含访问目标,记录结束后恢复日常日志级别。能稳定复现的问题比大量未筛选日志更有价值。

是否应同时开启系统代理和 TUN?

不作为首次测试方案。先验证一种接管方式,再根据当前内核与应用需求决定是否组合使用。组合后需确认重复接管、路由和 DNS 行为,不能把两个开关都开启当作扩大覆盖的保证。

更换客户端后仍失败,应该继续重装吗?

先固定一款客户端和一条配置,按启动、监听、接管、远端与解析逐层验证。共同的配置来源、网络环境和系统设置可能才是原因。重装之前备份,并记录哪一层已经确认正常。

本页用于建立可查阅的排查路径。需要重新完成一遍最小连接流程,可返回快速上手教程;需要更换正确架构的安装包,进入客户端下载页。复杂字段与出口引用关系继续查阅配置结构解析,避免把平台操作问题和内核参数问题混在一起处理。