CLIENT SELECTION / CLIENT GUIDE
v2rayN, v2rayNG
and v2flyNG compared
Choose your device platform first, then check core and configuration requirements.
For desktop use on Mac, Windows, or Linux, start with v2rayN. For everyday Android use, start with v2rayNG. Consider v2flyNG if you specifically need the V2Fly core for an existing configuration. The key differences are platform support, configuration options, and how each client handles traffic—not just the name. Don't assume configurations can be moved over unchanged.
COMPARISON / WHAT EACH CLIENT CAN DO
Platforms, cores, and configuration features
This table compares features available in commonly used GUIs. Menus may change as clients are updated, and core support for a protocol does not guarantee that the GUI provides a way to configure it. Scroll horizontally on narrow screens to see the full table.
| Feature | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| Platform support | Windows, macOS, and Linux desktop. | Android。 | Android。 |
| Core options | Can use cores such as Xray and V2Fly; available options depend on the build and configuration type. | Built around the Xray core. Check the bundled core and available GUI options for protocol support. | Uses the V2Fly core. Check protocol and transport compatibility against V2Fly's configuration capabilities. |
| Maintenance | Actively maintained. The desktop and classic WPF editions may differ in interface and features. | Actively maintained. Check both core capabilities and Android compatibility when updating. | Community-maintained. Review the latest release notes and device compatibility before choosing it. |
| Getting started | Straightforward for basic use; system proxy, routing, and TUN are separate concepts to learn. | Easy to get started. After importing a subscription, focus on VPN permission and background operation. | The basics are simple, but check whether your existing configuration is compatible with V2Fly. |
| Subscription groups | Supports subscription groups, making it easy to organize multiple sources on desktop. | Supports subscription management, with options to view and update configurations by source. | Supports subscription import and updates. Grouping options and management details depend on the current interface. |
| Routing rules UI | Includes a routing editor for managing match conditions, rule order, and outbound settings. | Includes routing settings for domains, IP addresses, and app-related options. | Includes routing settings; check the current interface for fine-grained editing options. |
| TUN and traffic handling | Provides a TUN mode option, subject to companion components, platform support, and permissions. System proxy is also available. | Uses Android's VPN service to create a virtual network interface and handle traffic. The setup differs from desktop TUN. | Handles traffic through Android's VPN service. Requires system permission and may be affected by background restrictions. |
| Best for | Mac users, desktop users managing multiple subscriptions, and anyone who needs detailed routing. | Android newcomers, everyday mobile use, and users who route traffic by app. | Users with existing V2Fly configurations who want to keep using that core on Android. |
DESKTOP / DESKTOP CLIENT
v2rayN: Desktop subscriptions and routing
v2rayN brings subscriptions, server selection, system proxy controls, and routing rules together in one desktop workflow. On a Mac, choose the installer for Apple silicon or Intel first, then import and update your subscription. That's usually easier for troubleshooting than editing config.json right away. Once servers appear in the list, select one to connect; a successful import doesn't mean the connection is working.
Add configuration complexity as you go
Start with the system proxy so apps that respect system proxy settings can use the local proxy port. Once the connection works, organize subscription groups and edit domain, IP, and outbound rules as needed. Rule order matters: a broad rule near the top may match requests first and prevent more specific rules below it from taking effect. A GUI reduces typing, but you still need to understand what each rule covers.
TUN is for a different kind of traffic handling: use it when apps don't respect system proxy settings or you need to capture more network traffic. It isn't another name for the system proxy toggle. Before enabling it, check the required components, permissions, and DNS behavior. When troubleshooting, change one mode at a time—don't adjust TUN, the system proxy, and routing all at once.
Choose the operating system first, then the processor
Windows offers two options: the desktop edition with a cross-platform interface and the classic WPF edition with its familiar desktop workflow. On macOS, choose between Apple silicon and Intel; on Linux, check both the processor architecture and package format. Similar interface names don't mean permissions work the same way across operating systems. Desktop experience can help with the concepts, but follow the instructions for your platform when installing.
macOS download options → · Windows download options → · Linux download options →
ANDROID / EVERYDAY USE
v2rayNG: Android subscriptions and VPN traffic handling
v2rayNG is designed for Android: add a subscription, refresh the configuration list, select a server, then connect and grant the system VPN permission. Built around the Xray core, it suits users who want this core and need everyday subscription management on their phone. Whether a particular protocol imports successfully depends on the fields in the share link and the client's current support. A protocol name alone doesn't guarantee every combination will work.
System permissions and background restrictions matter
Android's VPN service routes traffic through the client; it doesn't change the phone's Wi-Fi proxy field to a desktop-style local port. A VPN icon in the status bar only confirms that the VPN service has started. To reach a destination, the server configuration, routing, and DNS must also be correct. If another app on the device also needs the VPN service, check whether it's already using that system capability.
Some devices restrict background processes when the screen is off. If a connection works at first and then drops, check battery management, background app limits, and network switching before changing the client configuration. For per-app routing, decide which apps to include or exclude. A working browser connection doesn't mean every app uses the same route.
For everyday mobile use, keep the configuration simple. Start with a routing setup you can verify, then add exceptions as needed. A complete desktop core configuration may not work on a phone: listening ports, file paths, DNS, and inbound settings can assume a desktop environment. Reuse a subscription or compatible server share link when possible.
V2FLY / CORE COMPATIBILITY
v2flyNG: Keep your V2Fly configuration on Android
The main reason to choose v2flyNG is its V2Fly core—not simply that it's another Android client. If your service and configuration documentation are built around V2Fly, staying with the same core can reduce the need to repeatedly check how fields and features are implemented. Without that specific need, Android users can start with v2rayNG; there's no need to maintain two sets of daily configurations just to compare client names.
Check transport and security settings, not just the protocol
Project V provides useful ecosystem context for these tools. V2Fly and Xray are related core projects that have evolved separately. They share some configuration concepts, but their fields and extended features don't always match. A link may be recognized yet fail to connect because its transport parameters or security settings aren't supported. If an import fails, check the configuration requirements one by one instead of repeatedly trying the same link through different import options.
v2flyNG also requires Android VPN permission and attention to background operation and routing. It's not a lightweight edition designed specifically for older phones, and its name doesn't guarantee lower battery use. Before choosing it, check the package architecture, system requirements, and compatibility with your configuration. Keep a subscription source you can restore from rather than relying on a single, hard-to-trace manual configuration.
SCENARIOS / CHOOSE BY USE CASE
First-time setup, advanced use, and multiple devices
MIGRATION / MOVE YOUR CONFIGURATION
What to check before switching clients
After choosing a client, migration isn't about copying every file. Separate server details from device-specific settings. Subscriptions and share links typically distribute server configurations; system proxy, inbound listeners, routing exceptions, per-app routing, and background permissions belong to the device. Handle these separately to make problems easier to pinpoint after the move.
- Keep your subscription source. Check that the link is complete and still valid. Subscriptions may contain access credentials, so don't share them in public screenshots, comments, or shared documents.
- Check the protocol and core. Beyond protocol names such as VMess and VLESS, confirm the transport and security settings. The GUI must also let you configure the fields you need.
- Write down your routing intent. Note which domains or apps should connect directly and which should use the proxy, then set them up again in the new client. Don't expect fields to map one-to-one between different interfaces.
- Establish a basic connection first. Enable only one traffic-handling method and test it. Then restore DNS settings and routing exceptions one at a time. This helps distinguish import, permission, and routing issues.
- Check system settings when you finish. On desktop, confirm the system proxy has been restored as expected. On Android, confirm the VPN connection has stopped so old settings don't interfere with your next test.
For step-by-step instructions, read the subscription import and connection guide. For installation, system proxy, and TUN permissions across platforms, see the complete platform guides. To narrow down configuration issues, check your inputs, traffic-handling mode, and rule order rather than blaming every failed connection on the client.
DECISION / WHICH CLIENT TO CHOOSE
Choose v2rayN for desktop and start with v2rayNG on Android
Use platform as your first filter, then check core compatibility. For desktop subscription groups, a routing rules UI, and system proxy controls, choose v2rayN. For everyday Android use, start with v2rayNG; choose v2flyNG if you specifically need the V2Fly core.
All three are graphical clients in the open-source ecosystem. The client manages configuration and starts connections; the core handles protocols. Check subscription sources, server availability, and device permissions separately. The download page lists options by operating system, processor, and package format, so there's no need to guess installer filenames here.