(失效) 通过安卓子系统使用google one vpn
前言
看到一篇帖子,通过安卓子系统使用 Google one,于是我也开始尝试了一下,操作过程中遇到许多问题,本篇文章具体解决了上述参考文章中的部分问题,但也存在不足,如果有更好的方法欢迎大家讨论。
已有新方案:移步 WSA 使用 G1V
方案以失效,截至文章更新,google one vpn 和 wsa 均已停更
准备与要求
要求
首先内存要足够,推荐 16G+ 设备使用,这是我配置好后的子系统占用情况
CPU 要求不高,基本不吃 CPU,主要吃内存
准备
带 Gapps 和 magisk/kernelsu 的 wsa,域名一个 (可以在 eu.org 白嫖)
需要域名是因为 wsa 的 ip 每次重启或者更换网络环境会改变,正在寻找更好的解决方法
安装
wsa 安装与配置
可以使用 linux 环境编译带 gapps 和 magisk 的 wsa,参考 MagiskOnWSALocal,也可以在从此项目直接获取编译好的 wsa,WSABuilds,编译或下载过程这里不阐述
解压 wsa 安装包,将此目录放到你的软件安装目录中,然后右键 Install.ps1 ,点击 使用 Power shell 运行
如果没出错就顺利安装好了
打开 适用于 Android 的 Windows 子系统 ,高级设置中按照如图配置

说明:由于本人在学校要用到校园网,校园网开启了 ap 隔离,所以需要关闭本地网络访问选项,大家可以按照需求开启
模块安装
由于 wsa 新版本阉割了代理配置,无法配置系统代理,而参考文章中使用的 adb 命令开启代理。此方法有如下几个缺陷
- 宿主机的内网 ip 在更换网络环境的情况下会改变
- wsa 重启后系统代理配置失效
这里用到 box_for_magisk 模块,从 release 下载并在 magisk 安装此模块。
然后还需要 ddns-go 模块,用于解析到 wsa 的内网 ip。此模块内的 ddns-go 的二进制文件为 arm64 版本,如果你是 x86 架构,请前往 ddns-go 官方项目下载指定版本

安装过程中遇到的问题在此处解决
box for magisk 配置
使用任意高级的文件管理器,如 MT 管理器 ( 或者 termux 使用 vim),到以下目录 /data/adb/box
编辑 settings.ini 配置文件,依次找到如下行修改
network_mode="redirect"
ignore_out_list=("tun+") # 这里是忽略系统的 vpn 网卡,防止系统 vpn 流量被机场代理
然后转到./clash 目录下,修改 config.yaml 文件
# 其他配置
proxy-providers:
your_proxy:
type: http
url: "https://xxx" # 填写你机场的订阅链接
interval: 3600
path: ./onecoin.yaml
health-check:
enable: true
interval: 600
url: http://www.gstatic.com/generate_204
proxy-groups:
- name: proxy
type: select
filter: "日本|香港|新加坡" # 保留你要使用的地区的节点名称
use:
- your_proxy
rule-providers:
google-vpn: # 这是google one vpn的连接ip。需要放行
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/GentsunCheng/provider/google-vpn.txt"
path: ./ruleset/google-vpn.yaml
interval: 86400
rules:
- RULE-SET,google-vpn,DIRECT
# 其他规则
重启后转到 /data/adb/box/run 目录下,如果看到 box.pid 文件,则证明运行成功
为了方便管理,可以在子系统中下载 via 浏览器 (安装个最简单的浏览器就行),访问 metacubexd,可进行节点选择

ddns-go 配置
从 via 中访问 ddns-go 的管理界面 http://127.0.0.1:9876,然后按照说明配置 dns 服务商,这里推荐 cloudflare ,ttl 最低可以设置为一分钟。
然后 ipv4 选择通过网卡获取,选取 eth0 网口

代理配置
在子系统的 play 商店下载 google one,并连接 vpn,不出意外的话,现在已经成功连上了
然后安装 everyproxy,配置代理服务,这里的 Auto Start at Startup 选项需要打开
最后配置 Windows 端的 clash
# 其他配置
proxies:
- name: google-one
type: socks5
server: yourdomain.com
port: 12361
tls: false
skip-cert-verify: true
udp: true
# 其他规则
问题与解决
没有音量键,box 模块无法安装
找到模块压缩包下的 customize.sh 文件,找到如下内容
while true ; do
getevent -lc 1 2>&1 | grep KEY_VOLUME > $TMPDIR/events
if $(cat $TMPDIR/events | grep -q KEY_VOLUMEUP) ; then
ui_print "- It will take a while...."
/data/adb/box/scripts/box.tool all
break
elif $(cat $TMPDIR/events | grep -q KEY_VOLUMEDOWN) ; then
ui_print "- Skip download Kernel and Geox"
break
fi
done
修改为
while true ; do
ui_print "- It will take a while...."
/data/adb/box/scripts/box.tool all
break
done
建议直接按照如下方法安装
安装模块重启后消失
直接将模块解压到 /data/adb/modules 目录下即可,模块目录的名字要和 modules.prop 的 id 对应

注意,box_for_magisk 模块里面的 box 文件夹应该放到
/data/adb目录下
遗留问题
wsa 网卡的内网 ip 需要通过 ddns 来解析,但最短 ttl 为一分钟,在加上运营商可能会更改 ttl,缓存更长时间,无法做到开机即用,解决思路也是有的
- 写一个程序,通过 ddns-go 的 callback 选项,将 ip 传递给宿主机,然后修改 clash 配置文件 (但宿主机的 vEthernet 地址与 wsa 的不在同一个网段,wsa 无法获取)
目前已经有人向微软反馈此问题,需要给 wsa 静态 ip,也许可以等待微软更新