前言

看到一篇帖子,通过安卓子系统使用Google one,于是我也开始尝试了一下,操作过程中遇到许多问题,本篇文章具体解决了上述参考文章中的部分问题,但也存在不足,如果有更好的方法欢迎大家讨论。

已有新方案:移步WSA使用G1V

准备与要求

要求

首先内存要足够,推荐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,也许可以等待微软更新

文章作者: orii
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 oriiのBlog
VPN GFW Clash VPN
喜欢就支持一下吧