
最近看到一个功能比较完整的 Android Root 代理项目——NetProxy。它不是常见的 VPN 模式代理 App,而是一款面向已 Root 设备的系统级透明代理模块,以 sing-box 为代理核心,通过 TC eBPF 接管设备流量。
项目支持 Magisk、KernelSU 和 APatch,同时提供 Android 管理器、模块 WebUI、CLI、zashboard 和 sing-box Dashboard 等多种管理入口。对于喜欢折腾 Android Root、需要分应用代理或者想让热点共享设备也经过代理的用户来说,值得了解一下。
NetProxy 是什么
NetProxy 8.0 是一个 Android 系统级 sing-box 透明代理模块。节点、订阅、DNS、路由和透明代理配置都保存在模块目录中,运行时不依赖 Android VPN 模式。
简单来说,刷入模块后,代理服务直接在系统层工作。日常操作可以通过配套的 Android 管理器完成,也可以从 Magisk、KernelSU 或 APatch 的模块页面进入 WebUI;熟悉终端的用户还能使用 netproxyctl 管理服务和配置。
项目当前支持:
- Magisk;
- KernelSU;
- APatch;
- 本机 TCP、UDP 和 DNS 流量接管;
- 热点及 USB 网络共享代理;
- 分应用黑名单与白名单;
- 节点、订阅和 Clash YAML 导入;
- 规则、全局、直连等出站模式;
- 节点测速、自动选择和定时更新订阅。
主要功能
1. 基于 sing-box 的系统级透明代理
NetProxy 使用 sing-box 作为代理核心,通过 TC eBPF 接管流量,不修改 iptables 或 nftables。设备上的应用不需要单独设置代理,也不需要一直挂着 VPN 图标。
不过,这套实现对手机内核有明确要求。内核需要启用 BPF、TC classifier、透明 socket、socket lookup、veth 和策略路由等相关能力。如果设备内核缺少必要支持,模块可能无法正常启动。
因此,刷入前最好先确认自己的机型、内核和 Root 环境是否兼容,不建议抱着“先刷进去再说”的想法直接尝试。
2. 支持分应用代理
模块提供分应用黑名单和白名单模式,可以决定哪些应用经过代理、哪些应用保持直连。
例如只让浏览器、Telegram 或指定应用使用代理,国内应用继续走直连;也可以反过来,只排除不需要代理的应用。相比所有流量统一转发,这种方式会更灵活。
3. 支持热点和 USB 共享代理
NetProxy 不仅可以接管手机本机流量,还支持热点和 USB 共享网络。
这意味着电脑、平板或者其他设备连接手机热点后,也可以根据模块配置使用代理。对于临时共享网络、测试设备或者不方便单独配置代理的终端来说,这项功能比较实用。
4. 节点和订阅管理
项目支持导入单个节点链接、节点文本、Clash YAML 和订阅地址,模块会将这些内容转换为需要的 sing-box Provider。
节点选择既可以手动完成,也可以通过 URLTest 自动测速。订阅支持手动更新和定时更新,比较适合长期使用。
需要注意,手写节点配置时,顶层必须是完整的 outbounds 数组,协议字段使用 sing-box 的 type,不能直接照搬 Xray 配置里的 protocol 字段。
5. 多种出站模式
NetProxy 提供以下几种常用模式:
Rule:根据规则分流;Global:全局代理;Direct:全部直连;AllowAds:项目提供的另一种出站模式。
它还支持根据 WiFi SSID 在基础模式和 Direct 模式之间自动切换。例如连接家中 WiFi 时使用指定策略,切换到其他网络后自动恢复原有代理模式。
6. 管理器、WebUI 和命令行
项目提供了几种不同的管理方式:
- Android 管理器:适合日常使用,可管理服务、节点、订阅、分应用代理、配置和日志;
- 模块 WebUI:可以从 Root 管理器的模块页面进入;
- CLI:适合终端操作、自动化以及故障排查;
- zashboard:用于查看代理组、连接状态、延迟并进行运行时控制;
- sing-box Dashboard:查看和管理 Service API。
普通用户使用 Android 管理器或者模块 WebUI 就够了,没有必要专门记一大堆命令。
如何安装
项目的 Releases 页面提供两种模块包:
| 版本 | 内容 | 适合人群 |
|---|---|---|
| 标准包 | sing-box、原生组件、WebUI、zashboard、CLI 和 eBPF | 默认推荐,可另外安装 Android 管理器 |
| 含管理器包 | 标准包的全部内容,加上管理器 APK | 无法使用 Google Play,或希望刷入时一起安装管理器 |
两个版本的代理能力完全相同,区别只是是否附带 Android 管理器 APK。正常情况下选择标准包即可。
安装步骤也比较直接:
- 从项目 Releases 页面下载最新模块 ZIP;
- 在 Magisk、KernelSU 或 APatch 中刷入模块;
- 如果是更新旧版本,根据提示选择保留数据或全新安装;
- 导入节点或订阅,并选择要使用的节点;
- 通过管理器、WebUI 或命令行启动服务。
设备开机后直接在 Root 管理器里刷入,一般可以后台应用新版本;如果是在 Recovery 中刷入,则需要重启设备。
模块默认关闭开机自启,也就是 AUTO_START=0。建议先确认节点、DNS、规则和透明代理都能正常运行,再从管理器中打开开机启动。
常用命令
下面这些命令都需要 Root 权限。
查看运行状态:
su -c '/data/adb/modules/netproxy/netproxyctl service status'
导入 Clash YAML:
su -c '/data/adb/modules/netproxy/netproxyctl node import /sdcard/clash.yaml'
查看节点:
su -c '/data/adb/modules/netproxy/netproxyctl node list'
启动服务:
su -c '/data/adb/modules/netproxy/netproxyctl service start'
查看或切换规则模式:
su -c '/data/adb/modules/netproxy/netproxyctl mode'
su -c '/data/adb/modules/netproxy/netproxyctl mode rule'
查看完整中文帮助:
su -c '/data/adb/modules/netproxy/netproxyctl help'
使用前需要注意
内核兼容性
这是最重要的一点。NetProxy 依赖 eBPF 和多项内核网络能力,并不是所有已 Root 手机都能直接使用。如果启动时出现 eBPF 加载错误,应先检查当前内核是否支持 BPF、TC、透明 socket、veth 和策略路由,而不是反复刷模块。
管理端口不要直接暴露
项目默认的本地管理地址包括:
- Clash API:
127.0.0.1:9999; - zashboard:
127.0.0.1:9999/ui/; - sing-box Service API Dashboard:
127.0.0.1:9090/dashboard/。
这些接口默认只监听本机。如果要让局域网中的其他设备访问,应同时设置访问控制、强密码和 TLS,不要简单地把默认监听地址改成 0.0.0.0 后直接暴露。
刷机模块始终存在风险
安装前建议保留当前可用的模块包和卸载方案,并备份重要配置。如果刷入后出现无法开机、网络异常或模块冲突,可以进入安全模式或 Recovery 移除对应模块。不同系统版本、第三方内核和其他网络模块之间也可能存在兼容性问题。
请遵守当地法律和服务条款
NetProxy 本身是一套网络代理与流量管理工具。使用时应遵守所在地法律法规、网络服务条款和单位网络管理规定,不要用于未授权访问或其他违法行为。
总结
NetProxy 的特点不是“安装一个 sing-box 核心”这么简单,而是把透明代理、eBPF 流量接管、分应用代理、热点共享、节点订阅、规则分流、管理界面和命令行工具整合到了一起。
如果你的 Android 设备已经 Root,内核也具备所需的 eBPF 能力,并且希望代理服务运行在系统层,那么这个项目值得尝试。对于只想简单导入订阅、打开代理的普通用户来说,它的配置深度可能有些高;但对经常折腾 Magisk、KernelSU、APatch 和 sing-box 的用户来说,可玩性还是很强的。
项目地址:https://github.com/Fanju6/NetProxy-Magisk
项目文档:https://www.netproxy.store/
TG群组:https://t.me/NetProxy_Magisk
开源协议:GPL-3.0
评论