v2rayN
RecommendedWindows x64 downloads. Desktop has a newer cross-platform UI; WPF is the classic stable version with a familiar desktop layout.
v2rayN for desktop, and v2rayNG or v2flyNG for Android. Choose your operating system first, then check the processor architecture.
Windows x64 downloads. Desktop has a newer cross-platform UI; WPF is the classic stable version with a familiar desktop layout.
Open Settings → System → About and check your system type to confirm the device uses an x64 processor. This page provides x64 packages; don’t infer the architecture from the device’s appearance. Extract the downloaded ZIP to a writable folder, then run the installer inside. Don’t launch it from the archive preview.
Desktop and WPF differ mainly in their interface technology and layout, not in their connection routes. If you see a runtime requirement on first launch, install the dependency specified by the program. If the app opens but your browser can’t connect, check the configuration and proxy status rather than blaming the installer.
| Check | Before you install |
|---|---|
| Operating system and architecture | Windows x64. Check the package prompts for the specific OS version and runtime requirements. |
| Folder permissions | Make sure the extraction and installation folders are writable, with room for configuration, logs, and updates. |
| First launch | Standard proxy configurations usually don’t require administrator access. Check permission requirements separately if you use TUN. |
After importing a server, select “Set system proxy” in the status bar so apps that follow the system proxy use the client. This doesn’t enable global routing: requests are still handled according to your routing rules, which may send them direct, through the proxy, or block them. For your first test, use just one connection method; avoid changing the system proxy, TUN, and custom rules at the same time.
Open About This Mac from the Apple menu. If it shows an Apple chip, choose Apple Silicon; if it shows an Intel processor, choose Intel.
Download the DMG for your chip, open the disk image, and copy the app to Applications. Launch it from there. Don’t keep running it from a temporarily mounted disk image; updates, path permissions, and configuration locations may not work as expected. When moving to another device, check its processor instead of reusing the package type from your old Mac.
If macOS displays a security alert, read it and confirm the download source and selected file before following the system’s app authorization steps. Don’t disable system security entirely just to launch one app. Once it starts, check the server configuration, core logs, and system proxy separately. Installation and a successful connection are distinct steps.
| Check | Before you install |
|---|---|
| Processor | Apple Silicon uses arm64; Intel uses x64. |
| System compatibility | Check the installer’s minimum OS requirements and any startup prompts. |
| Network settings | Before using the system proxy, check your active network service and existing proxy settings. |
If you’ve used another proxy app, quit it first and check for leftover proxy settings. When you’re done, clear the system proxy from the client before quitting normally; removing the app won’t necessarily restore the system’s proxy settings. If your browser works but other apps don’t, check whether those apps follow the system proxy.
Android graphical client powered by the Xray core. Most mainstream phones released after 2015 use arm64, but check which app architectures your device supports.
For configurations that require V2Fly core compatibility. Before switching, check the protocol, transport, and configuration fields. Changing clients isn’t a universal fix for every issue.
When you open an APK, Android may ask you to allow your browser or file manager to install apps. Grant permission only to the source you’re using, then adjust it in Settings afterward if needed. If installation fails, check the system message: architecture mismatch, an outdated Android version, insufficient storage, and a signature conflict each require a different fix. Downloading the same package again usually won’t help.
| Check | Before you install |
|---|---|
| Device architecture | Choose arm64 for most devices; if unsure, use the universal version. |
| Install permission | Allow app installs from the file source you’re using and check for compatibility warnings. |
| Connection permission | Grant VPN permission when prompted on the first connection. |
| Background activity | If connections drop frequently, check battery optimization, background restrictions, and other VPN apps. |
After importing, select a configuration before connecting. Android usually routes traffic through the system VPN interface, which typically allows only one active VPN service per user. Other tools using the VPN interface may conflict. Once connected, if only some apps have issues, check app-routing rules instead of clearing all your configuration.
v2rayNG and v2flyNG use different cores, so don’t assume they support the same newer protocols or extended fields. For configurations using REALITY, check support in the selected client and core first. If an update package for an existing app has a different signature, back up your data before deciding how to migrate. Don’t uninstall first and risk losing your configuration.
Choose deb or rpm according to your distribution’s package system. The main downloads below are for x64; use the smaller link for arm64 devices.
Package format and processor architecture are separate requirements: a deb-based system may use arm64, and an rpm-based system may use x64. Check your distribution and architecture in system information before choosing a file. amd64 and x86_64 in a package name usually mean x64; arm64 and aarch64 mean 64-bit ARM.
Open the file with your distribution’s software installer and review the dependency results. The same file extension doesn’t guarantee compatibility with every distribution; required system libraries and desktop components must also be available. If dependencies conflict, don’t force the installation. First check whether the package supports your system.
| Check | Before you install |
|---|---|
| Package system | Choose the deb or rpm package supported by your distribution; don’t mix package systems. |
| Processor architecture | x64 corresponds to amd64 and x86_64; arm64 corresponds to aarch64. |
| Runtime environment | Requires a graphical desktop and the dependencies for the package. Not intended as a headless, command-line server package. |
| Proxy settings | Check how your desktop environment and target apps handle proxy settings. |
Desktop environments handle system proxies differently. Some apps use only their own proxy settings, and terminal programs may not inherit the desktop proxy automatically. If your browser works but other programs don’t, check how each app connects before looking at routing. System proxy and TUN have different permissions and scopes, so test them separately.
In v2rayN, enter and save the subscription URL under Subscription Groups, then update the subscription. In v2rayNG, import a share link from the clipboard through the menu, or add a subscription in the settings and update it. Menu names may vary by version, but the steps are the same: save the source, fetch the configuration, and select an active server.
If a subscription update fails, check that the URL is complete and valid, with no extra spaces. Then choose whether to fetch it directly or through a proxy. If the client hasn’t established a working proxy yet, fetching through the proxy may route the request back through itself. Don’t keep deleting the group; note the error and try a different fetch method first.
Share links and native JSON are different import formats. Import a standard share link using the appropriate option; for full JSON, check compatibility with the client and core. When making a backup or describing an issue to someone, hide subscription URLs, user IDs, and credentials.
On desktop, select an active server and confirm the core startup message appears in the logs before setting the system proxy. On Android, grant VPN permission when connecting for the first time and check the system connection status. Open a website you want to test, then look for the corresponding outbound connection in the logs.
Routing mode controls what happens to requests that reach the client. “Bypass mainland China (Whitelist)” and “Global” don’t replace enabling the system proxy. If the logs show no request to the target, first check whether the app is using the proxy. If the request appears but the connection fails, check server settings, network reachability, and DNS.
Once the basic connection works, add custom routing, app-specific rules, or TUN settings. Change one category at a time and keep the previous configuration so you can use the logs to identify what affected the result. See the user guide for detailed steps.
The installer includes the client, but no ready-to-use server configuration. Get a subscription URL or share link you’re authorized to use, import it, select a server, and connect. Then check the system proxy or Android VPN permission.
Desktop uses a newer cross-platform interface and is a good fit for fresh installs or switching between desktop operating systems. WPF is the classic, stable version for users who prefer its familiar windows and workflow. Both require a valid server configuration; interface differences don’t indicate connection quality.
Most mainstream phones released after 2015 support arm64, but check which app architectures your device supports. If you’re unsure, choose the universal version. If installation fails, also check the Android version, available storage, and whether the installed app has a conflicting signature.
Back up subscription groups, personal server configurations, custom routing, and important settings. Note which app you use and how it was installed. Configurations may contain private subscription URLs and credentials, so store backups securely. After updating, check your groups, active server, and routing mode.
Check the logs to confirm the core started, then verify the server configuration and system proxy. On desktop, make sure automatic system proxy configuration is active. On Android, check VPN permission and connection status. If the app starts normally, troubleshoot the connection path instead of reinstalling repeatedly.
The displayed version and download links come from different fields in the release manifest and may update at different times. Treat the page version as a reference; check the filename and the version shown in the installed app for the package version. Don’t edit numbers in a download URL to guess other versions.
To compare the configuration capabilities of all three clients, see the client comparison. For specific connection issues, check the FAQ.