Use v2rayN on desktop and v2rayNG on Android as the default choice. Confirm your operating system first, then select the matching processor architecture and package format.
Choose by Platform
Clients & Downloads
Switch platforms to see the available downloads. Desktop uses the same client; on Android, choose a primary or alternative app based on core compatibility.
A familiar, stable interface. Choose this edition if you know the classic Windows layout and want to keep your existing workflow.
Both downloads are ZIP archives. Extract the archive before running the installer; don’t launch it from the archive preview.
Windows Requirements & Prerequisites
Check
Requirements & Options
Operating system
We recommend Windows 11 x64 that is still receiving security updates. Check the installer for the minimum requirements of your specific version.
Processor
This page provides an x64 installer. Find your system type under Settings → System → About.
Runtime
Install any required runtime prompted by the installer. If the WPF edition requires the .NET Desktop Runtime, match the required architecture and major version.
Folder & permissions
Use a folder your account can read and write. Standard permissions are usually sufficient for proxy settings; TUN may require additional permissions.
After installation, launch the client and make sure it can save settings before importing a subscription. If you install both the new and classic interfaces, don’t run them simultaneously—they may compete for the same local listening port. To migrate, export your settings first, then check subscription groups and routing rules one by one. Don’t assume the two editions can use each other’s configuration files interchangeably.
If the startup window disappears immediately, check the error message and runtime requirements before switching nodes. If the client opens but connections fail, investigate server settings, the system proxy, and routing instead. These issues call for different troubleshooting steps.
For Intel-based Macs. If you’re unsure which processor your Mac has, check About This Mac.
Open the Apple menu in the top-left corner and choose About This Mac. If it shows “Chip Apple M…”, choose arm64; if it shows “Processor Intel…”, choose x64.
macOS Requirements & Prerequisites
Check
Requirements & Options
System compatibility
Use a macOS version that still receives security updates, and make sure the installer supports it. For older systems, check the app’s startup message first.
Processor
Choose arm64 for Apple Silicon and x64 for Intel. Don’t guess the architecture based on your Mac’s purchase year.
Install location
Open the DMG and follow its instructions to move the app to Applications. Launch it from that folder.
System permissions
System proxy and TUN require different permissions. Respond to the relevant prompt only when you enable that feature.
A DMG is a disk image, not a permanent location for running the app. After copying the app, eject the disk image and launch the client from Applications. This avoids running an outdated copy during updates and makes it easier to identify the app in system permission settings.
If macOS blocks the app on first launch, read the alert and check the reason under System Settings → Privacy & Security. Confirm the app’s source and identity before following the steps provided by macOS. Don’t disable system-wide protections as a routine installation step. If the alert says your macOS version is incompatible, changing permissions won’t help; check compatibility instead.
Before connecting, test browser access with the system proxy. Consider TUN only if an app doesn’t use the system proxy and needs traffic routed another way. Authorization failures, unapplied proxy settings, and server connection failures happen at different stages; use the client logs to identify the cause.
Choose this if you’re unsure of your device’s architecture. It includes components for multiple architectures and is usually larger than a single-architecture build.
On first connection, approve Android’s VPN connection request. After importing a subscription, select a node and start the connection.
Use this if you’re unsure of your device’s architecture. Check protocol and transport compatibility separately.
Choose this alternative only if your configuration is compatible with its core. Don’t run VPN connections from both apps at the same time just to use the same subscription.
Android Requirements & Prerequisites
Check
Requirements & Options
System compatibility
Check the APK installer for the minimum Android version. A device that still receives security updates can make system issues easier to troubleshoot.
App architecture
arm64-v8a is for 64-bit ARM app environments. A 64-bit-capable processor doesn’t necessarily mean the system can install every 64-bit app.
Install permissions
Allow app installs only for the browser or file manager you use to open the APK. You can turn this permission off afterward.
Background connections
Grant VpnService permission for the first connection. If the connection drops when the screen turns off, check your device manufacturer’s background activity and battery restrictions.
After opening the APK in a file manager, check the app name and installation prompt. If an existing app with the same name can’t be updated, the signature may differ or Android may block a downgrade. Don’t uninstall the old app immediately; this may delete its local settings. Back up your subscriptions and settings first, then decide whether you need to migrate.
The two Android clients use different cores, so similar interfaces don’t mean their configurations are interchangeable. Protocol extensions, encryption parameters, and newer transport methods must match the subscription requirements. Once connected, configure per-app proxying and check whether the list is set to “Proxy selected apps” or “Bypass selected apps.” Don’t mistake the opposite rule for a connection problem.
Choose the package format based on your distribution and the architecture based on your device. Both must match; don’t choose by file extension alone.
Linux Requirements & Prerequisites
Check
Requirements & Options
Desktop environment
A desktop session capable of running graphical apps is required. The graphical client installation steps on this page aren’t for command-line-only servers.
Processor
amd64 and x86_64 mean x64; aarch64 means arm64. Check your system information to confirm.
Package system
Choose deb or rpm for your distribution, then use the system package installer to check dependencies.
Permissions & networking
Installing a package may require administrator access. Run the client as a regular user for everyday use; handle the required permissions separately if you enable TUN.
Open the installer with your distribution’s software manager to check dependencies and architecture before installing. If a library version is too old, don’t force the installation by skipping dependency checks. The same rpm or deb extension doesn’t guarantee compatibility with every release of a distribution.
If there’s no tray icon after launch, first check whether your desktop environment supports the relevant status area; its absence doesn’t mean the app isn’t running. System proxy coverage also varies by desktop environment. Confirm that the client is listening locally, then check whether the app uses the system proxy. Command-line tools and standalone network components may need their own proxy settings.
How to Choose an Installer
Choose an installer in this order: operating system → processor architecture → package format. The operating system determines whether the app can run; architecture determines whether the binary fits the processor and system environment; package format determines which installer to use. A mismatch in any of these can cause errors such as “can’t open,” “app not installed,” or missing dependencies.
x64 is commonly used on 64-bit Intel and AMD desktop processors; arm64 is common on Apple Silicon, Android phones, and some Linux devices. amd64 doesn’t mean the app runs only on AMD processors, and x86_64 isn’t a separate architecture. If you’re unsure, check your operating system’s system information instead of guessing from the device’s appearance or purchase year.
All three clients are free and open source. Project V is the starting point for this technology ecosystem; V2Fly and Xray are separate core development branches. GUI clients add subscription management, routing, and proxy settings on top of a core. Similar app names don’t mean the update schedules, protocol support, or configuration formats are identical, so check which features you rely on before migrating.
First Launch & Connection Steps
Install the client and open its main window. On desktop, extract the archive or copy the app first; on Android, install the APK. Don’t change advanced routing settings yet. Confirm that the client starts, saves settings, and reopens correctly after you quit.
Import a subscription or server configuration. Add a subscription URL from the subscription group menu and update it, or import a node using a supported method. Subscription URLs often contain access credentials; store them only on trusted devices.
Select a server and proxy method. On desktop, start by testing app access with the system proxy. On Android, approve the VPN request and start the connection. System proxy, TUN, and per-app proxying affect traffic differently; avoid changing several settings at once during your first test.
Test access and check the logs. Confirm that the target app is actually using the proxy, then check whether the node connected. A running status only means the relevant services have started; it doesn’t guarantee that every app or destination is being routed as expected.
If a page won’t load, first make sure your local network works, then check node settings, system time, and error logs. If a port is in use, check whether another client instance is still running. If authorization fails, review system permissions. If a remote connection times out, check the server port and transport settings. Troubleshoot each layer separately instead of assuming every issue is caused by the installer.
Once the basic connection works, configure routing rules, DNS, or TUN one at a time. Keep the last working configuration so you can identify what changed. For UI walkthroughs, see the Getting Started guide; for field definitions and rule structure, see the Configuration Reference.
Updates & Keeping Your Settings
Before updating, export important settings—especially custom routing rules, DNS settings, subscription groups, and server parameters. You can download nodes again from a subscription, but that may not restore group order, bypass lists, or local overrides. Store backups somewhere only you or authorized users can access.
Before installing a new version, stop the proxy connection and quit the old client. On desktop, make sure the tray process has also exited so it doesn’t lock files or local ports. If Android won’t install over the existing app, check the signature and version restrictions before removing it; uninstalling may delete local data.
After updating, check the selected core, inbound port, system proxy, and routing mode, then test a real connection. If the new version behaves differently, compare it with your saved settings rather than repeatedly importing the subscription and overwriting the current setup. Before rolling back, keep backups of both versions to avoid problems caused by overwriting configurations across versions.
Downloading an installer doesn’t install it, and installing an update doesn’t necessarily quit the old app. If the old interface still appears after an update, check which app folder the launch shortcut points to. If you keep multiple extracted folders, make sure you distinguish the running app from the newly downloaded files.
Download FAQs
Can I connect as soon as the client is installed?
The installer contains only the client—not a server or subscription. After installation, import a subscription URL or server configuration you’re authorized to use, select a server, then configure the system proxy or another traffic-routing method. Follow the Getting Started guide for your first setup.
Which build should I choose: arm64, x64, or universal?
Check the processor architecture shown by your system. Choose arm64 for Apple Silicon and x64 for Intel Macs. This page provides an x64 build for Windows. Linux downloads are split by architecture and package format (deb or rpm). Most Android phones released since 2015 can use arm64, but check which app architectures your device supports. If you’re unsure, choose the universal build.
What should I back up before updating the client?
Back up subscription groups, server configurations, custom routing rules, and DNS settings. Note the current core and proxy mode. Quit the client before installing the update, and keep your backup until you’ve confirmed the connection works. Subscription URLs and exported configurations may contain credentials, so don’t share them publicly.
What if the installer won’t open or installation fails?
First, confirm the installer matches your operating system and processor architecture, then check the specific system error. On Windows, check that the archive is fully extracted, required runtimes are available, and you have permission to access the folder. On macOS, review the block reason under System Settings → Privacy & Security. On Android, check install-source permissions and the existing app’s signature. On Linux, check the package format and dependencies. Don’t leave system security features disabled just to launch the app.
Can v2rayNG and v2flyNG use the same subscription?
The subscription format must be recognized, the node protocol supported, and the transport parameters compatible. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; their protocol and parameter support differs. A successful import doesn’t guarantee that every node will connect. Choose a client based on your subscription provider’s guidance, and don’t run both apps’ VPN connections at the same time.
Installation is complete, but the connection still isn’t working? See Troubleshooting to pinpoint permission, proxy, and server connection issues.