本项目通过 Magisk 、KernelSU 或 APatch 部署 clash、mihomo、sing-box、v2ray、xray、hysteria 代理,支持 REDIRECT(仅 TCP)、TPROXY(TCP + UDP)透明代理,支持由核心提供的 TUN(TCP + UDP)代理,也支持 REDIRECT(TCP) + TUN(UDP) 混合模式代理。
本项目不对以下情况负责:设备变砖、SD 卡损坏或 SoC 烧毁。
请确保您的配置文件不会造成流量回环,否则可能会导致您的手机无限重启。
如果你真的不知道如何配置这个模块,你可能需要像 ClashForAndroid、sing-box for Android、v2rayNG、surfboard、SagerNet、AnXray 等应用程序。
/data/adb/box/scripts/box.config
文件(在 shell 中,后定义的变量值会覆盖之前的定义值,但仍建议更新模块后再次编辑 box.config
文件去除重复定义与移除废弃字段)模块不包含 clash、mihomo、sing-box、v2ray-core、Xray-core、Hysteria 等二进制可执行文件。
模块安装完成后请您自行下载设备对应架构的核心文件放置到 /data/adb/box/bin/
目录。
/data/adb/box/核心名字
目录,核心名字由 /data/adb/box/scripts/box.config
文件中 bin_name
定义,有效值只有 clash
、mihomo
、xray
、v2ray
、sing-box
,bin_name
决定模块启用的核心/data/adb/box/run/check.log
文件中mihomo
和 sing-box
核心自带默认配置已做好配合透明代理脚本工作的准备。建议编辑 proxy-providers
或 outbounds
部分来添加您的代理服务器,进阶配置请参考相应官方文档。地址:clash 文档,mihomo 文档,sing-box 文档,v2ray 文档,xray 文档,Hysteria 文档以下核心服务统称 Box
Box 默认代理所有安卓用户的所有应用程序(APP)
如果您希望 Box 代理所有应用程序(APP),除了某些特定的应用,那么请打开 /data/adb/box/scripts/box.config
文件,修改 proxy_mode
的值为 blacklist
(默认值),在 user_packages_list
数组中添加元素,数组元素格式为安卓用户:应用包名
,元素之间用空格隔开。即可不代理相应安卓用户应用。例如 user_packages_list=("0:com.android.captiveportallogin" "10:com.tencent.mm")
代表不代理用户 0 的 CaptivePortalLogin 和用户 10 的 Wechat
如果您希望只对特定的应用程序(APP)进行透明代理,那么请打开 /data/adb/box/scripts/box.config
文件,修改 proxy_mode
的值为 whitelist
,在 user_packages_list
数组中添加元素,数组元素格式为安卓用户:应用包名
,元素之间用空格隔开。即可仅代理相应安卓用户应用。例如 user_packages_list=("0:com.termux" "10:org.telegram.messenger")
代表代理用户 0 的 Termux 和用户 10 的 Telegram
proxy_mode
的值为 core
时,透明代理不会工作,仅仅启动相应核心,这可以用来支持部分核心(sing-box、clash、mihomo)原生的 TUN 入站
Box 默认使用 TPROXY 透明代理 TCP + UDP,若检测到设备不支持 TPROXY,则自动使用 REDIRECT 仅代理 TCP
打开 /data/adb/box/scripts/box.config
文件,修改 proxy_method
的值为 REDIRECT
或 MIXED
则使用 REDIRECT 代理 TCP,在核心(仅 sing-box、clash、mihomo支持 TUN)没有启用 TUN 时 UDP 不会被代理
Box 默认使用 root:net_admin
用户用户组启动
打开 /data/adb/box/scripts/box.config
文件,修改 box_user_group
的值为设备中已存在的 UID:GID
,此时 Box 使用的核心必须在 /system/bin/
目录中(可以使用 Magisk),且需要 setcap
二进制可执行文件,它被包含在 libcap 中
Box 默认透明代理本机、热点、USB 网络共享
打开 /data/adb/box/scripts/box.config
文件,修改 ignore_out_list
数组添加 wlan+
元素则透明代理绕过 WLAN,热点不受影响
打开 /data/adb/box/scripts/box.config
文件,修改 ap_list
数组删除 wlan+
元素则不透明代理热点(联发科机型可能为 ap+
而非 wlan+
,可使用 ifconfig 命令查看)
Box 默认透明代理所有进程
如果您希望 Box 代理所有进程,除了某些特定的进程,那么请打开 /data/adb/box/scripts/box.config
文件,修改 proxy_mode
的值为 blacklist
(默认值),在 gid_list
数组中添加 GID 元素,GID 之间用空格隔开。即可不代理相应 GID 的进程
如果您希望只对特定的进程进行透明代理,那么请打开 /data/adb/box/scripts/box.config
文件,修改 proxy_mode
的值为 whitelist
,在 gid_list
数组中添加 GID 元素,GID 之间用空格隔开。即可仅代理相应 GID 进程
小贴士:因为安卓 iptables 不支持 PID 扩展匹配,所以 Box 匹配进程是通过匹配 GID 间接达到的。安卓可以使用 busybox setuidgid 命令使用特定 UID 任意 GID 启动特定进程
如果您希望完全通过运行命令来控制 Box 服务,只需新建一个文件 /data/adb/box/manual
。在这种情况下,Box 服务不会在您的设备启动时自动启动,您也不能通过 Magisk Manager 或 KernelSU Manager 应用管理 Box 服务的启动或停止。
Box 服务脚本是 /data/adb/box/scripts/box.service
例如,在测试环境中(Magisk version: 25200)
/data/adb/box/scripts/box.service start
/data/adb/box/scripts/box.service stop
/data/adb/box/scripts/box.service restart
/data/adb/box/scripts/box.service status
透明代理脚本是 /data/adb/box/scripts/box.tproxy
例如,在测试环境中(Magisk version: 25200)
/data/adb/box/scripts/box.tproxy enable
/data/adb/box/scripts/box.tproxy disable
/data/adb/box/scripts/box.tproxy renew
修改各核心配置文件时请保证相关配置与 /data/adb/box/scripts/box.config
文件中的定义一致
Box 服务初次启动时(或使用 box.tproxy renew 命令)会将本机 IP 加入绕过列表防止流量环路,但仍建议如本机存在公网 IP 地址请将 IP 添加至 /data/adb/box/scripts/box.config
文件中的 intranet
数组中
Box 服务的日志在 /data/adb/box/run
目录
/data/adb/service.d/box4_service.sh
文件,保留 Box 数据目录 /data/adb/box
rm -rf /data/adb/box