Best for Desktop
Top PickAvailable for Windows, macOS, and Linux. Subscription groups, routing settings, and system proxy controls are all in the GUI, making it a good fit for desktop users who regularly review their configs.
Compare v2rayN, v2rayNG, and v2flyNG. Start with your device, then check core and configuration requirements. Similar names don't mean their features or configs are interchangeable.
“Ease of use” refers to how much you need to understand to import a config, select it, and route traffic—not your technical skill. Menus and features may change between releases; check the installed app for current options. Scroll horizontally on narrow screens to see the full table.
| Comparison | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| Platforms | Windows、macOS、Linux | Android | Android |
| Core | Typically Xray; supported cores and config types depend on the current build | Xray | V2Fly, using the v2fly core |
| Maintenance | Actively maintained; distinguish the desktop and WPF editions | Actively maintained; the app and core evolve with updates | Community-maintained; check the update cadence separately |
| Ease of Use | Basic imports are straightforward; understand system proxy, TUN, and routing as separate settings | A short setup for basic use; check VPN permission and background-running requirements | Basic imports are straightforward; check V2Fly config compatibility separately |
| Subscription Groups | Manage subscription groups to organize sources and update settings | Manage subscription groups and updates; handy for switching configs on mobile | Manage subscription configs; check the current app for group features and supported import formats |
| Routing UI | Manage routing rules in the GUI, making it easier to organize and troubleshoot rule order on desktop | Routing settings are available; presets and custom options depend on the current app version | Routing settings are available; check advanced fields against V2Fly config semantics |
| TUN and Traffic Routing | Includes a TUN option; availability depends on platform, selected core, drivers, and permissions | Routes traffic through Android VpnService; this is not the same as a desktop TUN toggle | Routes traffic through Android VpnService, subject to Android VPN and background-use policies |
| Best For | Everyday desktop use, subscription management, and routing troubleshooting | Android beginners and users with Xray config requirements | Users with existing V2Fly configs who need consistent core behavior |
Available for Windows, macOS, and Linux. Subscription groups, routing settings, and system proxy controls are all in the GUI, making it a good fit for desktop users who regularly review their configs.
v2rayN's main strength is its desktop management interface. With multiple subscription sources, you can organize configs into groups and review update results separately. For traffic routing, it's easier to inspect domain conditions, outbound tags, and rule order. It works well as a desktop configuration hub without requiring you to write a complete JSON config by hand. For troubleshooting, check the logs to confirm which core is running and which config it loaded.
The Windows download page offers two options: the desktop edition and the classic WPF edition. The desktop edition uses a cross-platform interface; WPF retains the classic Windows UI. Choose based on your workflow and system compatibility—not because the interfaces imply different network protocols. For macOS, choose between Apple Silicon and Intel. On Linux, select deb or rpm for your distribution, then check the processor architecture.
Keep “system proxy” and “TUN” separate. System proxy settings mainly affect apps that honor them. TUN can route more traffic, but also requires the right permissions, routing, and DNS setup. When starting out, verify the standard proxy path before trying TUN. If an app isn't being routed, first check how traffic is being intercepted rather than immediately changing node settings.
For advanced users, v2rayN's routing interface makes rules easier to manage, but the core still needs to receive them in an executable format. Custom configs may override some GUI settings, so check the generated or loaded config and logs to confirm the actual behavior. For complex rules, use the JSON configuration reference to review how inbounds, outbounds, and routing work together.
Built on the Xray core. Import subscriptions, select a config, adjust routing, and choose which apps to route on your phone.
The basic v2rayNG workflow is simple: import a subscription or config, refresh the list, select a config, and connect. The first time you enable VPN mode, Android asks for system permission. This permission creates a local channel for routing device traffic; it doesn't replace the server address, authentication details, or transport settings. The config itself still needs to be correct.
For users with existing Xray configs, v2rayNG is usually the more straightforward Android option. But using Xray doesn't guarantee that every field can be edited in the app. Some advanced settings require importing a custom config, and some features depend on the bundled core. If fields disappear after converting a subscription, check the imported content before repeatedly switching routing modes.
Traffic routing on phones also depends on the Android environment. Another app using the system VPN slot may conflict with the connection. Battery-saving policies can limit background activity, and per-app routing may leave some apps outside the proxy. If some apps stop working after you connect, check app selection, DNS, and routing conditions separately. Android showing “VPN connected” only means the local tunnel is up; it doesn't confirm that requests are reaching their destination.
v2rayNG suits users who want familiar subscription and routing controls without a desktop-style bulk editing interface. You can use the same subscription source on desktop and mobile, but group names, UI options, and local ports don't have to match. Follow the setup guide to verify each step, and avoid changing several advanced settings at once.
For Android users with existing V2Fly configs and a specific compatibility requirement. It's an alternative based on a different core—not a general-purpose replacement for v2rayNG.
Choose v2flyNG for its core, not its name. Project V was a key starting point for this open-source proxy ecosystem. V2Fly continues community development of a related core, while Xray follows a separate development path. They share some protocols and configuration concepts, but their extensions, supported fields, and behavior don't always match.
v2flyNG has a clear use case if you already have a tested V2Fly config and want to keep the same core family on Android. Before migrating, check the protocol, transport, DNS fields, and routing rules. Seeing “routing settings” in both apps doesn't mean every advanced option can be copied over. For configs written for Xray-specific features, first confirm that V2Fly supports them before importing.
Consider maintenance separately from feature compatibility. Apps and cores follow their own release schedules, so a similar-looking interface doesn't mean security fixes or protocol support are in sync. This guide treats v2flyNG as a community-maintained alternative, not a recommendation based on a particular release date or version number. Before relying on it long term, confirm that the current build installs, starts, and loads your config on your device.
If you don't need V2Fly, start with v2rayNG on Android. Don't run both clients at once to “stack” connections, and don't switch clients to fix an expired subscription. Changing clients only changes the local implementation; it can't repair an invalid server config.
The choice can be simple: start with v2rayN on desktop and v2rayNG on Android. Use v2flyNG only when you specifically need V2Fly core compatibility. All three handle local configuration and traffic; subscription validity, server settings, and network conditions still need to be checked separately.
Go to the clients and downloads page and choose the option for your system and processor architecture. If you've installed a client but can't connect, troubleshoot by stage in the FAQ. To identify protocol and core names, see the glossary.