V2Ray 问题诊断手册
按症状分章排查 V2Ray 客户端故障:无法上网、节点超时、订阅失败、速度慢、DNS 异常、系统代理不生效、客户端崩溃与移动端专项。每章给出完整排查流程、原理说明与解决办法。快速上手教程讲「怎么用」,本手册讲「出问题怎么办」,两篇配合阅读。
排查总则:日志、版本与最小化验证
先固定现象,再定位层面,最后改配置。本章是所有后续章节的共同起点。
故障排查的第一步不是改配置,而是把现象固定下来。同一个「连不上」背后可能是系统代理未接管、节点已失效、DNS 解析失败或路由规则拦截,处理方式完全不同。本手册所有章节都按「先确认现象 → 再定位层面 → 最后改配置」的顺序组织,避免在原因不明的情况下反复开关客户端。快速上手教程讲「怎么用」,本手册讲「出问题怎么办」,两篇配合阅读。
排查前先确认三件事:客户端版本、内核版本、系统时间。这三项信息在日志与配置界面都能直接看到,记下来再开始,能省掉大量重复试错。
日志:连接问题的一手材料
日志是定位问题的第一手材料。v2rayN 的日志入口在菜单「查看日志」,默认记录连接与路由事件;排查握手失败或 TLS 报错时,把日志级别调到「调试」再复现一次,可以拿到完整的连接时序。v2rayNG 的日志在「设置 → 日志记录」,同样支持按级别输出。日志关键字与排查方向对应如下:
| 日志关键字 | 常见含义 | 排查方向 |
|---|---|---|
connection refused | 目标端口无服务监听 | 节点超时:端口与防火墙 |
i/o timeout | 网络链路无响应 | 节点超时:线路与服务器 |
x509 / certificate | TLS 证书校验失败 | DNS 问题:时间与 SNI |
unexpected EOF | 连接被对端关闭 | 节点超时:协议不匹配 |
context canceled | 请求被本地终止 | 系统代理:路由与超时 |
版本与内核:两个独立变量
客户端版本与内核版本是两个独立变量。v2rayN 在「设置 → 参数设置 → 内核」里可以查看并切换内核(Xray-core 或 V2Fly-core),v2rayNG 默认内置 Xray 内核,v2flyNG 对应 v2fly 内核。查看版本的方法:v2rayN 主界面显示客户端版本,「设置 → 参数设置 → 内核」顶部显示内核版本;v2rayNG 在「关于」页面显示版本号与内核信息。升级客户端后出现问题,先回顾是否同时更换了内核版本。两者不要求严格对应,但差异过大时可能出现配置字段不兼容,现象多为启动后立即报错或部分节点无法连接。
系统时间:TLS 类报错的高频来源
设备时间若与真实时间相差超过数分钟,证书校验会直接失败。现象是节点列表正常、延迟测试正常,但连接瞬间报错,日志出现证书相关错误。把「校准系统时间」放在排查顺序最前面,成本最低、命中率最高。Windows、macOS、Android 都支持自动网络时间同步,开启后重启客户端再试。
最小化验证:两种测法交叉确认
验证连通性时建议同时使用两种方式:一是浏览器无痕窗口访问目标站点,排除扩展与缓存干扰;二是在终端执行 curl 命令,命令行结果比浏览器更接近真实链路状态。
# 通过本地 SOCKS 代理访问目标站点
curl -x socks5h://127.0.0.1:10808 -I https://www.google.com
# 通过本地 HTTP 代理访问目标站点
curl -x http://127.0.0.1:10809 -I https://www.google.com
# 查看当前生效的代理环境变量(Linux / macOS)
env | grep -i proxy
两条命令的端口号以客户端实际监听为准。v2rayN 默认 SOCKS 端口 10808、HTTP 端口 10809,可在「设置 → 参数设置 → 本地监听」中查看与修改。
记录现象时,记下这三样:客户端与内核版本、节点协议与传输方式、错误信息原文。带着这些信息翻到对应章节,通常能直接命中根因。
无法上网:从系统代理到路由规则的逐项检查
「已连接但无法上网」的排查主线:代理是否接管、链路是否可用、流量是否被规则拦下。
「已连接但无法上网」是最常见的故障形态。它意味着客户端拿到了代理链路,但流量没有正确进入这条链路,或者进入后又被某一层规则拦下。按下面的顺序逐项确认,每一步都有明确的通过标准。
第一步:确认系统代理状态
v2rayN 的托盘菜单里有「系统代理」子菜单,状态分为「自动配置系统代理」「不改变系统代理」「清除系统代理」。选「自动配置系统代理」后,Windows 与 macOS 会写入系统级代理指向本地端口。如果这一项是「清除系统代理」,浏览器流量不会经过客户端。检查方法:打开系统网络设置,查看代理服务器地址是否为 127.0.0.1 加对应端口。v2rayNG 在 Android 上不使用系统代理,而是通过 VPN 通道接管,对应检查项在系统「VPN 设置」里。
第二步:直连对照测试
关闭客户端代理后直接访问一个国内站点。如果直连也不通,问题在本地网络本身,与代理无关,先修复 Wi-Fi 或宽带。如果直连正常、开代理后全站不通,继续下一步。这一步能快速区分「本地网络故障」与「代理链路故障」,不要跳过。
第三步:节点连通性验证
在 v2rayN 主界面选中当前节点,点击「测试服务器真连接延迟」。这里要区分两种结果:仅显示 TCP 延迟只说明端口可达,不代表代理握手成功;「真连接延迟」会实际走一遍协议握手,结果更可信。真连接测试失败时,换一个节点再测:所有节点都失败,问题在本地链路或客户端配置;只有个别节点失败,问题在该节点服务器,按第三章处理。
第四步:路由模式核查
路由模式决定哪些流量走代理。v2rayN 常用三种:「绕过大陆」——国内地址直连、其余走代理,适合日常使用;「全局」——所有流量走代理;「直连」——全部不走代理。如果当前是「绕过大陆」且目标站点被判定为国内,流量会直连,表现为「代理开着但网站打不开」。把路由模式临时切到「全局」再试,能通说明是分流规则判定问题,回「绕过大陆」后按第六章调整 DNS 与规则。
第五步:DNS 与浏览器缓存
路由模式正常但部分域名解析失败时,检查 DNS。v2rayN 的「DNS 设置」里若启用了远程解析,本地系统 DNS 的污染会被绕过;若解析请求走了本地 DNS,污染会导致解析到错误 IP,现象是域名打不开但 IP 直连可通。浏览器侧先开无痕窗口复测,排除缓存与扩展插件。
- 系统代理已设为「自动配置系统代理」
- 直连对照关闭代理后本地网络可正常访问
- 节点测试「真连接延迟」测试通过
- 路由模式与目标站点归属匹配
- 浏览器侧无痕窗口可访问、普通窗口不可访问,清理缓存与扩展
- 兜底项更换节点后仍失败,检查本地防火墙与杀毒软件
更细的分平台排查步骤见技术笔记《v2rayNG 已连接但无法上网:从系统代理到路由规则的逐项排查清单》。
节点超时:连通性判断与服务器端因素
先看日志里的超时形态,再决定往哪个方向查:端口、协议、线路还是证书。
节点超时与「无法上网」的区别在于:前者是代理链路建立失败,后者是链路建立成功但流量没走对。超时问题的排查重点是分清故障发生在哪一段——本地到服务器、服务器到目标站点,还是协议握手本身。
区分三种超时形态
连接超时(日志常见 dial tcp 或 connect: connection refused)表示本地到服务器端口不通,可能原因包括端口被封、服务器宕机、本地防火墙拦截。握手超时表示 TCP 已通但协议层无响应,常见原因是协议类型填错、TLS 配置不匹配、服务器负载过高。读取超时表示握手成功但数据流中断,多与线路质量或服务器出口受限有关。三种形态对应不同的排查方向:
| 超时形态 | 日志特征 | 主要方向 |
|---|---|---|
| 连接超时 | dial tcp / connection refused | 端口、防火墙、服务器存活 |
| 握手超时 | timeout waiting for ... handshake | 协议与传输方式、TLS 配置 |
| 读取超时 | read tcp ... i/o timeout | 线路质量、服务器出口 |
服务器端因素
端口未开放或协议配置错误是最常见原因。检查节点信息里的端口是否与服务器实际监听一致,协议(VMess/VLESS/Trojan)、传输方式(ws/grpc/tcp)、TLS 开关必须与服务器配置严格对应。例如服务器是 VLESS + Reality,客户端却填成 VLESS + TLS,握手必然失败。这类错误在日志里通常表现为握手阶段超时或 EOF。另外,服务器若启用了防火墙或云厂商安全组,只放行了 443 端口,而节点配置的是其他端口,同样会导致连接超时。
本地因素
本地防火墙、杀毒软件与代理软件冲突会拦截出站连接。Windows 上可临时关闭防火墙或为客户端添加放行规则;macOS 检查「系统设置 → 网络 → 防火墙」的入站拦截;Linux 检查 ufw 或 firewalld 状态。系统若启用了 IPv6 而节点不支持,可能触发 IPv6 优先连接导致超时,可在客户端关闭「优先 IPv6」或临时禁用系统 IPv6 验证。公司内网与校园网对非标端口的限制也常见,这类环境建议优先使用 443 端口的节点。
诊断命令与日志
用日志级别「调试」复现,重点看连接建立失败前的最后两条记录。命令行层面可用 nc 或 curl 定向测试:
# 测试 TCP 端口是否可达(超时 5 秒)
nc -vz -w 5 <服务器地址> <端口>
# 走本地 SOCKS 代理访问目标站点
curl -x socks5h://127.0.0.1:10808 -v https://www.google.com
nc 返回 succeeded 说明端口可达,问题在协议层;返回 timeout 或 connection refused,问题在端口或网络层。日志里出现 certificate 相关字样时,先校准系统时间,再核对节点的 SNI 与服务器域名是否一致,这两项是 TLS 类超时最常见的原因。TLS 证书报错的完整成因分析见技术笔记《V2Ray TLS 握手失败与证书报错:系统时间、SNI 与 allowInsecure 详解》。
更换节点后仍然超时,且多个节点、多个协议均失败,优先怀疑本地网络对出站连接的限制。此时可尝试 443 端口的节点,或换用基于 UDP 的传输方式验证。
订阅失败:URL、格式与更新时机
订阅失败与三件事有关:订阅 URL 本身、订阅服务器可达性、返回内容的格式。
订阅失败通常与三件事有关:订阅 URL 本身、订阅服务器可达性、返回内容的格式。v2rayN 与 v2rayNG 都支持从订阅批量导入节点,失败时按下列顺序检查,多数问题能在前三步内解决。
检查订阅 URL
完整的订阅地址应当以 https:// 开头,末尾不含多余空格或换行。复制订阅链接时,聊天软件常会追加空格或截断换行,粘贴后肉眼不易发现。v2rayN 里打开「订阅分组 → 订阅分组设置」,把 URL 粘贴到输入框后逐字符核对;v2rayNG 在「订阅设置」中同样操作。URL 中带有 & 参数时,确认复制没有丢失参数段。部分服务商提供多套订阅地址(如 base64 版与 Clash 版),确认用的是客户端支持的格式。
检查网络可达性
订阅服务器需要本地网络能直接访问,与被代理的站点不同。如果本地网络无法解析订阅域名,更新订阅会失败。判断方法:在浏览器直接打开订阅 URL,能下载到一串文本说明网络可达;打不开则先解决订阅域名的解析问题,可临时把订阅域名加入代理规则,或改用能访问的镜像地址。v2rayN 的「更新订阅(不代理)」通过当前代理拉取订阅,适合订阅域名本身不可直达的情况。
检查内容格式
订阅返回的内容可能是 base64 编码的 v2ray 链接列表,也可能是 Clash、sing-box 等格式。v2rayN 支持识别常见格式;v2rayNG 主要识别 v2ray 标准格式与 base64。如果返回内容为 HTML 错误页或空文件,是订阅接口本身异常,与客户端无关。手动验证方法:把下载到的文本粘贴到支持解码的在线工具,或者直接看开头——以 vmess://、vless://、trojan:// 开头的是标准链接,以长串 base64 字符开头的是编码列表。
更新时机与缓存
订阅更新频率由分组设置控制。刚添加的新节点不会立即出现,需要手动点击「更新订阅」;如果刚更新过又马上再点,部分订阅服务器有频率限制,会返回 429 或空内容。v2rayN 的「订阅分组」右键菜单提供「更新订阅」与「更新订阅(不代理)」两个选项,按网络情况选用。
手动导入作为替代方案
订阅服务器不可用时,可以手动导入单个节点。v2rayN 支持从剪贴板导入:复制 vmess:// 或 vless:// 开头的完整链接,托盘菜单「剪贴板导入」即可。v2rayNG 同样支持「从剪贴板导入」。单个节点导入不依赖订阅接口,是应急排查的有效手段,导入后先测延迟再使用。
| 错误现象 | 常见原因 | 处理 |
|---|---|---|
| 更新订阅返回空 | URL 末尾带空格或换行 | 重新复制并逐字符核对 |
| 返回 404 / 403 | 订阅链接失效 | 联系服务商重新生成订阅地址 |
| 返回 HTML 页面 | 订阅地址被反代到登录页 | 检查订阅域名可用性 |
| 导入成功但全部超时 | 订阅内容为过期节点 | 更新订阅并重新测速 |
| 提示格式不支持 | 返回 Clash 或 sing-box 格式 | 改用支持该格式的客户端或转换工具 |
速度慢:节点、线路与本地设置三层排查
先确定瓶颈在哪一层,再针对该层做调整,避免盲目换节点。
速度慢是最难一次定位的问题,因为影响因素横跨服务器、线路与本地三层。本文采用分层排查:先确定瓶颈在哪一层,再针对该层做调整,避免盲目换节点。速度问题的完整分层思路另见技术笔记《v2rayN 速度慢怎么办:节点、线路、本地设置三层排查法》。
先做一次可靠测速
不要用延迟数字判断速度。延迟只反映握手往返时间,与下载吞吐没有线性关系。测速方法:先在 v2rayN 里对节点做「真连接延迟」测试确认链路可用,然后用命令行实际下载一个文件:
curl -o /dev/null -w "%{speed_download}\n" \
-x socks5h://127.0.0.1:10808 \
https://speed.cloudflare.com/__down?bytes=10000000
重复测三次取中间值,排除瞬时波动。如果速度在早高峰与深夜差异巨大,瓶颈基本在服务器与线路层,本地设置再怎么调也改变不了上限。
节点与线路层
节点负载、带宽上限与线路质量决定速度上限。同一服务商的多个节点,选择负载更低的;不同服务商之间,线路差异可能带来数倍差距。传输方式也有影响:弱网环境下,grpc 与 reality 的抗丢包表现通常优于裸 tcp;在运营商对 UDP 限速的环境下,基于 UDP 的传输可能比 TCP 更慢。把节点协议与传输方式记录下来,换节点时保持同一组参数,对比才有意义。
本地设置层
客户端本地设置对速度的影响集中在三处。一是日志级别,「调试」级别会显著增加开销,排查完成后改回「信息」或「警告」;二是路由规则数量,规则越多,每个连接的分流判断越耗时,可精简不必要的规则;三是 mux(多路复用)开关,在丢包率高的线路上,mux 可能放大重传开销,关闭后有时反而更快。v2rayN 的「设置 → 参数设置 → 路由」与「设置 → 参数设置 → 内核」里可以调整这些项。
系统层面
DNS 解析耗时会在每个新域名首次访问时体现。本地 DNS 被污染时,解析会超时重试,表现为「网页卡几秒然后加载出来」,启用客户端的远程 DNS 或 FakeDNS 可缩短这段等待。MTU 不匹配会导致大包被分片丢弃,现象是网页能开、大文件下载极慢,可在系统网络设置中把 MTU 从 1500 下调到 1400 左右验证。杀毒软件的实时扫描也会拖慢下载,可把客户端目录加入排除项。
| 检查项 | 低风险调整 | 预期收益 |
|---|---|---|
| 日志级别 | 「调试」→「信息」 | 降低 CPU 开销,连接更稳定 |
| 路由规则 | 精简多余规则 | 减少每次连接的分流判断耗时 |
| mux | 关闭后对比 | 高丢包线路可能提速 |
| DNS | 启用远程解析或 FakeDNS | 减少解析等待 |
| MTU | 1500 → 1400 验证 | 修复大包分片导致的下载停滞 |
DNS 解析异常:分流失效与污染
三类症状:解析失败、该走代理的域名被直连、解析结果指向错误 IP。
DNS 问题通常表现为三类:部分域名解析失败、本应走代理的域名被直连、解析结果指向错误 IP。DNS 配置是 Xray 内核的高级能力,理解配置结构后,大部分问题都能在 dns 段内解决。
识别 DNS 症状
域名打不开但 IP 直连可通,是 DNS 污染的典型特征。本应走代理的站点却在直连,通常是解析结果命中了「绕过大陆」的 IP 段判断。还有一种常见情况:节点列表正常、连接正常,但个别网站登录异常或验证码无法加载,这类问题多与 DNS 返回了被污染的中间结果有关。需要说明的是,DNS 相关的报错有时会被误判为节点问题——日志里出现 resolution failed 或 no such host 时,先查 DNS 再查节点。
Xray DNS 配置结构
Xray 的 DNS 配置在 dns 段,核心是 servers 列表与 queryStrategy。servers 可以同时配置本地 DNS(如 223.5.5.5)与远程 DNS(如 1.1.1.1 或 DoH 地址),通过域名规则决定哪些域名走哪个服务器:
{
"dns": {
"servers": [
{
"address": "1.1.1.1",
"domains": ["geosite:geolocation-!cn"]
},
{
"address": "223.5.5.5",
"domains": ["geosite:cn"],
"expectIPs": ["geoip:cn"]
}
],
"queryStrategy": "UseIP"
}
}
这个示例的结构是:非中国域名走远程 DNS,中国域名走本地 DNS 并校验返回 IP 是否属于中国 IP 段。实际使用时把示例中的地址替换为自己的 DNS 服务器。注意 servers 的顺序有优先级,域名规则重叠时先匹配先生效。
FakeDNS 的开启场景
FakeDNS 用保留网段的虚拟 IP 替代真实解析,让域名规则在透明代理与 TUN 模式下依然生效,同时减少一次 DNS 往返。开启位置在 v2rayN:「设置 → 参数设置 → 内核 → 启用 FakeDNS」。适合场景:使用 TUN 模式、需要域名级分流、本地 DNS 被污染。不适合场景:仅用系统代理、对 IP 直连有强需求、部分应用对虚拟 IP 敏感。开启后若出现登录异常或证书报错,先关闭 FakeDNS 对比。FakeDNS 与远程 DNS 可以同时启用,前者解决域名规则匹配,后者解决解析结果可信度。原理与边界见技术笔记《FakeDNS 是什么:Xray 内核虚拟 IP 解析原理与开启场景》。
浏览器 DoH 与系统 DNS 的冲突
浏览器内置的「安全 DNS」(DoH)会绕过系统与客户端的 DNS 设置,直接向浏览器配置的 DoH 服务器查询,导致分流失效。排查方法:临时关闭浏览器的安全 DNS,观察域名解析是否恢复正常。需要域名级分流的场景,建议关闭浏览器 DoH,把解析统一交给客户端。系统级「私有 DNS」(Android)同理,设为「自动」或关闭。
DNS 分流与防污染的完整配置讲解见技术笔记《V2Ray DNS 配置指南:境内境外分流解析与防污染写法》。
系统代理不生效:接管范围与端口冲突
排查重点是代理端口与接管范围:端口是否被占用、系统代理是否指向正确、应用是否读取系统设置。
「客户端显示已连接,但浏览器没有走代理」与「无法上网」的区别在于:前者是代理没被系统或应用使用,后者是代理链路本身不通。这一类问题的排查重点是代理端口与接管范围。
确认本地监听端口
v2rayN 默认在本地监听两个端口:SOCKS 10808、HTTP 10809。系统代理必须指向这两个端口之一。端口被占用时,客户端可能自动更换端口,导致系统代理指向失效端口。检查方法:在「设置 → 参数设置 → 本地监听」查看实际端口,与系统代理设置里的地址比对。命令行可用以下命令确认监听状态:
# Windows:查看 10808 端口监听状态
netstat -ano | findstr 10808
# Linux / macOS:查看 10808 端口监听状态
lsof -i :10808
如果端口被其他程序占用,结束占用进程,或在客户端设置里更换本地端口。注意更换端口后,系统代理地址要同步修改。
自动配置机制与平台差异
「自动配置系统代理」在不同平台的实现方式不同:Windows 写入系统代理注册表,macOS 修改网络服务配置,Linux 桌面环境通常依赖环境变量或桌面设置。Linux 上很多发行版不会自动设置系统代理,需要手动导出环境变量:
export http_proxy=http://127.0.0.1:10809
export https_proxy=http://127.0.0.1:10809
export socks5_proxy=socks5h://127.0.0.1:10808
这些变量只对当前终端生效,图形应用需要从桌面设置或启动脚本中读取。macOS 在更换 Wi-Fi 后,旧的代理配置可能残留,表现为「系统代理显示已设置但实际未生效」,重新切换一次「自动配置系统代理」即可刷新。
| 平台 | 自动代理入口 | 常见失效原因 |
|---|---|---|
| Windows | 设置 → 网络 → 代理 | 第三方代理软件重复写入注册表 |
| macOS | 系统设置 → 网络 → 代理 | 网络服务切换后未重新应用 |
| Linux | 环境变量 / 桌面代理设置 | 桌面环境不读取环境变量 |
浏览器插件接管冲突
SwitchyOmega 一类代理扩展会在浏览器层面接管流量,绕过系统代理。如果扩展配置指向的端口与客户端实际端口不一致,浏览器会直接连接失败。排查:临时禁用代理扩展,或在扩展里把端口改为客户端实际监听端口。浏览器自身的「安全 DNS」也会绕过代理设置,一并检查。
应用不走代理的常见原因
部分应用不读取系统代理,需要单独配置。Windows 的 UWP 应用受网络隔离影响,可尝试关闭「网络隔离」相关设置;macOS 的原生应用大多走系统代理,但命令行工具需要环境变量。v2rayN 提供「TUN 模式」,以虚拟网卡方式接管全部流量,对不读系统代理的应用最有效;开启 TUN 后系统代理设置不再是必需项,但需要管理员权限,且与部分 VPN 软件冲突。
- 确认客户端实际监听端口——在「本地监听」查看,与系统代理地址比对。
- 核对系统代理指向——Windows 与 macOS 在系统网络设置中查看代理服务器地址。
- 关闭浏览器代理扩展复测——排除扩展层面的接管。
- 终端导出环境变量复测——确认命令行工具能否走代理。
- 仍无效则开启 TUN 模式——以虚拟网卡接管全部流量。
客户端崩溃:日志定位与配置复位
修复顺序遵循「先备份、再复位、后恢复」,避免在配置损坏的情况下反复重启。
客户端崩溃分为三类:启动即崩溃、连接过程中崩溃、更新订阅时崩溃。崩溃大多由配置损坏、内核文件缺失或端口冲突引起,按下面的流程可以快速复位。修复顺序遵循「先备份、再复位、后恢复」,避免在配置损坏的情况下反复重启。
启动即崩溃
启动即崩溃优先怀疑配置损坏。v2rayN 的配置保存在用户目录下的 guiConfig 相关文件,损坏时客户端会在启动阶段读取失败。处理方式:退出客户端,把配置目录整体改名备份(例如加 .bak 后缀),再重新启动,客户端会用默认配置重建。注意备份目录要放在客户端数据目录之外,避免被重复读取。如果改名后仍崩溃,检查是否有其他安全软件拦截客户端进程。重建后重新导入订阅即可恢复节点列表。
连接过程中崩溃
连接时崩溃常见于内核与配置不匹配。v2rayN 切换内核(Xray-core / V2Fly-core)后,旧配置中的部分字段可能不被新内核识别。处理方式:在「设置 → 参数设置 → 内核」切回原内核,或删除节点后重新从订阅导入。另外,日志级别设为「调试」时长时间运行可能产生超大日志文件,占满磁盘后也会导致异常,排查完成后及时改回「信息」。
内核文件缺失与杀毒误删
内核文件缺失时,客户端启动会提示找不到内核。常见原因是杀毒软件把内核可执行文件当作威胁隔离。处理方式:在杀毒软件的隔离区恢复文件,并把客户端目录加入信任区。v2rayN 的「设置 → 参数设置 → 内核」里可以重新下载内核,下载失败时确认本地网络能否访问内核下载地址,必要时通过代理下载。v2rayNG 的内核随安装包内置,出现缺失提示时优先考虑重新安装,安装包从下载中心获取。
端口占用
本地端口被其他程序占用时,客户端监听失败,表现为启动后立即退出或代理不生效。用 netstat 或 lsof 找到占用进程,结束该进程,或在客户端设置里更换本地端口。端口冲突也常见于同时运行多个代理客户端,它们默认使用同一组端口。
v2rayNG 崩溃处理
v2rayNG 崩溃后可以清除应用数据,再重新导入订阅。Android 上如果崩溃发生在后台,检查电池优化是否把应用冻结,把应用加入「不受限制」电池策略。v2flyNG 的处理方式相同,注意两款客户端的配置互不兼容,不要直接复制数据目录。清除数据会同时删除订阅与设置,操作前先复制订阅地址。
- 备份配置目录——整体改名,保留故障现场。
- 恢复默认配置并启动——确认客户端能正常打开。
- 重新导入订阅——恢复节点列表。
- 检查内核完整性——确认内核文件未被隔离或删除。
- 检查端口占用——确认本地端口未被其他程序占用。
客户端崩溃后,优先用「最小配置」验证:只保留一个节点、关闭自定义路由规则,确认能稳定连接后,再逐个恢复设置。
移动端专项:v2rayNG 与 v2flyNG 排查
移动端的排查差异集中在三处:后台保活、系统级代理接管方式、电池与网络策略。
移动端与桌面端的排查差异集中在三处:后台保活、系统级代理接管方式、电池与网络策略。本节按 v2rayNG 与 v2flyNG 的常见问题展开,Android 系统版本差异较大,以下步骤以通用设置为准。
连接成功但应用不走代理
Android 上 v2rayNG 默认使用 VPN 通道接管流量,需要在系统「VPN 设置」里允许应用建立 VPN 连接。如果连接图标显示正常但目标应用仍直连,检查路由模式:默认「绕过大陆」时,国内应用走直连;需要代理的应用若被判定为国内,会直连失败。把路由临时切为「全局」验证,或在使用「分应用代理」时确认目标应用已勾选。部分机型对 VPN 有额外的省电限制,需要在「应用信息」里关闭「省电策略」对 VPN 的限制。
后台被杀导致断连
Android 系统为省电会冻结后台应用,v2rayNG 被冻结后 VPN 通道随之断开。处理方式:在系统设置中把 v2rayNG 加入「电池优化白名单」,部分机型还需要在「自启动管理」中允许自启动。开启 v2rayNG 的「连接时自动重连」可缓解短暂断连,但根因仍是后台限制。不同厂商的 ROM 对后台策略的实现差异很大,遇到断连先看「电池」页面是否有应用冻结提示。
订阅更新失败
移动端订阅更新失败多与系统时间或证书有关。Android 的自动时间同步若被关闭,时间偏差会导致 HTTPS 证书校验失败,订阅请求被拒。处理:开启「自动确定时间」并校准时区。另外,部分订阅域名在移动网络下不可直达,可在 v2rayNG 的订阅设置中开启「通过代理更新」,前提是当前已有可用节点。Wi-Fi 与移动网络切换后,订阅更新也可能因网络状态未刷新而失败,重新开关飞行模式再试。
私有 DNS 与代理冲突
Android 的「私有 DNS」功能会绕过应用层 DNS 设置,与客户端的域名分流冲突。现象:客户端显示已连接,部分域名解析异常。处理:把私有 DNS 设为「自动」或关闭,让解析统一走客户端配置。如果必须使用私有 DNS,选择支持 DoH 且不污染结果的服务器,但域名级分流仍可能失效。
v2flyNG 的差异
v2flyNG 使用 v2fly 内核,与 v2rayNG 的 Xray 内核在配置字段上存在差异。同一份订阅通常可以导入两款客户端,但个别高级参数(如部分传输方式的扩展字段)兼容性不同。排查时先确认节点协议与传输方式是否被当前内核支持,再考虑切换内核或客户端。两款客户端的配置数据互相独立,重装或换用另一款时需重新导入订阅。
| 对比项 | v2rayNG | v2flyNG |
|---|---|---|
| 内核 | Xray-core | v2fly-core |
| 后台保活 | 电池白名单 + 自启动管理 | 相同 |
| 订阅更新 | 支持通过代理更新 | 相同 |
| 配置兼容 | 支持 Xray 扩展字段 | 部分扩展字段不支持 |
移动端排查的完整清单见技术笔记《v2rayNG 已连接但无法上网:从系统代理到路由规则的逐项排查清单》,桌面端与移动端可对照使用。