Skip to content
Desktop Client Setup GuideFrom installation to traffic routing

V2Ray Mac Client v2rayN Download & Setup

Choose the installer for your chip, then set up subscription imports, system proxy, and traffic routing. Fine-tune DNS and TUN afterward.

PROTOCOLS VMessVLESSTrojanShadowsocks
DESKTOPv2rayNDesktop setup
ANDROIDv2rayNG / v2flyNGChoose based on core requirements
CORE FAMILYXray · V2FlyProtocol support depends on the selected core

Download Clients

Choose an Installer by OS and Chip

Browse All Clients →

Start with v2rayN on desktop or v2rayNG on Android. Check your operating system first, then your processor architecture—don’t infer whether you need arm64 or x64 from a device’s appearance. The download page lists installers for each platform, with version details on the corresponding client cards.

Windows

v2rayN · Desktop / WPF

The desktop edition uses a cross-platform interface, while the WPF edition retains its classic layout. If you already have a configuration, back it up before choosing the version that suits your workflow. For a fresh install, check the download page’s system requirements, and don’t configure both versions as the system proxy at the same time.

Go to downloads Windows client→

macOS

v2rayN · Apple silicon / Intel

Open About This Mac from the Apple menu. Choose arm64 if it shows an Apple chip, or x64 if it shows an Intel processor. After downloading the disk image, move the app to Applications before opening it rather than running it from the mounted image.

If macOS shows a security alert on first launch, verify the source and app name, then review the relevant notice under Privacy & Security. Start by testing browser access with the system proxy. Once the subscription and server settings are confirmed, consider enabling TUN, which requires additional permissions.

Go to downloads macOS client→

Android

v2rayNG · v2flyNG

For most phones, start with the arm64 package; if you’re unsure of the architecture, try the universal package. v2rayNG uses the Xray core, while v2flyNG is an alternative with the V2Fly core. Review Android’s VPN permission prompt before connecting, and check whether battery settings restrict background activity.

Go to downloads Android client→

Linux

v2rayN · deb / rpm

Choose a deb or rpm package to match your distribution, then check whether you need x64 or arm64. Whether desktop apps follow the system proxy depends on your desktop environment. After installation, check proxy settings, the local listening port, and the app’s own network options.

Go to downloads Linux client→

The client manages local settings but does not include a working subscription. Before installation, obtain a subscription URL or complete server settings that you’re authorized to use, and keep a record of their source. Subscription links often contain access credentials, so don’t post them in public comments or screenshots.

v2rayN Settings Guide

System Proxy, Routing, and Subscription Management

Think of “how traffic reaches the client” and “which route it takes afterward” as separate questions. The system proxy and TUN handle traffic capture; routing rules choose the outbound path; DNS determines how domain names resolve. Check settings in the order below to narrow down problems instead of enabling every option at once.

System Proxy: Start with Your Browser

The system proxy directs apps that follow your system network settings to the client’s local port. After importing a subscription and selecting a node, choose “Set System Proxy Automatically” from the status menu, then test with a browser. “Clear System Proxy” restores the system proxy settings; “Do Not Change System Proxy” simply leaves the current settings untouched—it does not mean an existing proxy is off. Unlike configuring ports in each app, the system proxy is an easy way to get started on desktop, but it won’t cover every program. If an app still connects directly, check whether it uses the system proxy before configuring it separately or trying TUN.

  • Make sure the client core is running and the local port is not already in use.
  • Clear the system proxy before quitting to avoid leaving behind an unreachable local endpoint.
  • Browser proxy extensions can override system settings. Disable any conflicting extensions while troubleshooting.

System Proxy · Status Menu Options

Clear System Proxy
Set System Proxy Automatically
Do Not Change System Proxy

Labels in the interface may change with client updates. If a label differs, look for the relevant setting under System Proxy, Routing, Subscriptions, or Core instead of relying on a screenshot from another platform. The window illustration shows how settings relate to one another; it does not mean a working configuration is included after installation.

View Setup Guides for All Platforms →

Getting Started

From Subscription Import to Connection Test

Read the Full Guide →

