v2rayN desktop client · v2rayNG and v2flyNG for Android
Choose your OS first, then check the architecture. Use v2rayN on desktop and start with v2rayNG on Android. The installer sets up the app; subscriptions and proxy settings come next.
A newer cross-platform UI. For your first install, start with Desktop for a more consistent interface across desktop systems. This option is an x64 installer archive: extract it first, then run the installer inside.
The classic, stable edition with a Windows WPF interface. Keep using this branch if you’re familiar with its server list, tray menu, and settings layout. It’s still v2rayN, not a separate proxy app; the main differences are the UI technology and workflow.
Both options are v2rayN. Install one edition at a time, and back up subscription groups and routing settings before switching interfaces.
Windows installation and system requirements
Windows installation checklist
Check
What to choose and prepare
OS and architecture
Use Windows 10 or 11 while it still receives updates; both packages on this page are x64. Check your system type under Settings → System → About.
Package format
ZIP archive. Extract it to a writable local folder before running the installer; don’t launch it from the archive preview.
Runtime
Whether you need an additional .NET runtime depends on the current release and its startup prompt. If required, install the matching runtime architecture and type.
Proxy permissions
Run with standard permissions for a regular system proxy. TUN may require administrator access and support for a virtual network interface.
A filename containing Setup may still be inside a ZIP archive. Extract the archive first, keeping the installer and its accompanying files together, then follow the prompts. Use a short path and avoid read-only folders, busy sync folders, or locations that require extra permissions. If startup fails, read the error first: runtime, permission, and configuration issues are different problems. Identify the cause before reinstalling.
Open v2rayN and add a group under subscription group settings. Enter your subscription URL and save it, then choose Update subscription to fetch nodes. Select a server, make sure the client is running, and choose Set system proxy to auto configure in the system proxy menu. The system proxy controls how apps reach the client; routing controls where traffic goes. They’re separate settings.
When migrating from an older version, quit the old client first so both apps don’t compete for the same local ports. Subscription URLs can usually be refreshed, but keep a separate copy of manual nodes, custom routes, and DNS settings. Get a regular system proxy connection working before trying TUN. Adding a virtual network adapter before the basic connection works only makes troubleshooting harder.
Choose this option for a Mac with an Apple silicon chip. arm64 refers to the chip architecture, not the macOS version. Open the Apple menu and choose About This Mac; select this package if the Chip field shows an Apple M-series chip.
Choose the x64 package for a Mac with an Intel processor. If About This Mac lists an Intel processor, select this option. Don’t guess based on the Mac’s appearance or purchase year—check the chip name to avoid a second download.
macOS installation and system requirements
macOS installation checklist
Check
What to choose and prepare
Processor
Choose arm64 for Apple silicon or x64 for Intel. Check About This Mac to confirm.
System compatibility
Use a macOS version that still receives updates. Check the current app release requirements and installer prompts for the minimum supported version.
Package format
DMG disk image. Open it and copy the app to Applications, then launch it from the local Applications folder.
Network permissions
Follow specific system prompts when changing the system proxy or enabling TUN. Launching the app normally doesn’t mean it has taken over network traffic.
After downloading the DMG, wait for the browser to finish saving it, then open the disk image. Copy v2rayN to Applications; don’t keep running it from the mounted image. Once the copy is complete and the local app launches, you can eject the image. If macOS blocks the app, read the warning, then check the related entry under System Settings → Privacy & Security. Don’t disable security checks globally to work around a specific warning.
On first launch, import your subscription and update the node list, then select a server. After enabling the system proxy, check the proxy settings for your active network service under System Settings → Network to confirm the client configured the entry point. Check again after switching between Wi-Fi, Ethernet, or a work network. A browser connection doesn’t mean every command-line app uses the system proxy.
Before using TUN, save a working baseline configuration, then grant permissions as prompted by the app. If the connection behaves unexpectedly, turn off the newly enabled mode and return to the baseline instead of changing nodes, DNS, and routing all at once. Disable the proxy before quitting the client—especially before updating or switching clients—so the system doesn’t point to a local port that’s no longer listening.
Most phones released since 2015 can start with arm64. This package includes only the matching architecture and is suitable for devices confirmed to support 64-bit apps. Check the device’s actual runtime environment: a 64-bit processor doesn’t always mean the system supports 64-bit apps.
Choose the universal build if you’re unsure which app architecture your device supports. It includes components for multiple architectures and is usually larger than a single-architecture package. It addresses architecture compatibility, not the app’s minimum Android version.
v2flyNG · Android
1.10.31
Alternative
v2fly core · choose based on configuration compatibility
For users who specifically need the v2fly core and have a device that supports arm64 apps. This can be an alternative client if your existing configuration uses the same core ecosystem. Protocol and transport options must still match the server; the core name alone doesn’t confirm that your configuration is compatible.
Choose the universal package if you’re unsure which architecture your device supports. v2flyNG and v2rayNG are different apps, with separate settings and permissions. Stop the other client before testing a switch; only one app can manage the VPN connection at a time.
Android installation and system requirements
Android installation checklist
Check
What to choose and prepare
App architecture
For most devices, start with arm64; choose Universal if you’re unsure. If the installer reports an architecture mismatch, check what the system actually supports.
Android version
Minimum Android requirements vary by release. Follow the installer’s prompt; the Universal package doesn’t lower the minimum system requirement.
Install permissions
To install an APK, allow the current browser or file manager to install unknown apps. You can revoke that source’s permission afterward.
Connection permissions
The first connection requires system VPN approval. For reliable background use, you may need to relax the app’s battery restrictions in Settings.
Open the downloaded APK and grant install permission to the current source when prompted. The source is the app opening the file, such as your browser or file manager—not a reason to change every security setting on your phone. If the installer says “App not installed,” note the full reason first, then check architecture, storage, Android version, and the old app’s signature. Don’t assume every installation failure is caused by the download.
Save your subscription URL under subscription group settings in v2rayNG, then return to the main screen and choose Update subscription. For a single share link, use Import from clipboard instead of entering it in the subscription URL field. After importing, select a node, tap Connect, and approve the VPN request. VPN mode provides the app’s traffic entry point; routing settings determine which traffic is direct or proxied.
If the connection drops in the background, check whether the system’s battery policy paused the app, then review the node logs. Adjust background permissions for that client only; there’s no need to relax restrictions for every app. v2rayNG uses the Xray core, while v2flyNG uses the v2fly core. Their configuration support can differ, especially for specific protocol and transport combinations. If your service configuration requires Xray features, stick with v2rayNG.
Choose this for an x64 desktop using DEB package management, such as Ubuntu or Debian. The amd64 filename refers to the same general architecture as x86_64 and doesn’t indicate a processor brand. Use the system software installer to handle dependencies.
Start here for an x64 desktop using RPM packages, such as Fedora or openSUSE. The same package format doesn’t guarantee identical dependencies across distributions. If the installer reports a missing library or package version conflict, follow your distribution’s guidance.
For an ARM64 desktop, choose the matching package instead of the x64 file above:
Requires a Linux desktop session that can run graphical apps. This page provides a GUI client, not a server deployment package.
Processor architecture
Choose x64 for x86_64 / amd64, or ARM64 for aarch64 / arm64. Check your system’s About page or hardware information.
Package management
Choose DEB for Ubuntu or Debian, and RPM for Fedora, openSUSE, and other RPM-based distributions. Check compatibility with your distribution’s dependencies.
Permissions and dependencies
Installing a package requires administrator privileges. Run the desktop app as a regular user; grant additional permissions for TUN when prompted.
Choosing a Linux package involves two checks: package format and processor architecture. DEB and RPM are package formats; x64 and ARM64 are architectures. They aren’t interchangeable, and changing a file extension won’t convert a package. Open the installer with your system’s software manager, review dependency prompts, and proceed. If it explicitly reports that your distribution is incompatible, stop rather than forcing the installation or ignoring dependencies.
After installation, launch v2rayN from the app menu, add a subscription group, and update your nodes. Whether the system proxy works on Linux also depends on your desktop environment and the app. Browsers may use the desktop proxy, while command-line tools may not. First test with an app that explicitly supports the system proxy, then configure proxy access for other programs. Record node connectivity and whether apps use the proxy as separate issues.
To start v2rayN automatically after login, add it under Startup Applications or a similar setting in your desktop environment. Starting after login is different from running a system service at boot: a graphical client should start after the user session is ready. Quit the app before updating and keep a copy of your personal settings. If networking fails after enabling TUN, return to regular proxy mode first, then check permissions, interfaces, and routing.
Finishing the download is only the first step. The client, subscription, traffic entry point, and routing each handle a different layer, so configuring them in order makes problems easier to isolate. Get a basic connection working before adding routing rules, DNS, or TUN. Change one setting at a time so the logs remain useful.
01 / CONFIGURATION SOURCE
Get a subscription or share link
Check whether you have an updatable subscription URL or a single-node link beginning with vmess://, vless://, or a similar scheme. Add subscriptions under subscription group settings; import share links from the clipboard. A website URL, login page, and subscription URL may be different—check your provider’s instructions before importing.
02 / PROXY ENTRY POINT
Select a node and start the connection
Enable the system proxy on desktop, or approve the VPN request on Android. Seeing nodes in the list only confirms they were imported. Start the client and route app traffic through it to begin testing. Stop other proxy apps first to avoid port conflicts, competing system proxy settings, or VPN conflicts.
03 / VERIFY THE RESULT
Test a connection, then adjust routing
Use your usual browser to visit the site you want to test, and check the client logs for connection entries. Once it works, choose a suitable routing mode. System proxy settings and routing options such as “bypass LAN and mainland China addresses” control different layers. Changing routing won’t enable a missing system proxy setting.
Versions in the download list change over time; desktop and Android clients are maintained separately, so their version numbers don’t need to match. Decide whether to upgrade based on the features you need and what changed in the release. If your configuration works, back it up before updating. When troubleshooting, recording what changed before and after an upgrade is more useful than repeatedly reinstalling. See the user guide for the full walkthrough and the cross-platform installation and setup guide for platform details.
Download and installation FAQ
Separate installation issues from connection issues before changing settings.
Should I download the Desktop or WPF edition for Windows?
For a first install, start with the Desktop edition, which uses a newer cross-platform interface. Choose WPF if you prefer the classic Windows interface and its familiar workflow. Both are v2rayN; check the package name before downloading, back up your settings before switching, and avoid letting both clients manage the system proxy at once.
Which Android build should I choose: arm64 or universal?
Most phones released since 2015 can start with arm64, but check which app architectures your device actually supports. Choose the universal build if you’re unsure. Install failures can also be caused by an interrupted download, Android version, signature conflicts, or install permissions—not just the phone’s age.
Where do I get a subscription URL after downloading the client?
The installer contains the client app, not a ready-to-use subscription. Get a subscription URL or share link from your service provider or your own server. In v2rayN, save the URL under subscription group settings, then update the subscription. Do the same in v2rayNG. Subscription URLs may contain access credentials, so don’t share them publicly.
Do I need to uninstall the old client before updating?
Back up your subscription groups, routing settings, and any other essential configuration, then quit the old client. On Android, the same app can usually be installed over the existing version if the signatures are compatible. On desktop, follow the installer’s update prompts. If signatures conflict, you’re switching package variants, or you’re changing interface editions, don’t delete old data until you’ve confirmed the new client can import your settings.
What if the download fails or the saved file won’t open?
First, make sure the browser finished downloading and that the file extension matches your platform. Extract ZIP files on Windows; use APK on Android, DMG on macOS, and DEB or RPM on Linux, depending on your distribution. Retry interrupted downloads. If your system blocks installation, read the specific warning instead of disabling all security protections.
I installed the client and imported nodes. Why can’t my browser connect?
Installing the app, importing nodes, and starting the proxy are separate steps. Select a node and start the client, then check that the system proxy is enabled on desktop or VPN permission is granted on Android. Browser proxy settings, other proxy apps, routing rules, and DNS can also affect the result. Troubleshoot the specific error in the logs, changing one setting at a time.