v2rayN
Both packages use the same subscription, node, and routing configuration logic. New users should start with Desktop; choose WPF if you already use it or prefer the classic interface.
Choose a package by operating system and processor architecture. Use v2rayN on desktop platforms, and choose between v2rayNG and v2flyNG on Android. Download URLs and version details are updated from the same-origin release list.
Platform packages
After switching platforms, the download cards, system requirements, and installation notes update together. The platform anchor in the URL can be saved or shared to preserve the current selection.
Windows offers Desktop and WPF interface versions. Desktop is the next-generation cross-platform UI for users who want a consistent interface and future cross-platform features. WPF is the classic, stable version with a settings layout closer to the traditional v2rayN experience.
Both packages use the same subscription, node, and routing configuration logic. New users should start with Desktop; choose WPF if you already use it or prefer the classic interface.
macOS packages are separated by processor architecture. Choose Apple Silicon when System Information shows an Apple M-series chip; choose Intel when the processor field says Intel. Selecting the correct architecture makes installation and future updates more straightforward.
Both packages offer the same features; only the processor architecture differs. Before downloading, open System Information and check the chip field to avoid using an Intel package on an Apple Silicon device or vice versa.
v2rayNG is the recommended choice because it uses the Xray core and covers common subscription and routing needs. v2flyNG uses the v2fly core and is an alternative on the same platform. For most phones released after 2015, start with arm64; choose the universal version if the architecture is unknown.
Suitable for most Android users. The arm64 package targets mainstream 64-bit ARM devices and is smaller; the universal version supports a wider range of architectures and is better when hardware details are unknown or the arm64 package will not install.
Choose v2flyNG if you need the v2fly core or want to keep a separate configuration environment on the same platform. The architecture rules are the same as for v2rayNG: choose arm64 for a confirmed 64-bit ARM device, and universal when uncertain.
Linux packages must match both the distribution’s package system and the processor architecture. Debian, Ubuntu, and derivatives generally use deb; Fedora, Rocky Linux, AlmaLinux, and other rpm-based distributions use rpm. Choose x64 for common desktop computers and arm64 for ARM devices.
First determine whether the distribution uses deb or rpm, then check whether the device is x64 or arm64. Typical Intel or AMD desktop computers use x64; ARM desktops, small computers, and development boards require checking the system architecture before choosing.
Choose these only when the system architecture clearly shows arm64 or aarch64.
Selection guide
When several download options are available, decide in this order: platform, client, architecture, then package format. Each step answers one question and reduces mistakes caused by similar filenames.
Windows, macOS, Android, and Linux use different package formats and cannot be mixed across platforms. If your browser downloads contain a package for another device, return to the corresponding platform tab instead of copying the old file.
Use v2rayN on desktop platforms. On Android, v2rayNG is the preferred choice; choose v2flyNG when you need the v2fly core. The names are similar, but configuration storage, interface structure, and some feature locations differ.
x64, arm64, and universal describe the machine code included in a package. On macOS, check the chip in System Information; on Android, use a device information tool or the manufacturer’s specifications; on Linux, check the architecture in system settings or terminal system information.
This mainly matters on Linux. deb and rpm belong to different package-management systems, so matching the processor architecture does not make the package format interchangeable. With the right format, the system package manager can resolve dependencies and upgrade paths.
After download
The client is only a graphical configuration tool. After installation, import a subscription or individual share link, update the node list, select a node, and configure the system proxy or traffic-capture mode for the platform. A clear sequence makes troubleshooting easier than repeatedly toggling switches.
Complete the installation as prompted. On the first launch, pay attention to permissions for network access, the system proxy, or background operation; these directly affect whether the client can handle the target traffic.
A subscription URL points to an updatable node list, while a single vmess:// or vless:// link represents one configuration. After importing, run a subscription update and confirm that the list has been added to the client.
Select a node first, then choose routing rules for your use case. When troubleshooting a connection, temporarily use simpler routing settings. Once the basic connection works, restore custom split-routing rules step by step.
After enabling the system proxy, reconnect your browser. If some applications still use an old connection, quit them completely and reopen them. For DNS resolution problems, check for conflicts among the client DNS, system DNS, and routing rules.
Installation notes
Version updates may change the interface, core compatibility, protocol fields, or system support. Record the existing configuration structure before upgrading, then verify the subscription, routing, and system proxy one by one.
A subscription URL can retrieve the node list again, but custom routing, DNS, subscription groups, ports, and startup behavior may be stored only on the local device. Before upgrading or changing clients, record these items and confirm where the old configuration is stored.
If you save only node names and overlook routing rules, migration may leave you with a connection that works for the node but behaves differently in some applications.
A single release may include x64, arm64, and universal packages. Matching version numbers only mean the releases share a publication batch; they do not mean every file supports every processor. If the system says the program cannot start or install, recheck the architecture first.
Linux also requires checking deb versus rpm; on macOS, focus on the chip field.
First confirm that the client launches, then update the subscription, test the node connection, and finally enable the system proxy and custom routing. Verifying one layer at a time helps distinguish startup, configuration, and network problems.
If an old rule contains fields that have changed, save it again using the current version’s interface instead of repeatedly overwriting several historical versions.
Download FAQ
These questions cover versions, architectures, package formats, and configuration after installation. For connection timeouts, DNS problems, or a system proxy that does not work, continue to the Troubleshooting page and check by symptom.
Start with the Desktop version. It uses a next-generation cross-platform interface. Choose WPF if you prefer the classic Windows interface, an established workflow, or the traditional settings layout. Both are v2rayN, and their core subscription import and routing workflows are largely the same.
Open System Information or About This Mac and check the chip or processor field. Choose Apple Silicon when an Apple M-series chip is shown, and Intel when Intel is listed. A mismatched architecture may prevent the installer from launching or require additional compatibility steps.
Most mainstream Android phones released after 2015 should use arm64 first because the file is smaller. Choose the universal version if the processor architecture is unknown, the device is older, or the arm64 package will not install. The universal version supports more devices but is usually larger.
Choose deb for Debian, Ubuntu, and derivatives; choose rpm for Fedora, Rocky Linux, AlmaLinux, and other rpm-based distributions. Also check the processor architecture: common desktop computers use x64, while arm64 devices need the matching arm64 package.
Installing the client does not activate a proxy configuration by itself. Import a working subscription or share link, update the node list, select a node, and enable the system proxy or the appropriate traffic-capture mode for your use case. If it still fails, check the system time, DNS, routing rules, and node status.