For your first setup, follow the shortest path: add a subscription, select a node, enable the system proxy, and test with a browser. Once the basic connection works, add custom rules and TUN. This gives you a repeatable starting point and a known-good setup to return to if later changes cause problems.

  1. 01 / IMPORT

    Import a Subscription and Refresh the List

    Create a group under “Subscription Groups,” enter a recognizable alias and the complete subscription URL, save it, and update. Check that configurations appear in the list, then select a node to use. If you have a share link, use the client’s import option instead of pasting it into the subscription URL field.

    If the list is still empty, check the update result first: an expired URL, incompatible response, and connection timeout each need a different fix. Make sure your computer’s clock is correct, and that the copied URL has no quotation marks, spaces, or line breaks from a chat app. If the source is unreachable, compare direct and proxied update paths rather than repeatedly deleting the entire group.

  2. 02 / ROUTE

    Enable the System Proxy and Set Basic Routing

    After selecting a node, confirm that the core has started, then set the system proxy to “Set System Proxy Automatically.” Start with a routing preset suited to your needs. If you’re unsure whether the rules are affecting access, temporarily switch to Global mode for comparison. Global routing does not capture traffic from every app; traffic still needs to enter the client.

    Keep TUN off for now to reduce variables such as permissions, virtual adapters, and other VPNs. If your browser has a proxy extension, disable it or make sure it points to the same proxy as the system settings. If your work network uses a dedicated proxy, note the existing settings so you can restore them. On Android, approve the VPN connection when prompted.

  3. 03 / VERIFY

    Test Access and Save a Working Configuration

    Open a browser and visit a destination you want to test while checking the client logs. Test one destination expected to connect directly and another expected to use the proxy, then compare the results with your rules. A single connectivity test or latency reading reflects only that test destination; it doesn’t replace checking actual websites, sign-ins, and app features.

    If the client shows connected but web pages won’t load, check the system proxy, local listening port, routing, and DNS in order instead of reinstalling immediately. If only one app fails, check its separate proxy settings. Once everything works, save the configuration. Before quitting, clear the system proxy and stop traffic capture. Continue with the Getting Started guide for complete setup and recovery steps.

The Project V Ecosystem

How Clients, Cores, and Protocols Fit Together

Project V is a useful starting point for understanding the V2Ray ecosystem. Graphical clients organize subscriptions, nodes, and rules in an interface; cores read the configuration and establish connections; protocols such as VMess, VLESS, Trojan, and Shadowsocks define different ways of communicating. Each layer has a distinct role, so installing a V2Ray client doesn’t guarantee support for every protocol feature. Check the core, transport, and server settings as well.

The V2Fly community continues work on projects related to V2Ray, while Xray has developed its own core features and configuration system from related technical foundations. The two share some terminology, but their features have evolved differently. When following a guide, check which core it covers and compare its instructions with the current client interface. Similar names for DNS, routing, or transport security settings don’t mean you can copy them unchanged; unknown fields or unsupported combinations may cause the core to fail at startup.

v2rayN: Desktop Interface

v2rayN is an open-source desktop client distributed under the GPL-3.0 license, with configuration management and access to multiple cores. On desktop, distinguish the window state from the core’s runtime state and the system proxy state. The main window opening does not mean the core loaded its configuration successfully; selecting a node does not mean the system proxy points to the local listening port.

When moving to another computer, save subscriptions and routing as configuration data, but recheck app paths, permissions, and network settings for the new platform. Starting with a basic configuration and restoring custom rules afterward is usually easier to troubleshoot than transferring everything at once.

v2rayNG: Android and Xray

v2rayNG is an open-source Android client distributed under the GPL-3.0 license and powered by the Xray core. On Android, it captures app traffic through the system VPN interface, unlike the system proxy on desktop. Connection permissions, background restrictions, per-app settings, and conflicts with other VPNs can all affect how it works.

If the same subscription works on desktop but fails on a phone, first check the phone’s clock, current network, and core support, then review the transport settings. Don’t assume different devices have identical protocol support and defaults just because their client names are similar.

v2flyNG: An Alternative with the V2Fly Core

v2flyNG is an open-source Android client distributed under the GPL-3.0 license that offers another configuration option with the V2Fly core. It may be useful when comparing V2Fly behavior or working with configurations designed for it. Choose an alternative based on protocol compatibility and configuration needs, rather than installing both clients and repeatedly switching between them.

For a meaningful comparison, use the same network and settings, and make sure only one VPN connection is active. Clients may convert subscription formats differently, so after importing, check that the node details still include the fields required by the server.

Open-Source Licenses and Routine Updates

Open-source licenses define the terms for using, distributing, and modifying code. Check the license for each project and included component to understand which terms apply. A client, its core, and bundled components may each have different licenses. Open source doesn’t mean licensing terms can be ignored, nor does it mean a third-party subscription service is provided by the client project. This site compiles download and setup information; the client project, subscription source, and destination websites each have separate roles.

Handle updates by layer: client updates can change the interface and configuration management; core updates may change protocol support; subscription updates refresh node information from a source; and routing resource updates affect rule matching. If something breaks, note which layer changed, keep a working backup, and restore only what’s needed. “Update Subscription” does not update the client, and you shouldn’t replace every component to fix a single node.

For cross-platform setup, see the All-Platform Guides and follow the steps for downloading, installing, importing, and testing. During troubleshooting, record the error and the steps that led to it. Before asking for help publicly, remove subscription URLs, authentication details, and private node parameters so you don’t expose reusable credentials.

Setup and Troubleshooting Notes

Connection Errors, Web Access, and Subscription Updates

Browse All Articles →

Choose an article based on what’s happening. For node timeouts, focus on connection settings and logs. If a browser can’t open pages, check traffic capture and DNS. If a subscription update fails, start with the source and request path. Troubleshooting these issues separately helps avoid changing settings in the wrong layer.

V2Ray Client Downloads