package icon

5G Proxy Client

Routes device traffic through a remote SOCKS5 proxy via TUN. No root, TCP/UDP.
New in version 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 se
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.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 1.6.7 (20) suggested Added on Oct 12, 2026

    arm64-v8a armeabi-v7a x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • android.permission.BIND_QUICK_SETTINGS_TILE
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • display notifications as full screen activities on a locked device
      Allows the app to display notifications as full screen activities on a locked device
    • com.tokyoxpa3.socksclient.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 2 MiB PGP Signature | Build Log

  • New in version 1.6.6
    - Fix: IPv6 link-local detection (fe80::/10) now compares the numeric value of the first hextet instead of a textual prefix, so an address such as fe8::1 is no longer misread as link-local and dropped — it is really 0fe8::, which is outside fe80::/10 (over-filtering reported in the F-Droid 1.6.5 review; the existing test had asserted the buggy behaviour)
    - Fix: when Wi-Fi and mobile data are both up with different DNS servers, re-resolution after a network change only ever worked for the first o
  • Version 1.6.6 (19) - Added on Oct 08, 2026

    arm64-v8a armeabi-v7a x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • android.permission.BIND_QUICK_SETTINGS_TILE
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • display notifications as full screen activities on a locked device
      Allows the app to display notifications as full screen activities on a locked device
    • com.tokyoxpa3.socksclient.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 2 MiB PGP Signature | Build Log

  • New in version 1.6.5
    - Fix: after a network change, the DNS servers used to re-resolve the proxy server's hostname were the tunnel's own advertised servers (8.8.8.8 / 1.1.1.1 by default), not the DNS of the network the tunnel actually runs over. The intended "fall back to the local network's DHCP DNS" step had never taken effect, because it read the active network — which, for a VPN app, is its own VPN network. The underlying network's resolver is now tried first, so the hostname is not handed to a third-party resol
  • Version 1.6.5 (18) - Added on Oct 06, 2026

    arm64-v8a armeabi-v7a x86_64

    This version requires Android 8.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • android.permission.BIND_QUICK_SETTINGS_TILE
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • display notifications as full screen activities on a locked device
      Allows the app to display notifications as full screen activities on a locked device
    • com.tokyoxpa3.socksclient.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 2 MiB PGP Signature | Build Log