Desktop client · Setup guide

V2Ray for Macv2rayN Client

From subscription import to routing, configure the open-source client step by step, and understand system proxy, TUN, and core settings.

Free forever Open source Xray-core · sing-box

Client controls

Subscriptions, proxy, and routing
Configure separately, then verify each

The graphical client manages connection profiles and runtime status; the core handles traffic. A successful import, a running core, and an app using the proxy are three separate checkpoints. Get one connection working first, then expand the rules and traffic coverage. This makes it easier to pinpoint what changed when troubleshooting.

Subscription group settings

Group namePersonal subscription
Subscription URLUse your own subscription link
Update subscriptionFetch server profiles
After updatingCheck active server and protocol

This interface illustrates the general control layout. Menu labels vary by platform and build, and ports can be changed by the user. To check a configuration field, first confirm which core the client is using, then consult the corresponding configuration structure. Do not copy graphical interface labels as JSON fields.

Read the configuration reference →

Choose a build

Choose a client for your OS and processor

For desktop, choose v2rayN. For Android, start with v2rayNG; v2flyNG is an alternative for the V2Fly core. The same OS does not mean packages are interchangeable: check the processor architecture and package format before downloading. Once installed, configure the client with an existing server profile or subscription.

Windows

v2rayN · Desktop / WPF

The desktop download page offers a new cross-platform interface and the classic WPF version. If you're installing for the first time, review the interface differences on the download page and choose the build that fits your environment. If your current setup is stable, back up subscription groups, custom rules, and related settings before updating.

Install the program in a directory you can write to, rather than running it from inside the archive. If a runtime prompt appears at startup, follow its instructions to install the required dependencies; a window that fails to open does not necessarily indicate a server problem. Even when the system proxy is active, check whether your browser uses a separate proxy extension and whether another program is occupying the local listening port.

Go to downloads

macOS

v2rayN · Apple Silicon / Intel

Check the chip in About This Mac: Apple Silicon means arm64, while Intel processors use x64. Choosing by chip is more reliable than guessing from the computer's appearance or purchase date. After installation, launch the app from Applications and follow the system prompts to allow it to open.

Use the menu bar to switch the system proxy and check the client's status. If you need TUN, first confirm that the current build supports it and check its permission requirements. Avoid running multiple traffic-intercepting tools at the same time. If the connection remains active after closing the main window, check whether the client is still running in the menu bar. Before quitting, make sure the system proxy settings have been restored.

Go to downloads

Android

v2rayNG · v2flyNG

v2rayNG uses the Xray core; v2flyNG uses the V2Fly core. Most newer phones can use arm64. If you are unsure of your device's architecture, check the universal build option on the download page. The client names are similar, but core capabilities and configuration support differ; don't rely on the app icon alone.

The first connection requires authorization for the system's VpnService. After granting permission, test the connection. If it frequently drops in the background, check battery optimization and your device manufacturer's background restrictions. Per-app proxy settings control which apps are included, so read what “selected apps” means before changing it; it is easy to confuse included apps with bypassed ones. Other network-intercepting apps running at the same time can also affect authorization and traffic routing.

Go to downloads

Linux

v2rayN · deb / rpm

First confirm which package system your Linux distribution uses, then choose between x64 and arm64. deb and rpm are different package formats and cannot be swapped by simply changing the file extension. The download page provides separate options for desktop environments that support installation through a graphical package manager.

Desktop environments differ in how they use the system proxy, so a working browser does not mean every app will follow it. On first launch, check the core startup logs, then test the specific app that needs network access. Before enabling TUN, verify permissions and how networking is managed. If there is a conflict, disable other virtual interfaces or traffic-intercepting apps first. Keep the smallest configuration that reproduces the issue, and avoid changing DNS, routing, and servers all at once.

Go to downloads

The download page lists installers and system requirements. Keep your original subscription details before switching clients; exported runtime configurations may contain automatically generated fields and should not be migrated directly to another core.

Browse all clients →

Open-source ecosystem and configuration boundaries

Project V, V2Fly, and Xray

V2Ray is a common name in discussions of the ecosystem and its technology, but actual capabilities depend on the client, core, and configuration working together. Understanding these as separate layers helps you determine whether a build, guide, or protocol setting applies to your environment—and avoid assuming that an importable profile will necessarily connect.

Project V's modular approach

Project V takes a modular approach to network proxy tools, with V2Ray as one widely used implementation. Its configuration organizes behavior into sections such as inbounds, outbounds, routing, and DNS: inbounds accept connections from local apps, outbounds define how to reach a destination or proxy server, and routing selects the outbound. This structure lets you configure protocols and traffic handling separately, but a working connection often depends on several sections. Checking only the server address is not enough when troubleshooting; the local port, transport settings, and routing destination must also line up.

V2Fly and Xray

V2Fly continues community maintenance and development of V2Ray, while Xray grew from related code into a separately developed core project. The two share technical roots, but their later features and supported parameters are not identical. When you see VMess, VLESS, or another protocol name, also check the required transport, security settings, and core implementation. Similar-looking configurations are not necessarily interchangeable across cores. sing-box has its own configuration system too, so use its syntax rather than pasting in Xray routing snippets.

What the three graphical clients do

v2rayN is for desktop use, with controls for server management, subscription groups, the system proxy, and core settings. v2rayNG targets Android, using the Xray core and the system's network service APIs to handle connections. v2flyNG is another option for Android users who need the V2Fly core. All three are open-source software, with source code available for community review and collaboration. A graphical interface reduces the need to write configuration by hand, but it cannot provide valid server details or automatically fix incorrect credentials or server-side transport settings.

Open-source licenses and service providers

Open-source licenses set the terms for using, modifying, and distributing code; they are not terms of service for proxy services. The client, core, and packaged dependencies may each have different licenses. If you redistribute them, review the relevant project licenses and notices. Free client software does not mean the client project provides server connection details. Check availability, credentials, and permitted use with the subscription provider. Before sharing a configuration publicly, remove subscription URLs, user IDs, passwords, and any other information that could provide access to a personal service.

Client and core updates

Client updates, core updates, and rule-set updates address different things. A client update may change the interface or how it generates configuration; a core update may change protocol implementation and parameter requirements; a rule-set update affects domain or address classification. Before updating, save a known-working configuration and read the release notes. Then verify the update using your usual test steps. If parsing fails, start with the field and file location named in the logs. Do not upgrade, switch protocols, and replace routing rules all at once. Change one variable at a time to identify the cause.

From connection checks to routing checks

First confirm the core starts, then check the local listener, and finally verify that the app is actually using the proxy. A webpage loading is only one result; it does not prove that every app or request uses the same outbound. Once the basic connection works, test local network access, rules for specific domains, and DNS behavior. A latency test checks one probe path and does not guarantee that a full application connection will succeed. If timeouts persist, check the system clock, port, firewall, credentials, and transport settings in that order instead of deleting every server based on a single test.

How to read the configuration reference

If you already have a working connection, start with the relationship between outbound tags in outbounds and rules in routing. To troubleshoot local connections, begin with the inbounds listen address, protocol, and port. For domain resolution, look at dns together with the routing resolution strategy. Policy settings are usually not required for an initial setup; change them only when you have a specific need. Examples explain how fields relate, but before combining snippets, check the full configuration structure for your current core and keep a copy of the original settings that work.

Guides and troubleshooting

Recently updated guides

Guides cover practical client tasks. If you run into background disconnections, local network sharing, or startup issues, find the matching symptom and follow the checks in order. Before changing permissions or firewall settings, understand what they affect and keep a way to restore the previous settings.

Download v2rayN