/AnyPortal

v2ray, xray, ... GUI for Windows, macOS, Linux, Android, iOS

Primary LanguageDart

AnyPortal

  • v2ray, xray, ... GUI for Windows, macOS, Linux, Android, (iOS currently blocked).
  • Typically used in combination with a core (v2ray-core, xray-core, etc)

Download latest release

OS Download
Android





Windows
macOS
Linux
iOS currently blocked

Warning

This project is currently in its early alpha stage and may exhibit instability during execution. User preferences may not be retained in the final release, and the API is subject to change without prior notice. Please use this software at your own risk.

2024-09-27

Important

iOS development is currently blocked. iOS app using Network Extension requires a paid Apple Developer Program membership ($99/year) to debug even on our own devices, which is not available for the developers right now.

2024-09-27

Dev roadmap

Windows Linux macOS Android iOS
AnyPortal 🟢 🟢 🟢 🟢 🟡
core of exec 🟢 🟢 🟢 🟢¹
of lib 🟢² 🟡
tun via root 🟢³ 🟢⁴ 🟢⁵ 🟢¹
via platform api 🔴⁶ 🟢 🔴⁶
system proxy 🟢 🟢⁷ 🟢 🟢⁸
  1. Require api28 variant, not available for play store apilatest version.
    • The core exec asset is copied to internal storage upon selection, so you MUST reselect the core if you want to update it.
    • The working directory can not be set to a location without execution permission, e.g. the sdcard which has a FAT file system.
    • You MUST manually specify the envs if the core needs it, e.g. {"xray.location.asset" : "/storage/emulated/0/path/to/xray/assets"}
  2. Only xray-core 1.8.24 is embedded for now. Latest xray-core has stability issues
  3. Require Run as Administrator, elevated user share configuration with original user
  4. Require root, root DOES NOT share configuration with original user
  5. Require root, root DOES NOT share configuration with original user. Move the app to Application folder and run sudo /Applications/AnyPortal.app/Contents/MacOS/AnyPortal.
  6. Require an apple developer license to even debug an app that uses Network Extension. Dev progress currently blocked. The iOS app would serve little purpose right now without tun.
  7. Tested on Ubuntu 24.04 with Gnome
  8. Require root
  • ⚫ Not Planned: impossible / no plans / discontinued
  • 🟡 Planned: planned / under development
  • 🔵 Experimental: experimental implementation / testing
  • 🟢 Working: functioning as expected
  • 🔴 Not Working: dev blocked / known issues / non-functional

See planning here.

Technical details for power users

  • why v2ray/xray over sing-box?
    • load balancing
    • chained proxy in transport layer
    • better server-side functions (gRPC interface etc.), so we choose it also as client to reduce maintenance
  • remote profile has only one required field, a REST URL pointing to a v2ray config
  • for v2ray to work properly on Android and iOS, tun2socks is necessary
    • v2ray native tun inbound is only half finished for now
    • tun2socks with best performance so far: hev-socks5-tunnel, followed by sing-box
    • you can use anyportal with tun disabled on Android, and use external tools to redirect traffic to a socks port, just like on desktop
  • android api 29+ does not allow running binary directly
    • you can run custom cores (any version of v2ray, xray) with apk compiled with api target 28
    • play store always requires recent api targets, way over 28 now, so you can only use an embedded core with playstore apk
  • why do I need tun via root or system proxy on Android?
    • there are apps actively detecting if you are using VPN

License

All rights reserved until further notice (hopefully soon).

Thanks

3rd party libs used in the project

Inspired by, or related to, but not used in the project

Support development

coming soon

Final words

 

"You take the blue pill, the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill, you stay in Wonderland and I show you how deep the rabbit hole goes."  

— Morpheus, The Matrix (1999)

We hope you choose well between your home world and Wonderlands.