v2rayN supports macOS, Windows, and Linux. Subscription groups, system proxy, and routing presets are available in its GUI. It’s a good fit if you want to start by importing a subscription and check your rules as you go.
v2rayNG uses the Xray core. If your subscription mentions VLESS, REALITY, or Vision, check the client and server settings before choosing an import method.
Consider v2flyNG only if your configuration specifically targets the v2fly core or you need to reproduce an existing V2Fly setup. Similar names alone don’t guarantee protocol compatibility.
Swipe horizontally to view the table on narrow screens. Features may change between releases; check the documentation for your installed client and core.
Category
v2rayN
v2rayNG
v2flyNG
Platforms
Windows、macOS、Linux
Android
Android
Core
Xray is a common choice; sing-box may also be available depending on the client version and configuration. Don’t assume v2fly configurations will work unchanged.
Xray; protocol support depends on the bundled core version
v2fly; don’t infer compatibility from Xray’s feature list
Maintenance
Actively maintained; check platform support and release notes before installing
Actively maintained; check Android compatibility and core changes
Maintenance cadence needs verification; review release notes before choosing
Getting started
Subscription import is straightforward; system proxy, routing, and TUN are separate concepts
Import a subscription and grant VPN permission to start testing; background use may need extra setup
Best for users with compatible configurations; check core differences yourself
Subscription groups
Group subscriptions by source to manage updates and choose nodes more easily
Manage subscriptions and organize nodes by source
Import and manage subscriptions; confirm format support with the configuration provider
Routing UI
Visual routing presets and rule settings make it easier to review rule order
Routing settings and app-routing options; configure them in the client UI
Routing is configurable; don’t reuse fields specific to another core
TUN and traffic routing
TUN mode is available; support depends on the core, system permissions, and platform
Routes traffic through Android’s VPN service; this is not the same as a desktop TUN toggle
Routes traffic through Android’s VPN service; requires VPN permission and is affected by background restrictions
System proxy
Can set a system proxy; only apps that honor it are affected
VPN mode is typical for everyday use; desktop system proxy steps don’t apply
VPN mode is typical for everyday use; follow the Android interface
Best for
Mac users, desktop professionals and developers, and anyone managing multiple subscriptions
Android beginners, users with Xray configurations, and anyone who needs per-app routing
Users with V2Fly-compatible configurations who need to retain that core’s behavior
This table does not rank clients by speed. Connection quality depends on the server, network, DNS, protocol settings, and device load—not the client name.
v2rayN: desktop subscription and routing management
For Mac, start with v2rayN. It brings subscription groups, node selection, system proxy, and routing rules together in a desktop interface, making it easy to check settings alongside configuration instructions. Windows and Linux users can use the same client, but installers, permissions, and system integration differ by platform. Don’t assume installation steps for one platform apply to another.
With v2rayN, it helps to understand two separate settings. The system proxy determines which apps send requests to the local proxy. Routing rules determine whether the core connects directly, uses a proxy, or blocks a request. So enabling automatic system proxy settings doesn’t mean every app will use the proxy, and choosing “Bypass mainland China” doesn’t mean your system is routing traffic through the client. Set up the entry point first, then check routing to narrow down issues.
Subscription groups and when to use TUN
If you have multiple subscriptions, group them by source or purpose. After updating a group, check that its nodes appear and that the intended node is still selected. Importing the same URL more than once can leave duplicate entries that are hard to tell apart. Updating a subscription also doesn’t sync its URL to your other devices.
TUN can route traffic from apps that ignore the system proxy, but it adds a virtual network interface and requires routing and DNS configuration. First make sure the system proxy works, then enable TUN if needed. After switching cores, check protocol, routing, and DNS settings again. An import that succeeds in the UI doesn’t guarantee the core can run the configuration.
For everyday Android use, v2rayNG is the first client to consider. It runs on the Xray core and lets you import subscriptions, select nodes, and configure routing. For configurations with REALITY or Vision, check each setting, including server address, port, user ID, transport, service name, and related parameters. VLESS alone doesn’t mean you can swap settings between different nodes.
The first time you connect, Android asks you to grant VPN permission. This allows the client to route traffic through Android’s VPN service; it doesn’t mean the subscription is valid. You still need to test the node. Another app using Android’s VPN service may conflict, so check which connection is actually active before testing.
Per-app routing and background use
Per-app routing controls which apps use or bypass the VPN. Domain and IP routing rules apply to requests that reach the core. If you configure both, first check that the app is included in the VPN, then confirm that the rules match. If one browser works but another app doesn’t, don’t assume the node is at fault. Check app routing, DNS, and the app’s own network behavior too.
If the connection drops when the screen turns off, check Android battery optimization, background activity, and autostart restrictions. Settings vary by device, so follow the system interface. Don’t change the node, routing, and background settings all at once; change one thing at a time to see what helps. For import instructions, see the user guide.
v2flyNG: an alternative for V2Fly core compatibility
Choose v2flyNG for core compatibility—not because the name looks familiar or the installer seems simpler. It uses the v2fly core, which shares the Project V ecosystem with Xray, but the two have evolved along different paths. Matching protocol names don’t guarantee identical transport, flow control, encryption, or configuration fields.
If you already have a configuration written specifically for V2Fly semantics and tested in that environment, v2flyNG may be a suitable Android alternative. But if your subscription relies on Xray-specific features such as REALITY or Vision, switching to v2flyNG isn’t a fix for connection problems. Confirm the required core with your configuration provider before choosing a client; it’s more effective than repeatedly reinstalling apps.
Check maintenance and configuration sources before choosing
Don’t judge maintenance solely by whether the client installs. Check whether release notes cover your Android version, whether the bundled core supports the protocols you need, and whether known issues affect everyday use. We don’t assume a project is unmaintained just because update information is missing. Verify anything you can’t confirm before relying on it.
v2flyNG isn’t the default starting point for users new to importing subscriptions. Choose it only when there’s a clear core compatibility reason, and keep the original configuration for comparison. A full JSON configuration and a share link may contain different settings. After converting, check DNS, routing, and any other settings the share link doesn’t include.
Choose by use case
Three things to check before downloading
Check your system and processor. On a Mac, check “About This Mac” to see whether it has Apple silicon or Intel. For Windows and Linux, choose a build that matches the system and architecture listed on the download page. On Android, check the system requirements as well as your phone model.
Check subscription requirements. Find out whether the subscription is a collection of share links or a full configuration, and whether it requires a specific core. “Supports V2Ray” alone doesn’t tell you whether REALITY, flow control, or core-specific transport fields will work.
Check which traffic you need to route. On desktop, start with the system proxy and consider TUN for apps that ignore it. On Android, grant VPN permission first, then configure per-app routing if needed. Save your preferred settings after the connection works.
If you’re still unsure, use the default for your platform: v2rayN on desktop and v2rayNG on Android. Choose v2flyNG only if you specifically need the v2fly core. Visit the download page to choose a build for your system, or see the full documentation for platform-specific steps. If no nodes appear after import or your browser can’t connect, check the FAQ.