Android 免 Root 运行 core
安卓无 Root 权限运行 V2Ray-core 并配置全局代理
此方法适用于不经常更改配置且设备无 Root 权限的用户
准备工具:
- 电脑
- adb 环境
- 数据线(用于设备与电脑连接)
技能:
- 了解 APN 设置
- Linux 经验
- 会编译 V2Ray-core
- 会设置操作系统的环境变量
环境:
Android 10
由于 Golang 仅支持 Android 10+ 低版本 Android 可能无法通过此方法运行
- ARM V8
缺点:
- 设备重启后需要手动启动程序
- USB 使用 文件传输 模式时会自动结束所有通过此方法启动的进程
编译
Go 语言主要通过 GOOS 和 GOARCH 来控制编译环境
环境变量
使用 arm64 即为 ARM V8
export GOOS=android export GOARCH=arm64
其他 ARM 架构,列如 V7:
export GOOS=android export GOARCH=arm export GOARM=7
进入 v2ray-core 目录:
go build -o ./v2ray -trimpath -ldflags "-s -w -buildid=" ./main go build -o ./v2ctl -trimpath -ldflags "-s -w -buildid=" -tags confonly ./infra/control/main
资源存放
将 v2ray 和 v2ctl 以及配置文件等资源放入设备的内部存储中
例如 "手机内部存储/V2Ray" 文件夹
运行
连接ADB
- 使用数据线连接电脑
- 打开设备的 USB 调试
- 开启 "仅充电" 模式下允许 ADB 调试
- 将 USB 连接模式改为 "文件传输"
检测设备
打开终端输入并以下命令:
$ adb devices
若设备提示 "是否允许 USB 调试",勾选 "始终允许..." 后确认
终端显示如下则表示为连接成功:
List of devices attached 1234567C06011253 device
传输文件
继续输入以下命令,此时终端会变为手机的标识符:
$ adb shell
将设备内部存储中的 V2Ray 程序复制到设备临时目录中并给予权限:
$ cp /sdcard/V2Ray/* /data/local/tmp/ $ cd /data/local/tmp/ $ chmod 777 *
尝试运行一下
$ ./v2ray
由于系统限制,建议 Inbound 内的入站使用 1024 以上的端口号
后台运行 V2Ray:
nohup ./v2ray &
测试无问题后按下 Ctrl+C 结束进程,然后把 USB 传输模式改为 "仅充电"
全局代理
此处使用系统 APN 来完成,Inbound 需要一个 HTTP 入站代理。由于默认的 APN 不允许更改,所以需要新建一个 APN
- 内容复制默认的就可以
- 设置中 "代理" 一栏中填入 127.0.0.1,端口号为你 HTTP 入站的端口号,保存即可
返回上层设置,选择这个 APN 即可
细节
HTTP 代理只在 HTTP 场景下才会使用,理论上来讲并不会影响游戏对局,但这里并没有实验
使用 APN 的代理方式大多数的应用程序都会有效,但如 Telegram 这类特殊的应用程序无效 此类程序应用内设置中通常都会提供设置代理的选项,手动设置一下即可
其他
相比套壳 App,使用此方式启动的 core 长时间运行并不会导致设备发热和明显的电量消耗
Previous:负载均衡 | Home:应用 |