Android System-Level sing-box Transparent Proxy Module
Supports Android Manager, TPROXY / REDIRECT, TCP / UDP, Clash API, zashboard, per-app proxy, and subscription management
中文 | English
| Feature | Description |
|---|---|
| Android Manager | Native Android app with a modern interface for module management |
| Clash API / zashboard | Clash API enabled by default with built-in zashboard |
| Transparent Proxy | Supports TPROXY / REDIRECT with TCP, UDP, and DNS hijacking |
| Per-App Proxy | Blacklist / whitelist modes for precise app-level control |
| Routing Rules | Custom domain, IP, port, and traffic routing rules |
| DNS Settings | Configurable DNS behavior and related proxy DNS options |
| Nodes & Subscriptions | Import from links, files, and subscriptions, then convert to sing-box configs |
| Hotspot Sharing | Proxy Wi-Fi hotspot and USB tethering traffic |
| Hot Switching | Switch nodes without a full module reinstall |
| Kernel Compatibility | Integrated IPSET LKM for wider kernel compatibility |
The old built-in module WebUI has been removed. NetProxy is now managed through:
- Android Manager
- CLI
- Clash API + zashboard
The Android Manager is a separately maintained native Android application that provides dashboard, nodes, subscriptions, per-app proxy, logs, and module configuration management. Install it from Google Play: NetProxy
There is no public source repository for the manager app.
Default control endpoints:
- Controller:
http://<device-ip>:9999 - UI:
http://<device-ip>:9999/ui - Secret:
singbox
- Download the latest ZIP from Releases
- Flash the module in Magisk / KernelSU / APatch
- Reboot your device
- Finish configuration through Android Manager, CLI, or zashboard
/data/adb/modules/netproxy/
├─ bin/
│ ├─ sing-box # sing-box core
│ ├─ proxylink # node / subscription conversion tool
│ ├─ ipset # ipset binary
│ ├─ IPSET-LKM/ # integrated IPSET kernel modules
│ └─ zashboard/ # built-in control panel
├─ config/
│ ├─ module.conf # module configuration
│ ├─ tproxy/
│ │ └─ tproxy.conf # transparent proxy configuration
│ └─ singbox/
│ ├─ confdir/ # common sing-box configuration
│ ├─ outbounds/ # node directories
│ │ ├─ default/
│ │ └─ sub_xxx/
│ ├─ runtime/ # runtime-generated configuration
│ └─ source/ # routing rules and rule sets
├─ logs/
│ ├─ service.log
│ ├─ sing-box.log
│ └─ subscription.log
├─ scripts/
│ ├─ cli
│ ├─ core/
│ ├─ network/
│ └─ utils/
├─ post-fs-data.sh
└─ service.sh
su -c /data/adb/modules/netproxy/scripts/cli service statussu -c /data/adb/modules/netproxy/scripts/cli service start
su -c /data/adb/modules/netproxy/scripts/cli service stop
su -c /data/adb/modules/netproxy/scripts/cli service restartSingle link:
su -c '/data/adb/modules/netproxy/scripts/cli node add "vless://..."'Import from file:
su -c '/data/adb/modules/netproxy/scripts/cli node import /sdcard/clash.yaml'Add and update subscriptions:
su -c '/data/adb/modules/netproxy/scripts/cli sub add MySub https://example.com/sub'
su -c '/data/adb/modules/netproxy/scripts/cli sub update-all'su -c '/data/adb/modules/netproxy/scripts/cli node list'
su -c '/data/adb/modules/netproxy/scripts/cli node use NodeName'su -c '/data/adb/modules/netproxy/scripts/cli mode'
su -c '/data/adb/modules/netproxy/scripts/cli mode rule'
su -c '/data/adb/modules/netproxy/scripts/cli mode global'
su -c '/data/adb/modules/netproxy/scripts/cli mode direct'su -c /data/adb/modules/netproxy/scripts/cli api uicli service {status|start|stop|restart|logs}
cli node {list|current|use|add|import|export|show|remove|delay}
cli mode [rule|global|direct]
cli sub {list|add|update|update-all|remove}
cli api {groups|conns|close|close-all|ui}
cli app {list|mode|add|remove|enable|disable}
cli tproxy {status|reload|quic|cnip}
Full help:
su -c /data/adb/modules/netproxy/scripts/cli helpDefault values in module.conf:
AUTO_START=1OUTBOUND_MODE=ruleSELECTOR_MODE=urltestGMS_FIX=0CURRENT_CONFIG=/data/adb/modules/netproxy/config/singbox/outbounds/default/default.json
Common defaults in tproxy.conf:
PROXY_TCP_PORT=1536PROXY_UDP_PORT=1536DNS_PORT=1536PROXY_MODE=0BLOCK_QUIC=1BYPASS_CN_IP=0LOG_TIMESTAMP=0
Notes:
PROXY_MODE=0means auto-detect TPROXY and fall back to REDIRECT when unavailableLOG_TIMESTAMP=0disables timestamp output in transparent proxy script logs by default
- Supports Magisk / KernelSU / APatch
- Transparent proxy scripts retain automatic TPROXY detection with REDIRECT fallback
- Integrated IPSET LKM improves compatibility across more devices and kernel versions
- Includes compatibility handling for some OnePlus / ColorOS environments
Contributions are welcome:
- Submit Issues to report problems
- Suggest new features
- Submit Pull Requests
- Star the project to support it
This project builds on the following open-source projects:
| Project | Description |
|---|---|
| sing-box | Current core proxy engine |
| Proxylink | Node links, subscriptions, and config conversion |
| AndroidTProxyShell | Reference for Android transparent proxy implementation |
| IPSET_LKM | Reference for IPSET kernel modules and compatibility support |
| zashboard | Frontend panel for Clash API |
| v2rayNG | Reference for parts of node parsing logic |

