v2rayN: Desktop subscriptions and routing
v2rayN brings server lists, subscription sources, and routing settings together in a desktop interface. Windows, macOS, and Linux users can start here without looking for the same installer across operating systems. When downloading, match the operating system, processor architecture, and package format. A shared platform doesn't mean installers are interchangeable.
The Windows download page offers a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the classic Windows experience. New users can start with the desktop edition; those with established workflows can choose WPF based on the tutorials and menus they use. These are not different server protocols, and changing the interface won't fix an incorrect server address, transport setting, or credential.
When you manage many subscriptions, v2rayN's groups make it easier to check where each one came from. Name groups by source or purpose, keep recognizable notes, and filter servers as needed. If an update fails, you can check the affected group instead of repeatedly deleting the entire list. The routing interface also helps you review rule order, but make sure you understand which outbound each rule uses rather than relying on its name.
TUN is an important desktop differentiator, but it shouldn't be enabled by default. For programs such as browsers that support the system proxy, start by testing with the system proxy. Check the permissions and supporting components required for TUN only when a program doesn't use the system proxy and needs broader traffic routing. After enabling it, recheck DNS, local network access, and other network tools to avoid overlapping traffic-routing methods.
Best for: users who need a desktop client, multiple subscriptions, or a clearer way to manage routing should start with v2rayN. For configuration details, see the routing rules guide and the TUN mode guide.
v2rayNG: The everyday choice for Android
v2rayNG lets you import subscriptions, choose a server, and route traffic through Android's VPN interface. It is built primarily around the Xray core. If your server documentation specifies Xray features, check that the bundled core supports the required parameters—don't assume compatibility just because a share link imports successfully. A successful import only means the format was recognized; it doesn't confirm that the handshake or routing works.
Beginners can start with a simple workflow: install the package for your device architecture, add a subscription URL, update it, select a server, then start the connection and grant system permission. A subscription URL and a server address serve different purposes; don't enter a management page URL as a subscription. For formats and steps, see the quick start guide.
Android's VPN-based traffic routing works differently from a desktop system proxy. Even when the client says it's running, per-app settings, bypass rules, or another VPN service may prevent an app's traffic from going through the proxy. If one app can't connect, first check whether it's excluded, then review routing and DNS; switching clients shouldn't be your first move. Android generally can't route traffic through multiple VPN-based services at once.
On mobile, pay attention to background behavior too. Battery management may restrict the client when the screen is locked, and switching between Wi-Fi and mobile data may require reconnecting. First check whether the issue occurs only after locking the screen or changing networks, then adjust background permissions in system settings. Frequent disconnects don't necessarily indicate protocol incompatibility; the process may be restricted or the network may have changed.
Best for: Android users without a specific V2Fly compatibility requirement should start with v2rayNG. The download page offers arm64 and universal packages. If you're unsure of your device's architecture, check its specifications rather than guessing from its appearance or memory.
v2flyNG: An alternative for V2Fly configuration compatibility
The main reason to choose v2flyNG is its V2Fly-core approach—not simply that it's another Android client. V2Fly and Xray share technical roots in the Project V ecosystem, but their feature development isn't identical. The same protocol name in both doesn't mean every transport, security option, and extension parameter works across cores.
If your existing configuration specifically targets V2Fly and you need to preserve its parameter behavior on Android, consider v2flyNG. Check the transport, TLS settings, domain parameters, DNS, and routing fields one by one. Don't migrate a configuration that relies on Xray-specific extensions just because the client interfaces look similar; fields in a share link may also be ignored or changed during conversion.
Check maintenance and core updates separately. Before choosing, read the latest release notes and confirm that the bundled core supports your requirements. A client launching successfully doesn't prove that its features are still suitable. If you only need to import common subscriptions on Android and have no V2Fly-specific constraints, v2rayNG is an easier starting point for following this site's setup guides.
Best for: treat v2flyNG as an alternative with a clear core-compatibility reason, not a random replacement when a connection fails. To isolate differences, keep the same server, network, and routing conditions, and change one variable at a time. This helps distinguish core compatibility issues from client settings.
Choose by use case
Check your configuration before switching clients
First identify where the problem occurs. An empty subscription update points to the URL, format, or retrieval process. If servers appear but connections fail, check server parameters and core compatibility. If the connection is established but some apps can't connect, look at traffic routing, routing rules, or DNS. Each issue calls for different troubleshooting steps, and switching clients may not narrow it down.
- Keep your existing configuration. Record your subscription sources and local rules, and treat exported files as sensitive. Subscription URLs may contain access credentials; don't share them in public screenshots, posts, or notes.
- Check server parameters. Compare the protocol, transport, TLS, server name, and other required fields. Comparing server display names alone isn't useful; entries with the same name may use different parameters.
- Start with the basic mode. Pause extra rules and other traffic-routing tools, then test the new client with minimal settings before restoring split routing and DNS options. Make sure the old client isn't still occupying a port or VPN interface.
- Test three separate outcomes. Check whether the subscription updates, a connection is established, and the target app can access the network. A single status change in the client interface isn't a complete test and doesn't prove that all apps are routed through it.
Choose by platform: v2rayN for desktop, v2rayNG for Android, and v2flyNG only when you need V2Fly compatibility. Once you've chosen, visit the download center to select an operating system and package format. For first-time setup, follow the quick start guide to import a configuration, choose a mode, and test the connection.