CLIENT SELECTION / CHOOSING A CLIENT

V2Ray Client Comparison:
v2rayN vs. v2rayNG vs. v2flyNG

Choose a client for your device first, then check that its core supports your configuration. Start with v2rayN on desktop and v2rayNG on Android; consider v2flyNG on Android when your setup requires the V2Fly core.

Start with your device

Windows · macOS · Linux v2rayN Desktop subscription and routing management
Android v2rayNG A popular choice with the Xray core

Need the V2Fly core? See v2flyNG for Android.

Three clients, compared feature by feature

“Supported” doesn't mean every build, system permission, or server configuration works the same way. Start by checking your device platform, then verify features in the client and core you plan to use.

v2rayN, v2rayNG, and v2flyNG: features and use cases
Category v2rayN v2rayNG v2flyNG
Platforms Windows、macOS、Linux Android Android
Core options On desktop, use Xray, V2Fly, or other cores depending on installation and configuration Xray core V2Fly core
Maintenance Actively maintained; check release notes before downloading Actively maintained; check release notes before downloading Community-maintained; check release information for the latest status
Learning curve Start by importing a subscription; routing and TUN settings require some additional setup Start by importing a subscription; Android VPN permission is required Similar basic setup; check configuration compatibility with V2Fly
Subscription management Group, update, and filter servers across multiple subscription sources Import and update subscriptions, then choose a server on your phone Subscriptions can be imported; available configurations depend on core support
Routing rules Desktop interface offers a broad set of routing controls Mobile routing settings are available, with a different workflow from desktop Mobile settings are available; check core compatibility for complex rules
Routing device traffic Configure the system proxy; TUN requires permissions suited to your system Uses Android's system VPN interface; this isn't the same as the desktop TUN toggle Uses Android's system VPN interface; this isn't the same as the desktop TUN toggle
Best for Desktop users, people managing multiple subscriptions, or anyone who needs granular traffic routing Users who want to run Xray configurations on Android Android users who specifically need the V2Fly core

On Android, VPN permission lets the client handle device traffic. It's different from the “TUN mode” setting in the v2rayN desktop interface.

What each client is best for

Best for desktop

v2rayN: desktop use and multiple subscriptions

If you want a GUI client for Windows, macOS, or Linux, start with v2rayN. It brings server lists, subscription groups, routing settings, and system proxy controls into one desktop workflow. With a single subscription, just import it and select a server. If you manage several, organize them into groups to keep servers from different sources separate when they update.

For routing by domain or process, check the rule match order before switching presets. TUN involves device permissions and DNS behavior, so it's not required just to make your first connection. If a server requires specific flow control, transport security, or fingerprint settings, make sure the selected core recognizes those fields. An imported server isn't necessarily a compatible configuration.

Go to v2rayN downloads
Best for Android

v2rayNG: Android and Xray configurations

v2rayNG is an Android client powered by the Xray core. Once you have a subscription URL, add it in the client, refresh the server list, and select a server to connect. The first time you connect, Android asks whether to allow a VPN connection. This permission lets the client handle device traffic; whether the prompt appears depends on your system state.

If your server uses VLESS, REALITY, or another configuration that needs specific core features, check the server parameters against the fields available in the client instead of repeatedly changing the server name. Also check mobile routing and per-app settings. If an app isn't connecting as expected, first see whether it's excluded, then review routing rules; there's no need to change every DNS option right away.

Go to v2rayNG downloads
V2Fly core

v2flyNG: for setups that require the V2Fly core

v2flyNG is also for Android, but it uses the V2Fly core. It's a better fit when a server or existing configuration specifically depends on V2Fly features and you need to keep using that core. The similar names of the two Android clients don't mean every configuration can be swapped between them unchanged. Before importing, check the protocol, transport, transport security, and any server-specific extension fields.

If you just need to import a regular subscription on your phone, v2rayNG is usually the more straightforward place to start. Choose v2flyNG based on whether your configuration is actually compatible with V2Fly—not on interface colors or button placement. Check the latest release information and device architecture, especially on older phones. Verify the Android version and package architecture; “universal” doesn't guarantee that an app will run.

Go to v2flyNG downloads

Once you know your device, consider how you plan to use the client

Choose in this order: platform, core, configuration

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG for Android only when your setup specifically requires the V2Fly core. This isn't about ranking servers by client name: first rule out platform mismatches, then check protocol and core support.

Once you've identified your device, visit the download center and choose a build for your operating system and processor architecture. After installation, follow the GUI client setup guide. If you can import a configuration but can't connect, use the troubleshooting guide to check system proxy, routing, DNS, and server parameters one by one.

01

Check the deviceDesktop or Android

02

Check the coreXray or V2Fly

03

Check the configurationSubscriptions, routing, and permissions