v2rayN: the desktop pick
Top desktop pick
v2rayN brings subscriptions, nodes, system proxy settings, and routing together in one desktop interface. If you manage several subscriptions, save each source under Subscription Group Settings and update groups individually. When fine-tuning routing, it's easier to review rules, logs, and browser results side by side. It's built for regular desktop use, not just importing a connection once in a while.
Windows users can choose between the desktop and classic WPF versions. The desktop version uses the cross-platform Avalonia interface, making it a good fit if you want a similar workflow across desktop operating systems. The WPF version is for Windows users who already know the original interface. Menus and implementation differ, so a screenshot from one version won't necessarily match every platform.
When getting started, import a configuration, select a node, then set up automatic system proxy settings. Once you've confirmed that your browser works, explore TUN or LAN sharing only if your apps require it. System proxy and TUN handle traffic differently; enabling both can make troubleshooting harder.
v2rayNG: for everyday Android use
Top Android pick
Powered by the Xray core, v2rayNG is a good starting point for Android. Everyday use means importing a subscription, updating configurations, selecting a node, and connecting. The first time you connect, Android asks for VPN permission. This lets the client create a local traffic tunnel; it doesn't provide a working node or choose a remote service for you.
On a phone, routing usually means setting rules by destination and choosing which apps use the tunnel. Before changing settings, distinguish between whether an app enters the tunnel and which outbound route it uses once inside. If a rule looks right but an app still isn't routed as expected, check app selection, background restrictions, and other active VPN tools instead of repeatedly replacing the subscription.
If you're moving from desktop to phone, you can reuse a compatible subscription, but don't copy desktop system proxy settings. Android routes connections through its VPN interface, with different menus and permission requirements. After granting permission, test the connection in the foreground, then try a typical task with the screen locked to see whether background restrictions need adjusting.
v2flyNG: an alternative using the v2fly core
Choose it for core compatibility
Choose v2flyNG for core compatibility, not as a different skin for v2rayNG. It uses the v2fly core and suits Android users whose existing configurations are built around that core and who want to preserve that behavior. The similar names don't mean the two clients support all the same protocol extensions, transport options, or custom configuration fields.
Before switching, save your existing configuration and any important routing rules, then check that the target client can parse your subscription correctly. If a configuration depends on an Xray-specific feature, ask the configuration provider how to make it compatible before switching apps. If import succeeds but the connection fails, check the logs to distinguish unsupported fields from an unreachable server or a system permission issue.
If you just need an everyday Android client and don't specifically need v2fly, v2rayNG is the easier place to start, with a more established troubleshooting path. If you keep v2flyNG as an alternative, check its system requirements and current feature set separately; don't assume another client's update schedule applies to it.