Client downloads · Choose a platform and architecture
V2Ray Client Downloads
Choose v2rayN for desktop and v2rayNG for Android. Confirm your operating system, then match the package to your CPU architecture. Import subscriptions, choose a proxy mode, and configure routing rules after installation.
Each link points to a specific package format. The clients are free and open source, but connecting requires a valid server configuration. Get subscription URLs from a trusted source.
v2rayN
Recommended
Windows · x647.24.1
For a new installation, start with Desktop; choose WPF if you prefer the classic interface. Both downloads are ZIP files. Extract the archive before running the installer.
Desktop edition
A next-generation cross-platform UI for users who want a consistent experience across desktop operating systems.
This page offers x64 packages. Check Settings → System → About to confirm your system type matches the package architecture.
Operating system
Use a supported 64-bit version of Windows. Check the current release notes for the minimum OS version and runtime requirements.
Permissions and disk space
Leave enough space to extract and install the package. Standard proxy mode and TUN have different permission requirements; don't enable every feature on first launch.
Choosing between Desktop and WPF
The main differences are the interface framework and desktop experience, not the subscription source. Desktop uses a next-generation cross-platform interface, while WPF retains the classic Windows layout. Menus, window behavior, and some feature entry points may differ. If a tutorial's screenshots don't match your app, look for the feature by its menu name rather than assuming it's missing based on button placement. Feature availability varies by release, so check the current release notes when choosing an edition.
If your WPF setup works, back it up before deciding whether to switch to Desktop. Don't overwrite your only configuration directory with a new release, and don't run both editions with control of the system proxy. After migrating, check your subscription groups, active server, system proxy, and routing settings in order. Confirm a basic connection before restoring custom options. For a first installation, start with one edition to make troubleshooting easier.
Install the downloaded package
Save the ZIP to a writable folder and extract it completely. Don't run the installer from the archive preview.
Run the extracted installer and follow the prompts. If it reports a missing runtime, note the dependency and install what's required according to the release notes; repeatedly reinstalling the same package won't help.
Launch the client, import a configuration, and select a server. Then enable automatic system proxy configuration. Test a basic connection in your browser before configuring routing rules or TUN.
If a file is in use during installation, quit the client from the system tray and check for any remaining processes. If the app opens but can't connect, troubleshoot the configuration and network. Reinstalling usually won't fix an expired subscription, incorrect server settings, or a port conflict. For detailed instructions, see the user guide.
v2rayN
Desktop client
macOS · DMG7.24.1
Choose a package based on the chip shown in About This Mac. Apple M series and Intel Macs use different downloads.
Apple Silicon
For Macs with Apple M series chips. Choose the native arm64 package to avoid extra architecture translation.
Apple menu → About This Mac: choose the arm64 DMG for an Apple M series chip.
Intel
For an Intel processor, download the x64 DMG. Don't infer the chip architecture from the year you bought your Mac.
System and permissions
Check the current release notes for the minimum macOS version. On first launch, you may need to approve the app in Security settings. Grant system proxy and TUN permissions as prompted for the features you use.
Install the DMG and launch the app
When the download finishes, open the DMG and drag the app into the Applications folder. Launch it from Applications. Avoid running it from the mounted disk image long-term, as that can make updates, app path detection, and permission management more difficult. Once installation is complete, you can eject the disk image. Keeping or deleting the downloaded file is up to you and doesn't affect the app in Applications.
If you see a developer verification warning on first launch, check the download source and make sure you chose the right chip package. Then review the prompt under System Settings → Privacy & Security. Allow only apps from sources you've verified; don't disable system security entirely just to launch an app. Button locations vary by macOS version, so follow the prompts shown on your system.
App installation and network permissions are separate
Being able to open the app doesn't mean every network feature is authorized. Import a valid configuration and test the connection with the standard system proxy first. Enable TUN and grant its permissions only if you need to route traffic from more apps. System proxy settings, network extensions, and virtual network interfaces are separate features; approving one doesn't enable the others.
If no window appears after launch, check the menu bar or Dock for an existing app instance. If your network works only after quitting the app, check whether the system proxy still points to a local port and whether another proxy client is running. When troubleshooting permissions, note the exact prompt and macOS version; this is more useful than repeatedly downloading packages for different architectures.
v2rayNG
Recommended
Android · Xray core2.2.6
A popular choice for Android, with support for share links and subscription imports. Most mainstream phones released since 2015 can use arm64, but check which architectures your system supports.
arm64 APK
For devices that support arm64-v8a. Includes only the files needed for this architecture.
For users with existing V2Fly configurations. Before installing, check that this client and core version support your protocols and transport settings.
arm64 APK
Choose this package if your device supports arm64-v8a. Check your subscription and server settings again after installation.
If you aren't sure which architecture your device uses, choose the universal version. Your device must still meet the current release's system requirements.
Most mainstream phones released since 2015 can use arm64. Some devices have system-level architecture limitations; choose the universal version if you're unsure.
Android version
Check the current release notes for the minimum Android version. A 64-bit processor doesn't necessarily mean the operating system supports this package.
Installation and connection permissions
Allow app installation for the browser or file manager you use to open the APK. On first connection, approve the system VPN request.
Choose an architecture and troubleshoot installation
arm64 describes the processor and app runtime architecture; a phone's brand, model, or release year alone can't confirm compatibility. Most recent devices support arm64, but older devices, custom systems, or devices using other architectures may need the universal version. A universal package supports more architectures, but won't fix an outdated Android version, low storage, or a signature mismatch with an already installed app.
Open the APK and follow the system prompts to install it. Permission to install apps is usually granted to the app that starts the installation. If you downloaded the APK in a browser and open it with a file manager, you may need to grant the file manager permission separately. You can revoke this temporary permission after installation. If Android says the app wasn't installed, check for an older app with the same name, available storage, and architecture compatibility. Back up your data before considering a reinstall.
When to choose v2rayNG or v2flyNG
v2rayNG uses the Xray core and is the recommended Android option on this page. v2flyNG uses the V2Fly core and is an alternative for users with compatible configurations. They are different client options in the same proxy ecosystem, but not every subscription setting is necessarily compatible with both. Support for protocols, transports, and advanced parameters depends on the core version and client configuration options.
Approve the system VPN request on first connection. Usually, only one app that takes over network traffic can run at a time. If another client or VPN app is already connected, stop it before testing. A running indicator means the local service has started; check a webpage and the logs to confirm the server is reachable. If the connection drops in the background, check battery optimization and background activity restrictions rather than assuming the installer is at fault.
v2rayN
Desktop client
Linux · deb / rpm7.24.1
Choose deb or rpm for your distribution, then match the x64 or arm64 architecture. The main downloads below are for x64 desktops; arm64 options follow.
deb · x64
For Debian, Ubuntu, and distributions that support deb. The package manager handles dependencies during installation.
Choose these only if both your device and desktop system use arm64. The package format must also match your distribution.
Linux requirements and package formats
Distribution, architecture, and desktop environment
Item
What to choose and check
deb package
For distributions that use deb packages. The system libraries must meet the release requirements.
rpm package
For distributions that use rpm packages. Using the same package format doesn't guarantee compatibility with every distribution version.
CPU architecture
Most Intel and AMD desktops use x64; choose the arm64 package for arm64 desktops. amd64 and x86_64 usually mean x64; aarch64 usually means arm64.
Runtime environment
Requires a working graphical desktop and the relevant dependencies. Run the app as a standard user; grant permissions when prompted only for system network settings.
Install with a graphical package manager
Save the package locally, then open it with your distribution's software installer. The installer may request administrator permission to write to system directories and may install dependencies from your distribution's repositories. If dependencies are missing, check which packages are required and your system version; don't force the installation past dependency errors. deb and rpm are different package formats—changing a file extension won't convert one to the other.
After installation, launch v2rayN from the app menu. If the window won't open, check architecture, desktop environment, and dependencies first. If the app opens but your traffic isn't using the proxy, check the desktop environment's system proxy settings. Desktop environments and apps vary in how they handle system proxy settings; one browser connecting doesn't mean every app uses the same proxy automatically.
Proxy coverage and permission boundaries
Test the server with standard proxy mode before considering TUN. TUN involves a virtual network interface, routing, and permissions, and affects more traffic than an app proxy. When prompted, make sure you understand which action you're authorizing; don't run the entire graphical client with elevated privileges long-term for convenience. If another proxy or network-routing tool is active, stop one first, then check for port conflicts and routing conflicts.
Before updating, quit the client and back up your configuration, then install the new package with your package manager. After a major distribution upgrade, system libraries and desktop integration may change; check the current package requirements again. For complete setup steps and routing guidance, see the complete guide. This page provides download links for the graphical client only.
After downloading: setup and updates
01 / IMPORT
Import a subscription or share link
The installer includes the client, not a working server. Once you have a valid subscription URL, add it under the client's subscription groups and update it. To import a single share link, use the clipboard import option. Subscription URLs may contain credentials; don't post them publicly in comments or include the full URL in troubleshooting screenshots.
Select a server configuration, choose a suitable proxy mode, and test access in your browser. The system proxy determines how apps send traffic to the client; routing rules determine where that traffic goes next. Keep the initial setup simple, then add routing rules and TUN after confirming the connection works. This makes issues easier to isolate.
Back up subscription groups, manually added servers, custom routing rules, and DNS settings. Updating a subscription refreshes server configurations; it doesn't update the client. Updating the client doesn't refresh subscriptions either. Test your existing connection after an update, then restore advanced settings one at a time to avoid changing multiple variables at once.
For download issues, distinguish transfer problems from installation problems
An incomplete browser download, interrupted connection, or file still downloading is a transfer problem. Architecture incompatibility, missing dependencies, or a signature conflict reported after the file is saved is an installation problem. Note the exact message and troubleshoot the relevant step instead of repeatedly trying packages for different platforms. If the download completes and the client launches but a subscription won't update or a server can't connect, troubleshoot the network configuration rather than switching installers.
When switching clients, a successful import only means the configuration was read; it doesn't guarantee support for every advanced parameter. Check the protocol and transport, then confirm the core and client configuration interface support them. Project V, V2Fly, and Xray are part of a related open-source ecosystem; available features depend on the specific release. Choose a client based on your configuration requirements, not just its interface name.
Download and installation FAQs
Check the package type first, then address any installation prompts. These questions cover download choices; for subscription updates and connection issues, see the FAQ.
Should you download v2rayN Desktop or WPF for Windows?
For a new installation, start with Desktop, which uses a next-generation cross-platform interface. Choose WPF if you prefer the classic Windows interface. Both editions require the runtime environment specified for the current release. Back up your subscription groups and routing settings before switching, and don't let both clients control the system proxy at the same time.
Which Android version should you choose: arm64 or universal?
Most mainstream phones released since 2015 can use arm64, but check which architectures your device and Android version support. If you can't confirm the architecture, or the arm64 package reports incompatibility, choose the universal version. It includes files for more architectures and is usually larger.
How do you choose the right macOS download?
Open About This Mac from the Apple menu. If the chip is an Apple M series, choose the Apple Silicon arm64 package. If the processor is Intel, choose the Intel x64 package. If you see a security warning after installation, verify the download source, then follow the instructions under Privacy & Security in System Settings.
Can you use deb and rpm packages interchangeably on Linux?
Choose the package format natively supported by your distribution. Debian, Ubuntu, and common derivatives generally use deb; Fedora, RHEL-based, and related distributions generally use rpm. Match the x64 or arm64 architecture too, and check the system library versions required by the release.
Why can't you connect right after installing the client?
The client imports and uses server configurations; the installer does not include a subscription or working servers. Import a valid share link or subscription URL, select a server, then configure the system or app proxy. Verify a basic connection first, then configure routing rules and TUN as needed.
What should you back up before updating, and why might the displayed version differ from the filename?
Before updating, back up subscription groups, manually added servers, routing rules, and custom DNS settings, then quit the running client. The version shown on the page and the filename come from different manifest fields, so they may temporarily differ during release maintenance. Don't edit download URLs based on that difference; check the installed version in About and consult the release notes.
After installation, continue with the user guide. For help with subscriptions, proxies, or routing, see the FAQ.