Desktop / Subscriptions and Routing
v2rayN: The First Choice for Desktop
For Windows, macOS, or Linux, start with v2rayN. Its desktop window brings together server lists, subscription groups, logs, and settings, making configuration easier to review with a keyboard and mouse. The benefit isn't simply having more options: when something goes wrong, you can check whether the subscription updated, the right server is selected, the system proxy is set, and routing sends the connection through the intended outbound.
Establish a basic connection before routing more traffic
When you first open the client, save your subscription URL under “Subscription groups,” update it, and select a server. Then set the system proxy to “Auto-configure system proxy.” Once you've confirmed that your browser connects, explore routing rules. The system proxy determines how apps send traffic to the client; routing determines what happens to traffic once it arrives. Confusing the two can lead to a browser that works while other apps remain unaffected.
Consider TUN mode only if you need to route traffic from apps that don't use the system proxy. TUN involves a virtual network interface, permissions, and DNS behavior, and isn't required for a basic connection. Before enabling it, note your existing proxy and routing settings. If something goes wrong, turn off TUN and return to the system proxy setup you've already verified to narrow down the cause.
Choose between the Desktop and classic WPF editions
The Windows download page offers the Desktop edition and the classic WPF edition. Desktop uses a newer cross-platform interface; WPF retains the classic Windows interface. If you're used to one, choose the interface you're more comfortable with—there's no need to switch just for a new look. On macOS and Linux, choose the installer for your platform; Windows interface instructions and permission steps may not apply.
If your subscription uses less common transport or security settings, check which core is actually in use. Being able to parse a share link doesn't guarantee that the bundled core supports every field in it. For a complete walkthrough, see the v2rayN setup guide.
Android / Everyday Connections
v2rayNG: The First Choice for Everyday Android Use
On Android, start with v2rayNG. It uses the Xray core and works well for users with Xray-compatible subscriptions or share links. Importing a configuration, selecting a server, and starting the service are all straightforward, making it easy to check your connection on your phone. For regular use, adjust subscription updates, routing, and per-app proxy settings as needed. Avoid changing every option before making your first connection.
Grant Android VPN permission first
The VPN connection request shown at startup comes from Android. Once you grant permission, the app uses Android's VPN service to route traffic within the scope of your settings. This is different from a desktop browser using the system proxy, so you won't find a mobile equivalent of Windows' “Auto-configure system proxy” in the system tray. Seeing the VPN indicator only confirms that the service is running; test the apps you want to use as well.
Android's background restrictions can also affect reliability. If the connection works in the foreground but drops when the screen is locked, check the battery and background activity restrictions for v2rayNG before blaming the server. For per-app proxying, check whether the list uses allowlist or blocklist mode. Choosing the wrong mode can route only a few apps or exclude apps that should be covered.
Core support doesn't guarantee compatibility
Even within the Xray ecosystem, an older release may lack features required by a newer configuration. If an import fails or startup reports an error, check the logs, app version, and configuration requirements before switching clients. Installing another app won't fix an expired subscription, an incorrect address, or invalid server settings.
Android / V2Fly Configuration Compatibility
v2flyNG: Choose It Only When You Need V2Fly
v2flyNG is an Android alternative for the V2Fly core. Choose it if your configuration specifically targets V2Fly or you need to reproduce behavior with that core—not because you think it's a lightweight or older version of v2rayNG. The names are similar, but that doesn't make their configuration syntax and feature support interchangeable.
Check the protocol and security layers first. Names such as VMess and VLESS are only part of a configuration; the transport, TLS settings, and other security parameters also determine compatibility. In particular, importing a link doesn't prove that the V2Fly core can run configurations that rely on Xray-specific features. For requirements such as REALITY or XTLS Vision, check support in the relevant core; changing the client’s displayed name won't help.
Check maintenance status separately, too. Don't assume v2flyNG updates as often as v2rayNG. Before installing, confirm that the current release supports your Android version, then check startup logs and test connectivity after importing your configuration. If you don't specifically need V2Fly compatibility, v2rayNG remains the better starting point for everyday Android use and avoids unnecessary switching between core families.
Narrow down your options by use case
Four Things to Check Before Installing
- Check the platform and architecture. On Windows, choose between Desktop and WPF. On macOS, check whether you have Apple Silicon or Intel. On Linux, choose the right deb or rpm package and processor architecture. On Android, check whether the arm64 or universal build supports your device.
- Check which core the configuration targets. Note its protocol, transport, and security requirements. If it depends on core-specific features, confirm support before installing multiple apps to try your luck.
- Decide which apps need traffic routing. On desktop, test the system proxy first and use TUN only if needed. On Android, grant VPN permission and check the per-app proxy scope. Don't run multiple services that route the same traffic.
- Test a basic connection before migrating. Keep any notes you need from the old configuration, but don't share subscription URLs or authentication details. Test one configuration before organizing groups and routing. See how to import a subscription and how to verify your connection.
Clients don't include ready-to-use server configurations. Choosing a client answers which app to use for managing connections; it doesn't provide a working subscription, correct settings, or a reliable network. App names alone don't determine speed. Compare clients using the same configuration and similar network conditions, and use logs to investigate differences.