English | 简体中文
Fork / 学习实践分支 · Based on hect0x7/android-proxy-server.
本分支保留上游作者归属及 Apache-2.0 许可。代理功能、使用条件与构建说明见下方;原项目与版权信息见文末及 NOTICE。
An independent, minimal, open-source, and ad-free HTTP/SOCKS5 proxy server for Android.
| App |
|---|
![]() |
- HTTP proxy on port
8080by default - HTTPS tunneling through
CONNECT - SOCKS5 TCP
CONNECTon port1080by default - Independent HTTP and SOCKS5 switches and configurable ports
- Listens on local network interfaces for LAN clients
- Rejects connections originating from the phone itself to prevent recursive proxy loops
- Uses Android's current default network, including another active VPN
- Runs as a user-controlled foreground service
- Runs a local listener self-test before reporting startup success
- Displays a persistent health bar with live transfer rates and active connections
- Displays cumulative traffic statistics and in-memory session logs
Connect the Android phone and client devices to the same trusted LAN, start HTTP and/or SOCKS5 in the app, then enter the phone's LAN IP and the displayed port in the client proxy settings.
Client device Home router Android phone Internet
192.168.1.x <----> Same Wi-Fi/LAN <----> Proxy server <----> VPN/default route
8080 HTTP
1080 SOCKS5
See the illustrated Getting Started Guide for protocol selection, setup examples, and troubleshooting.
The app contains no advertising, analytics, telemetry, crash reporting, accounts, purchases, rating prompts, remote configuration, or automatic-update SDKs. Settings remain in Android private app storage, while traffic statistics and session logs remain in memory and are cleared when the service stops.
The proxy has no authentication and listens on 0.0.0.0. Enable it only on trusted networks and never expose its ports directly to the internet.
Read the Privacy Policy and Security Policy for details.
This app does not use Android VpnService and does not create a VPN interface. Outbound proxy connections follow Android's current default route, so the server can remain active while another VPN app is connected and send traffic through that VPN.
While either proxy listener is running, the foreground service holds a partial wake lock so the proxy can continue processing connections after the screen turns off. On Android 6.0 and later, open Background Operation in the app and tap Allow to exempt the app from battery optimization; otherwise Doze may suspend network access during extended idle periods. Some device vendors also require enabling unrestricted battery usage, background activity, or autostart in system settings.
Pushing to master runs tests and uploads Debug/Release APKs as temporary GitHub Actions artifacts. Pushing a v* tag that exactly matches versionName creates or updates a GitHub Release and attaches the signed Release APK.
Release builds use a fixed signing certificate stored in repository Actions Secrets. Before publication, the workflow verifies the APK signature and confirms that its certificate matches the configured release keystore.
git tag -a v1.1.1 -m "Android Proxy Server v1.1.1"
git push origin v1.1.1
Local build command:
./gradlew test :app:assembleDebug :app:assembleRelease
The project contains two modules:
app: Compose UI and Android foreground serviceproxycore: HTTP, HTTPSCONNECT, and SOCKS5 TCP forwarding
The proxy core does not depend on Android VpnService.
- SOCKS5 supports unauthenticated TCP
CONNECTonly - SOCKS5
UDP ASSOCIATEandBINDare not supported - HTTP and SOCKS5 username/password authentication is not supported
Copyright 2026 hect0x7. Licensed under the Apache License 2.0. See LICENSE and NOTICE.
