v2rayN
RecommendedBoth downloads are x64 installers. Check the installer and current release notes for runtime requirements. If a component is missing, note its name; don't replace files in the application folder at random.
v2rayN for desktop / v2rayNG and v2flyNG for Android
Choose an operating system, then check the processor and package format. Installers provide the GUI client; subscriptions, servers, and routing must be configured for your setup.
v2rayN · x64 · desktop and classic WPF versions
Both downloads are x64 installers. Check the installer and current release notes for runtime requirements. If a component is missing, note its name; don't replace files in the application folder at random.
| What to check | Options and requirements | Where to check |
|---|---|---|
| Processor architecture | Both packages on this page are x64 | Settings → System → About, under System type |
| OS compatibility | Use a supported Windows environment that meets the current release requirements | Note your Windows version and any compatibility warnings from the installer |
| Installation and folders | Extract the archive fully; ensure the configuration location is writable | Confirm extraction is complete, and check disk space and folder permissions |
| Proxy permissions | System proxy and TUN have different permission requirements | Test the standard proxy first; check required permissions before enabling TUN |
After the first launch, import a configuration and test a server before enabling the system proxy. System proxy settings don't automatically apply to every program; some apps use their own network settings. If a browser works but another app doesn't, check that app's proxy options instead of repeatedly downloading a different installer. Before using TUN, read the relevant configuration guidance and avoid having it take over traffic alongside an existing virtual adapter or network tool.
v2rayN · choose a DMG for your processor
Open the DMG and follow the window prompts to move the app to Applications. If macOS shows a security warning on first launch, confirm the download source and follow the system's steps to allow the app to open. Disabling system security entirely is not recommended.
| What to check | Options and requirements | Where to check |
|---|---|---|
| Processor type | Choose arm64 for Apple Silicon or x64 for Intel | Apple menu → About This Mac |
| Operating system version | Must meet the compatibility requirements for the current release | About This Mac and app launch alerts |
| Install location | A DMG is a disk image; copy the app as prompted | Applications folder in Finder |
| Network permissions | Grant the permissions required by your chosen proxy mode | Client prompts and system network settings |
Running the app directly from a disk image may behave differently from running a copy in Applications, including in its paths and permissions. After copying the app, quit the process running from the disk image, then open it from Applications. Import a subscription and test the connection first. If you enable the system proxy, check that the active network service's proxy settings changed as expected. When finished, restore the proxy settings in the client before quitting so you can distinguish configuration issues from network problems.
Start with v2rayNG; choose v2flyNG if your existing configuration requires it
For configurations using REALITY or similar features, make sure the server parameters match the core bundled with the client. Sharing a protocol name doesn't mean every transport and security parameter can be omitted.
Choose based on whether the core supports your existing configuration, not on the app name. For configurations that require Xray-specific features, check support in v2rayNG.
| What to check | Options and requirements | What to do |
|---|---|---|
| App architecture | Prefer arm64; choose universal if you're unsure | Check the app architectures supported by your device |
| OS compatibility | Must meet the selected APK's system requirements | Check compatibility notices in the installer |
| Installation permission | Allow your current download app to install apps | Grant permission only to the relevant source, as prompted by Android |
| Connection permission | Approve the VPN connection request the first time you connect | Close other apps using a similar connection, then try again |
When the download finishes, open the APK in your system file manager, check the app name, and install it. If an update fails, note the full error message: a signature mismatch, version downgrade, low storage, and architecture mismatch are different issues. Don't uninstall just to bypass an error; uninstalling may also delete your configuration. If the connection keeps dropping in the background, check battery optimization and background activity limits. These affect sustained operation and are separate from the server's connection quality.
v2rayN · choose a package for your distribution
amd64 and x86_64 usually correspond to x64 on this page; aarch64 usually corresponds to arm64. Check architecture and package format separately; a file extension alone doesn't tell you whether a package is suitable.
| What to check | Options and requirements | Where to check |
|---|---|---|
| Package management | Choose deb or rpm based on your distribution | System software manager and distribution documentation |
| Processor architecture | Choose x64 or arm64 separately | Hardware or processor information in system settings |
| Runtime environment | A compatible desktop environment and runtime dependencies are required | Dependency resolution and app launch messages from the installer |
| Proxy coverage | Proxy behavior can vary between desktop environments and apps | System network settings and the target app's settings |
After installation, launch the app from your applications menu and import your configuration. System proxy support varies across Linux desktop environments; browsers, terminals, and standalone apps may also use different proxy settings. First confirm the server connects in the client, then check that the app you're testing uses the right proxy. Before using TUN, check permissions and routing changes. Don't run the entire graphical session as an administrator as a substitute for configuring permissions individually.
Verify installation, configuration, and proxy traffic separately. Checking each in turn makes troubleshooting more direct.
If you already use a client, export your subscriptions and servers first, and note custom routes, DNS, local listening ports, and proxy mode. Backups may contain credentials, so keep them somewhere secure and local. When switching apps, use a share link or configuration format supported by both rather than copying the entire application folder.
Installing the app doesn't mean you're ready to connect. Import a subscription or configuration you obtained legitimately and are authorized to use, update it in the client, and select an active server. If the update fails, read the error and check that the URL is complete and current and that the network can reach it. Don't assume a parsing error is caused by the client version.
Run a connection test in the client first, then enable the proxy mode you need and check the result and exit IP in the target app. An open TCP port only confirms part of the route; it doesn't replace testing a complete request. For initial troubleshooting, temporarily simplify custom rules, change one thing at a time, and keep logs from before and after each change.
v2rayN, v2rayNG, and v2flyNG are GUI clients for managing configurations, controlling connections, and viewing status. V2Fly and Xray belong to different core families in the Project V ecosystem. Support for a protocol, transport, or security feature depends on the core bundled with the client and its version. Similar app names don't mean configuration fields are interchangeable. Before choosing a client, check what your existing servers require rather than judging by download size alone.
This page organizes downloads by operating system. Release tags on the cards and download targets are maintained in the release manifest. A release tag and a filename may come from different release fields, so don't rely on the version number alone to decide whether an update will install over an existing app. Check the target filename, the app details shown by the installer, and the result on your device separately. If the installer reports a downgrade or incompatibility, keep your existing app and configuration, identify the cause, and then decide what to do.
Updating the client and updating a subscription are separate tasks. A client update changes the program and its integrated capabilities; a subscription update refreshes the server list and related parameters. Updating the client won't fix an expired subscription or renew access to a server. Likewise, a successful subscription update doesn't confirm that all server transport parameters and local proxy settings are correct. After each update, verify the full workflow: launch, import, connection test, proxy check, and normal shutdown.
Use the installation location and process recommended by your operating system. Avoid read-only folders, temporary directories, and download caches that may be cleared automatically. Standard system proxy and TUN have different permission requirements; don't run the entire client with elevated privileges just to troubleshoot. Test the basic connection with the minimum permissions needed, then grant additional access for your chosen mode. This helps keep permission issues separate from configuration problems.
When comparing two clients for the first time, quit one before launching the other. Multiple apps changing system proxy settings, listening on the same port, or taking over a virtual network interface can make test results unreliable. Restore the proxy settings in the client before quitting. If ordinary web pages stop loading afterward, check whether the system is still pointing to a local port that is no longer listening before troubleshooting the network; don't reinstall immediately.
Client installers do not include working servers or a subscription. After installation, import a subscription URL, share link, or configuration file that you obtained legitimately and are authorized to use. Then update the subscription, select an active server, and test the connection. Never share subscription URLs or configuration credentials publicly.
The desktop version has a newer cross-platform interface, suited to users who want a similar experience across desktop operating systems. The classic WPF version uses native Windows UI technology and is the established, stable edition. Both require you to import a configuration. Export any settings you need before switching, and run only one client during initial testing.
Most mainstream phones released after 2015 are likely to support arm64, but check which app architectures your device actually supports. The universal version includes multiple architectures and is worth trying if you're unsure or the device-specific package won't install. It won't make the same server connection faster. If installation still fails, check OS compatibility, available storage, and the signature of any existing app.
A routine in-place update of the same app usually preserves data, but it is not a substitute for a backup. Before updating, use the client's export feature to save subscriptions, servers, and custom routes, and note your local ports, proxy mode, and DNS settings. Do not assume settings will migrate automatically when switching clients or interface versions, or after uninstalling and reinstalling.
First confirm the subscription updated successfully and that an active server is selected. Then check the system clock, server parameters, and client logs. On desktop, make sure system proxy or TUN mode is enabled as needed. On mobile, confirm VPN permission is granted and no other app is using the connection. Change one setting at a time, then verify with a connection test and your exit IP.
See more frequently asked questions → Compare the three clients by use case →