FlClash + WireGuard + Wstunnel 稳定配置实践(三):Google Play 下载问题解决
⚠️ 实验说明(重要)
本文是系列实践的第三篇,延续(一):极简原则与初版构建和(二):DNS 最小修正中的实验性技术探索。
当前配置仍处于验证阶段:
- 不保证适用于所有网络环境
- 不建议直接复制用于生产或关键业务
- 主要目的为验证“极简规则模型 + 最小 DNS 覆写”的可行性
不同地区的网络环境、DNS 行为及 VPS 线路质量,都会对最终效果产生影响。若后续稳定运行,将在最终篇中去掉此说明,作为可参考的稳定方案发布。
一、问题现象
在 Android 手机上使用 FlClash(Clash Meta 内核的 Android 客户端)配合自建的 ZgoCloud + Wstunnel + WireGuard 方案时,遇到一个典型问题:
- Play 商店页面:可以正常打开浏览。
- 应用更新/下载:点击“更新”后,应用一直卡在“等待中”状态,没有任何下载进度,最终失败。
与此同时,同一套配置在 Windows 电脑上(Clash Verge Rev)工作完全正常——Google 访问正常,Play 商店网页版也能打开。唯独 Android 手机上的 Play 商店应用无法完成下载。
二、问题定位
关于这个问题,我在另一篇博客《自建 VPN 后 Play 商店应用无法更新?别折腾 Wstunnel 了,问题在 Clash 分流规则里》中已有详细分析,核心结论是:
问题的根源不在于 Wstunnel 或网络链路,而在于 Clash 分流规则不够精细。
具体的解决方法是调整规则顺序——将 GEOSITE,google,Proxy 放在 GEOSITE,private 之前。
三、解决方案
3.1 核心改动
在 v2 配置的基础上,仅增加一行规则,并调整其位置:
rules:
# Wstunnel 服务器 IP 强制直连
- IP-CIDR,154.21.196.249/32,DIRECT,no-resolve
# ===== 关键:Google 服务走代理(必须放在 GEOSITE,private 之前) =====
- GEOSITE,google,Proxy
# 本地/私有网络直连
- GEOSITE,private,DIRECT
- GEOIP,private,DIRECT,no-resolve
...3.2 为什么放在 GEOSITE,private 之前?
实测发现:将 GEOSITE,google,Proxy 放在 GEOSITE,private 之前,Play 商店下载恢复正常;放在 GEOSITE,cn 后面则无效。
3.3 最终配置文件(v3)
完整配置已上传至 GitHub:shuijingwan/clash-config
# ==============================================
# ZgoCloud + Wstunnel + WireGuard
# MetaCubeX 极简稳定版 v3 (Google Play 优化)
# 兼容:Clash Verge Rev / FlClash
#
# 特点:
# - 最小化 DNS 覆写(仅防污染)
# - 不使用 SMTP / YouTube 特殊规则
# - 基于 GEOSITE + GEOIP
# - 结构最小化,便于排错
#
# 调整:将 GEOSITE,google 前置到 private 之前,
# 确保 Google 服务优先走代理(实测可解决 Play 下载问题)。
# ==============================================
# ----- 通用设置 -----
profile:
store-selected: true # 记住用户在 Proxy 组中手动选择的节点(重启后不丢失)
# ----- DNS 最小覆写(防污染) -----
dns:
# 国内域名解析:使用阿里公共 DNS over HTTPS,直连不经过代理
nameserver:
- https://dns.alidns.com/dns-query
# 【关键】让所有 DNS 查询(特别是 fallback)都通过代理组 Proxy 发出,避免本地 DNS 污染
proxy: Proxy
# 境外域名解析:使用 Cloudflare DNS over TLS,解析结果由代理隧道保护
fallback:
- tls://1.1.1.1:853
# 只让非中国 IP 的域名使用 fallback,国内域名强制走 nameserver
fallback-filter:
geoip: true
geoip-code: CN
# ----- 代理节点定义 -----
proxies:
- name: ZgoCloud-WG # 节点名称,可自定义
type: wireguard # 类型:WireGuard
server: 127.0.0.1 # 【必须修改】WireGuard 服务器的地址(此处为本地 wstunnel 映射端口)
port: 51820 # 【必须修改】WireGuard 端口
ip: x.x.x.x # 【必须修改】分配给本机的 WireGuard 内网 IP
public-key: xxx # 【必须修改】服务器公钥
private-key: xxx # 【必须修改】本机私钥
pre-shared-key: xxx # 【必须修改】预共享密钥
udp: true # 启用 UDP 转发
mtu: 1280 # MTU,若遇部分网站卡顿可尝试调整为 1200 或 1000
# ----- 代理组 -----
proxy-groups:
- name: Proxy # 代理组名称,被分流规则引用
type: select # 类型:手动选择
proxies:
- ZgoCloud-WG # 主代理节点
- DIRECT # 直连(不走代理)
# ----- 分流规则(基于地理数据集) -----
rules:
# Wstunnel 服务器 IP 强制直连,避免隧道自身流量回环(no-resolve 表示仅匹配 IP 规则,不触发 DNS 解析)
- IP-CIDR,154.21.196.249/32,DIRECT,no-resolve # 【必须修改】替换为你的 Wstunnel 服务器公网 IP
# ===== 关键:Google 服务走代理(必须放在 GEOSITE,private 之前) =====
- GEOSITE,google,Proxy
# 本地/私有网络直连
- GEOSITE,private,DIRECT
- GEOIP,private,DIRECT,no-resolve
# 中国大陆域名和 IP 直连,保证国内访问速度
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
# 所有非中国大陆域名走代理
- GEOSITE,geolocation-!cn,Proxy
# 未匹配到任何规则的流量,默认走代理(防止泄漏)
- MATCH,Proxy四、验证结果
配置修改完成、重新加载 Clash 之后:
| 验证项 | 结果 |
|---|---|
| Play 商店页面 | ✅ 正常加载,浏览不受影响 |
| 应用下载 | ✅ 进度条正常出现,速度稳定 |
| Google 网页访问 | ✅ 正常 |
在 FlClash 中查看实时请求日志,所有 Play 商店相关的请求全部走代理,下载正常进行:


tcp://play-fe.googleapis.com:443 → ZgoCloud-WG / Proxy
tcp://rr2---sn-a5mekn6l.xn--ngstr-Ira8j.com:443 → ZgoCloud-WG / Proxy
tcp://services.googleapis.cn:443 → ZgoCloud-WG / Proxy
tcp://connectivitycheck.gstatic.com:443 → ZgoCloud-WG / Proxy这正是预期行为:GEOSITE,google 规则将 Google 相关域名统一识别为代理流量,Play 商店的完整通信链路得以建立,下载因此恢复正常。

五、总结
回顾整个排查过程,最大的教训是:
不要过早把问题归因于底层网络。
Wstunnel 虽然链路较长,但并不是导致 Play 更新卡住的根本原因。真正的症结在于 Clash 分流规则的顺序。
最终只改动了一行配置的位置——将 GEOSITE,google,Proxy 放在 GEOSITE,private 之前。这就是“极简配置”的力量:问题出在规则顺序,而不是需要堆砌复杂的 DNS 覆写或外部规则集。
本系列三篇配置的完整代码已上传至 GitHub:
👉 shuijingwan/clash-config
欢迎 Star、Fork,也欢迎提交 Issue 讨论。
相关阅读: