5G Proxy Client

com.tokyoxpa3.socksclient
by Zapstore _@zapstore.dev

Routes device traffic through a remote SOCKS5 proxy via TUN. No root, TCP/UDP.

Republished from GitHub / F-Droid by the Zapstore main account.

Android SOCKS5 TUN tunnel client — routes the device's entire network traffic through a remote SOCKS5 server using a TUN virtual interface. No root required. Features: - User-space TCP state machine forwarded via SOCKS5 CONNECT - UDP / DNS / QUIC relay via SOCKS5 UDP ASSOCIATE (UDP-in-UDP or UDP-in-TCP 0x04) - Remote DNS (fakedns) with fake IPv4 (198.18.0.0/15) and fake IPv6 - IPv4 + IPv6 dual-stack support - Per-App routing modes: Global, Allowlist, or Exclusion - Auto-reconnect with exponential backoff on connection drop - Live traffic statistics (up/down bytes & session count) in persistent notification - Custom primary & secondary DNS servers - Start tunnel on boot - Quick Settings tile for one-tap tunnel toggle - Multiple profile management with JSON export/import via clipboard - Native C (epoll) engine + JNI + Kotlin UI Privacy notes: - While the tunnel is up, the proxy server's hostname is re-resolved outside the tunnel (needed to follow DDNS / IP changes without tearing the TUN interface down). That lookup is sent to the DNS servers of the network the tunnel actually runs over. The custom DNS servers above are used only as a fallback when that resolver gives no answer, and the fallback is written to the log. - With Remote DNS enabled, DNS queries from apps are relayed to the proxy exit instead of being answered locally. Open source (MIT), reproducible builds.

First release: Oct 10, 2026, 1 total release.

Most recent release: Oct 10, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Oct 10, 2026 1.6.7
    - Fix: a DNS query carried over TCP (remote DNS enabled, with the query itself sent through the tunnel) was never released. The connection record and its buffer stayed allocated, and the session counter only ever went up. After 512 of them the client would refuse every new TCP connection — DNS and ping still worked, everything else was dead, and restarting the tunnel brought it back. The session now releases itself as soon as the answer has been written back, and a regression test asserts the session count returns to its pre-connection level (it fails without the fix) - Fix: when a protected socket could not be set up, the socket that had already been created was left open. A connect timeout to the SOCKS5 server was the common case, and repeated failures leaked one file descriptor each. The socket is now closed on every failure path <details><summary>繁體中文</summary> - 修正:走 TCP 的 DNS 查詢(開啟遠端 DNS、查詢本身也穿過隧道)其連線紀錄永遠不會釋放。紀錄與緩衝區一直佔著,連線計數只增不減。累計 512 次之後,用戶端會拒絕所有新的 TCP 連線 —— DNS 與 ping 都還正常,其他全掛,重啟隧道才會恢復。現在答案寫回後連線即自我釋放,並加上迴歸測試斷言連線數會回到連線前的水位(沒有這個修正時該測試會失敗) - 修正:建立受保護的 socket 失敗時,已經建好的那個 socket 會被留在那裡。最常見的是連線 SOCKS5 伺服器逾時,反覆失敗就會一次漏掉一個檔案描述符。現在所有失敗路徑都會關閉 socket </details>
    More…
    Signed APK attached below (reproducible F-Droid build). <details><summary>Commits in this release</summary> - chore(release): v1.6.7 (versionCode 20) ([a09ec3e](https://github.com/tokyoxpa3/5G-Proxy-Client/commit/a09ec3e461bd7839208c16484a104ab0abf1a2b1)) - docs: 補上 F-Droid featureGraphic(商店頁橫幅) ([bbe0979](https://github.com/tokyoxpa3/5G-Proxy-Client/commit/bbe09798071c0069a814a28fc2450c9a58a48d36)) - docs: README 加上 F-Droid 與 GitHub 下載 badge ([87be3b7](https://github.com/tokyoxpa3/5G-Proxy-Client/commit/87be3b78c6c6342c227a8d37af4c2266a3021457)) - fix(app): createProtectedSocket 例外路徑關閉 socket,不再洩漏 fd ([71fe15b](https://github.com/tokyoxpa3/5G-Proxy-Client/commit/71fe15b02e2aaad6cf746565d51d31c89ae34254)) - fix(engine): DNS-over-TCP session 不再永不回收 ([2490035](https://github.com/tokyoxpa3/5G-Proxy-Client/commit/2490035c17be11538235aca2a4703131d11d211f)) </details>