(失效) 通过安卓子系统使用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,也许可以等待微软更新