v2rayN Recommended
Windows · x64When the download finishes, extract the ZIP before running the installer inside. Don't launch it from the archive preview.
Client Downloads / Choose an Installer
Choose your operating system, then your CPU architecture.
Use v2rayN on desktop and v2rayNG on Android. If you already have a V2Fly configuration, consider v2flyNG. After installation, import a valid subscription or connection settings.
Platforms and architectures
The selected platform is saved in the page URL, so reopening the same URL returns you to that platform. These are graphical client downloads; check your OS version and the installer's requirements before installing.
When the download finishes, extract the ZIP before running the installer inside. Don't launch it from the archive preview.
| Check | What to choose and prepare |
|---|---|
| System architecture | Both downloads on this page are x64. Check your system type under Settings → System → About. The x64 package is not a universal installer for every architecture. |
| Windows version and runtime | Use a supported Windows release that is still maintained. The minimum version depends on the installer and UI framework you choose. If a runtime is missing, follow the installer's instructions. |
| Files and folders | Extract the entire ZIP to a writable folder and keep all files together. Don't run the app from a temporary extraction location or copy out only the executable. |
| Proxy permissions | System proxy and Tun mode have different permission requirements. Get a basic connection working first; if you need Tun to route traffic through a virtual network adapter, check administrator access and driver status. |
Before the first launch, quit other apps that control the system proxy to prevent them from repeatedly changing its address. After importing a subscription, confirm that the list contains a working configuration before enabling the system proxy. System proxy settings don't cover every app; check apps with their own network settings separately.
Before migrating from an older version, back up subscription groups, server settings, and custom rules. After installing the new interface, check the listening port, routing mode, and startup options. Don't migrate by copying the old directory over the new one. If startup fails, check the logs for runtime or file path errors before switching editions.
Open About This Mac and check the Chip or Processor field before downloading.
| Check | What to choose and prepare |
|---|---|
| Chip architecture | Choose arm64 for Apple M-series chips and x64 for Intel processors. Find your chip under About This Mac in the Apple menu. |
| macOS version | Make sure your macOS version meets the requirements for the build you downloaded. If an older system won't launch the app or reports a missing component, check the specific messages from the app and macOS. |
| Installation location | Open the DMG and follow its instructions to move the app into the Applications folder. Launch it from there after copying; don't keep running it from the disk image. |
| Network permissions | System proxy and Tun may trigger different authorization flows. Grant only the permissions needed for the feature you're using, then check that the network settings took effect. |
If macOS asks you to confirm an app's source on first launch, verify that the file you're opening matches the platform you downloaded, then use the security settings provided by macOS. Don't disable system security altogether just to run one app. If macOS reports that the app is damaged or incompatible, first check whether the download completed, the OS version is supported, and the app is in the right location.
After configuring the client, enable the system proxy and test with an app that follows system proxy settings. If a terminal or another app still can't connect, installation may be fine—the app may not use the system proxy. Check which traffic is covered before deciding whether to enable Tun. For routing and DNS, see the advanced configuration guide.
For most phones released since 2015, choose arm64. If you're unsure which architecture your system supports, try the universal build.
v2rayNG uses the Xray core and is a good starting point for most Android setups. For VLESS, REALITY, or XTLS Vision, check that the subscription settings are supported by the current core; a protocol name alone doesn't guarantee a working connection.
Consider this option if you already use a V2Fly configuration. Choose an architecture the same way you would for v2rayNG.
v2flyNG uses the V2Fly core. Similar interfaces and import workflows don't make the two cores' extended configuration fields fully compatible; don't apply Xray-specific settings directly. Choose based on your existing configuration requirements rather than installing extra clients.
| Check | What to choose and prepare |
|---|---|
| App architecture | Choose arm64 for devices that support 64-bit apps. A 64-bit processor doesn't necessarily mean the operating system supports 64-bit apps; try the universal build if you're unsure. |
| System compatibility | The minimum Android version depends on the installer check and the app's requirements. If parsing fails, make sure the APK finished downloading, then check the OS version and architecture. |
| Install permission | Follow Android's prompt to temporarily allow the browser or file manager opening the APK to install apps. After installation, you can revoke permission for that source in Settings. |
| Connection permission | When starting a connection, approve Android's VPN request. Usually only one VPN service can run at a time, so disconnect other VPN apps first. |
| Background activity | If the connection drops when the screen turns off, check battery optimization, background activity, and auto-start restrictions. Adjust these settings for the client only; there's no need to disable every battery-saving feature. |
An Android installer's signature conflict often means the installed app came from a different distribution channel. Don't uninstall it right away: first export your subscription and custom settings, and make sure you can restore them. Apps with similar names may not share data directories or support in-place updates.
After importing a subscription, select a configuration manually before connecting. A VPN icon in the status bar only confirms that Android established a VPN tunnel; it doesn't confirm the remote connection or DNS is working. Check the client logs and test actual access. If problems start after switching networks, stop and restart the connection, then check routing mode and background restrictions.
Debian- and Ubuntu-based systems typically use deb; Fedora- and RHEL-based systems typically use rpm. Check your distribution's dependency requirements for compatibility.
| Check | What to choose and prepare |
|---|---|
| Distribution package format | Choose deb or rpm based on the package formats supported by your system's installer. Changing a file extension won't convert the package or resolve dependency issues. |
| Processor architecture | Check the architecture in system information and download the matching x64 or arm64 package. For a virtual machine, use the architecture reported inside the VM. |
| Runtime environment | A graphical desktop and the system libraries required by the build are needed. Review dependency messages in your graphical software installer; don't force installation when requirements aren't met. |
| System proxy | Proxy settings are in different places across desktop environments. Check whether the apps you want to use follow the desktop proxy; configure apps with their own proxy settings separately. |
| Tun permissions | A virtual network adapter, routing table changes, and DNS handling often require additional permissions. Get the standard proxy working first, then enable these features and check the logs. |
Open the downloaded package with your distribution's graphical software installer. Review its dependency and architecture messages before installing. For upgrades, stick to the same package format and installation channel where possible. Mixing installation methods can leave duplicate launchers and make configuration directories and update paths hard to track.
After launching the client, check the listening port and selected server, then configure the desktop system proxy. If a browser works but other apps don't, check which traffic the proxy covers instead of reinstalling. If enabling Tun disrupts network access, stop Tun and restore the system DNS and routes, then check permissions, the default route, and DNS settings one at a time.
From installation to connection
Installing the client, importing a configuration, and routing traffic are three separate steps. Check them in order to distinguish installation issues from connection problems.
01 / Before installation
If you're already using a client, note your subscription groups, routing mode, listening port, and custom DNS settings. A subscription refresh may not restore manually edited local rules, so save anything you need for migration separately.
Before installing over an existing version, quit the client and disconnect the system proxy or VPN. Don't run old and new versions at the same time to compare them; port conflicts and proxy changes can make the results unreliable.
02 / Import configuration
The client configures your device; you'll need a separate connection service. Once you have a valid subscription, add its address under subscription groups and update it. For a single share link, use the relevant import option, then check the protocol and transport settings.
Subscription URLs may contain credentials. When troubleshooting, don't publicly post the full URL, account details, or screenshots of your configuration. If the list is empty, check that the URL is complete and hasn't expired, then review the update log for details.
View subscription import steps →03 / Verify the connection
Select a configuration before enabling the network mode you need. System proxy, split routing, and Tun control how traffic reaches the client, which outbound is selected, and how much traffic is routed through it. They are separate settings, not interchangeable switches.
Verify the connection using both real app access and client logs. One working app doesn't mean all traffic is routed as expected. If something fails, return to a simple configuration to confirm connectivity, then add DNS, routing, and Tun settings one at a time.
View advanced configuration →Download FAQs
Check the package name, platform, and architecture before adjusting permissions or configuration. Expand a question below for guidance.
For a first installation, start with Desktop, which uses a modern cross-platform interface. The classic WPF edition retains the familiar Windows look and established workflows, making it a good fit for experienced users. Both require a valid connection configuration. Before switching editions, back up subscription groups, routing rules, and settings; don't assume their configuration directories are interchangeable.
For most phones released since 2015, arm64 is the usual choice, but the deciding factor is the app architecture supported by your operating system. Some devices have a 64-bit processor but support only 32-bit apps; in that case, try the universal build. If installation fails to parse or reports incompatibility, check the OS version and architecture instead of retrying the same mismatched package.
v2rayNG uses the Xray core and is the recommended Android option. v2flyNG uses the V2Fly core and can be an alternative for existing V2Fly configurations. Their protocol support and configuration fields are not necessarily identical. For REALITY or XTLS Vision, check support in the client's core and connection settings; a successful import alone doesn't confirm compatibility.
The displayed version comes from an app-level manifest, while the filename belongs to a specific installer entry; they may be updated at different times. Check the client name, platform, and architecture when choosing a file. Don't rename files or alter URLs based only on version numbers. To verify an installed version, check the client's About page.
You'll also need a valid subscription link or connection settings. The client reads configurations, selects an outbound, and handles traffic on your device; the installer doesn't include a connection service. After importing a configuration, select one that works, set the system proxy or network mode, then verify the connection using logs and an actual app. Subscription links may contain credentials, so don't share them publicly.
For the same client installed through the same channel, try a standard update first; uninstalling is usually unnecessary. Back up your configuration and quit the running client before updating. If the installer reports a signature, architecture, or package-format conflict, check where and how the old version was installed. Uninstalling may erase app data. When switching clients or interface editions, save configurations separately and recheck routing and permissions.