前言

看到一篇帖子,通过安卓子系统使用 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,也许可以等待微软更新

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