Platforms · cores · configuration
V2Ray client comparison
v2rayN and Android client picks
For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG if you need to keep using v2fly-based configurations. Choose by device first, then check protocol and routing requirements.
Compare the three clients
This table compares each client's focus, not its speed. Menus, core options, and features vary by version, and interfaces may differ across platforms.
| Comparison criteria | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| Platform support | Windows、macOS、Linux | Android | Android |
| Core | Typically Xray; support for other cores depends on the client version, configuration type, and included components | Xray | v2fly |
| Maintenance status | Actively maintained; the cross-platform interface differs from the classic Windows WPF interface | Actively maintained; check core and OS compatibility when updating | An alternative that continues to be maintained; check its update cadence and available features |
| Ease of use | Basic imports are straightforward; system proxy, routing, and TUN each require separate setup | A good fit for first-time mobile setup; confirm the system VPN permission after importing | Similar basic workflow to other Android clients; check configuration compatibility first |
| Subscription management | Group servers by subscription and use filters to organize the list | Manage subscription sources and view configurations by group; layout varies by version | Import and update subscriptions; group management depends on the current interface |
| Routing rules UI | Routing presets and rule settings make it easy to inspect rule order | Configure routing for domains, IP addresses, and app-based traffic splitting | Includes routing settings; rules must be supported by the v2fly core |
| TUN and traffic handling | TUN mode is available, subject to platform, permissions, and required components | Routes traffic through Android's system VPN service; this is different from desktop TUN | Routes traffic through Android's system VPN service; system permission is required |
| Key features | Desktop server lists, subscription groups, system proxy, routing management, and logs | Mobile subscription management, QR code imports, app-based traffic splitting, and connection logs | Subscriptions and custom configurations built around the v2fly core |
| Best for | Desktop users managing multiple subscriptions or troubleshooting routing | Everyday Android use and users who need Xray configuration support | Users with existing v2fly configurations or a need to test core compatibility |
| Download | Choose a desktop download | View the recommended Android client | View the alternative Android client |
Why choose each client
v2rayN: Desktop subscriptions and routing
If you mainly use a computer, start with v2rayN. It supports Windows, macOS, and Linux, making it well suited to organizing server lists, keeping subscription sources separate, reviewing logs, and fine-tuning routing in a larger window. When you manage several subscriptions, groups are easier to maintain than repeatedly importing individual share links: you can see where updates come from and quickly identify which group contains a broken configuration.
The Windows download page offers a desktop edition and the classic WPF edition. The desktop edition uses a newer cross-platform interface, while WPF retains the classic layout. They are not separate service providers, and a different interface does not automatically mean a faster connection. New users can start with the desktop edition. If you're comfortable with the WPF workflow, you can keep following guides for the classic interface; there's no need to change how you work just because of the name.
The key concept in v2rayN is that inbound and outbound traffic are configured separately. “Set system proxy automatically” directs apps that honor system proxy settings to a local listening port. Routing rules then determine whether that traffic connects directly, is blocked, or goes through a proxy. TUN mode can handle traffic from more apps, but adds permissions, routing, and DNS to the troubleshooting process. Until the basic connection works, avoid changing the system proxy, TUN, and custom DNS all at once.
Advanced users can use the routing rules interface and logs to troubleshoot, but being able to select a core does not mean every configuration can be switched over unchanged. Configuration formats, protocol fields, and transport support differ. Back up your configuration first, and make sure the target core supports the configuration type you selected. See Advanced Usage for details.
v2rayNG: The go-to choice for everyday Android use
If you're on Android and don't specifically need the v2fly core, start with v2rayNG. It uses the Xray core and supports importing configurations from subscription URLs, share links, and QR codes. Subscriptions are useful for keeping a server list up to date; QR codes are better for sharing a single configuration temporarily. Importing a node does not set up automatic updates.
When connecting for the first time, read and approve the system VPN permission prompt. The VPN service is an Android system interface that lets the client handle traffic; it does not include a remote server. Access still depends on your configuration, remote server availability, routing, and DNS. A connection icon in the status bar only confirms that the traffic-handling interface is active; test an actual website or app as well.
To send selected apps directly, check the app-based traffic-splitting settings. To route traffic by domain or IP address, check the routing rules instead. These settings apply to different targets, so avoid changing both while troubleshooting the same issue. If background connections keep dropping, check Android's battery settings and background restrictions before blaming the protocol or core. Switching clients usually won't fix the system terminating a background process.
For configurations that rely on Xray-specific features, check that the bundled core supports the relevant fields. Similar-looking share links do not guarantee identical parameters. If an import fails, start with the error message and logs. Don't begin by changing the transport, TLS, or other parameters supplied by the configuration provider in bulk.
v2flyNG: An alternative for existing v2fly configurations
The main reason to choose v2flyNG is its core—not the assumption that an alternative will use fewer resources. It uses the v2fly core and suits users with compatible configurations who want to preserve their existing configuration semantics or test core compatibility under specific conditions. If you're installing an Android client for the first time, there's usually no need to install both clients and try them at random.
v2fly and Xray come from related technical ecosystems, but their implementations and support differ. Configurations that depend on specific core features cannot be judged by protocol name alone. A configuration that works in v2rayNG is not guaranteed to work the same way in v2flyNG. Check the protocol, transport, security parameters, and configuration format individually.
When switching from another client, keep your original configuration and test with one known-working, compatible configuration. Confirm that the basic connection, DNS resolution, and routing behave as expected before organizing subscription groups. A full configuration backup may include app-specific settings and may not restore cleanly in another client. For migration, prefer a subscription or single-node share format supported by both clients.
Choose by use case
Platform is the first filter; core compatibility is the second. More features don't mean you need to enable more settings every time.
Core differences and performance
The client provides the interface, configuration management, and system integration; the core handles connections according to the configuration. The main differences between Xray and v2fly are their protocol and configuration capabilities—not a simple, universal speed ranking. Changing the remote server, DNS, or routing rules can have a bigger impact than switching clients.
For a fair connection comparison, keep the device, network, remote configuration, and test destination consistent. A reachable TCP port doesn't mean the protocol handshake succeeded, and one website loading doesn't prove every app is taking the expected route. Download speed tests are also affected by remote server load and the test destination, so they can't establish a permanent ranking of these three clients.
Maintenance status isn't a race to the highest version number. Before upgrading, check system requirements, configuration migration notes, and whether you need the fixes. If your current setup is stable, keep a backup and schedule the update. If the OS, client, and subscription rules all change at once, don't attribute every issue to a single core.
To understand what test results mean, read TCPing, Real Connection Latency, and Download Speed Tests. To troubleshoot how the system proxy and routing interact, see System Proxy and Routing Modes Explained.
Before you install: checklist
- Check your platform. Use v2rayN on Windows, macOS, or Linux. On Android, start with v2rayNG; consider v2flyNG only if you specifically need v2fly.
- Check your configuration source. The client connects to an existing service; it does not provide a ready-to-use remote configuration. Subscription URLs may grant access to your account, so don't share them publicly.
- Check core compatibility. Verify the protocol, transport, and security parameters. A successful import doesn't mean every field is supported.
- Choose the right package. For desktop, select a package for your OS, processor, or distribution. For Android, check the architecture and system requirements. Find all download options on the download page.
- Plan how to roll back. Back up your configuration before upgrading or migrating. For the initial test, use just one configuration; add multiple subscriptions and complex routing after it works.
Keep the choice simple: v2rayN is the top pick for desktop, v2rayNG for Android, and v2flyNG for specific v2fly configuration needs. You don't need all three clients to cover every feature. Start with the one that matches your device and configuration, then add routing and DNS settings as needed.