v2rayN · Download & Setup Guides

Download v2rayN

Choose a client for your platform, then start with importing a subscription. Next, configure proxy mode and routing. Verify the connection before changing advanced settings.

Free forever Open source Chinese-language docs

Import subscriptions and choose a proxy modeand routing rules

Understand five core features in setup order. The right side shows a static settings preview; menu names may vary by client version.

Subscription Group Settings

RemarksMy subscription
EnabledOn
Subscription actionsUpdate subscription
After the updateSet as active server

Workflow: save the group → retrieve configurations → select a server.

Start by separating three configuration layers. Subscriptions retrieve server details; the system proxy or TUN passes app traffic to the client; routing determines where that traffic goes. These layers work together but are not interchangeable. Updating a subscription does not prove the proxy is working, and enabling the system proxy cannot fix errors in the server configuration. Check them in this order to avoid jumping between unrelated menus.

For your first setup, keep the defaults and establish one connection you can verify. Once you can access a website, add groups, scheduled updates, routing exceptions, and TUN as needed. Change one type of setting at a time and note what you changed and how you tested it. For a step-by-step walkthrough, read the subscription import guide. To understand how the settings fit together, see the complete guide from beginner to advanced.

Choose by operating systemand select a client installer

For desktop, choose v2rayN; on Android, start with v2rayNG. On the download page, check your processor architecture and package format.

Windows

Choose the v2rayN desktop edition or the classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the classic layout. Choose based on your preferred workflow and system compatibility; they are not different proxy protocols. Check the download page for installation instructions and requirements for your system and processor.

After installation, launch the client, add a subscription, select an active server, and then configure the system proxy. If an older client is still running in the background, quit it first to prevent local port conflicts. Before upgrading an existing installation, back up your subscriptions and custom routing rules, keep a restorable copy of your settings, and test the apps you use regularly.

Download for Windows

macOS

Before choosing v2rayN, open About This Mac to check your processor. Apple Silicon uses the arm64 download; Intel uses x64. Don't guess based on the computer's appearance or purchase year, and don't use a package built for a different processor.

On first launch, follow the system prompts for app permissions. If the system blocks the app, check the message and system requirements rather than disabling security protections just to complete installation. After importing a subscription, check the active server and system proxy separately. If a browser connects but other apps do not, check whether those apps use the system proxy. If they need full traffic capture, read the TUN guide and confirm the required permissions.

Download for macOS

Android

Start with v2rayNG using the Xray core; if you need the V2Fly core, look into v2flyNG. Most recent phones use arm64 packages. If you're unsure of the architecture, check your device information and the download notes before considering a universal package. The two clients manage configurations separately, so don't assume subscriptions and rules will be shared automatically.

After pasting the subscription URL and updating it, select a node, start the connection, and respond to the system VPN permission prompt. Usually, only one app can use the system VPN connection at a time, so stop the current connection before switching clients. If the connection drops when the app moves to the background, check battery optimization and background activity restrictions. If it never connects, start by checking the node configuration and logs.

Download for Android

Linux

When choosing v2rayN, check both your distribution's package system and your device architecture. Choose the matching download for distributions that use deb or rpm packages; for arm64 devices, use the corresponding architecture option on the download page. The right package format does not guarantee that all dependencies are installed, so read each installation prompt carefully.

Desktop environments, system proxy implementations, and permission models vary. For your first test, explicitly configure your browser to use the local proxy provided by the client, then check the desktop environment's proxy settings. Before enabling TUN, confirm how to grant permissions and check for conflicts with existing virtual adapters. The graphical client is enough for everyday subscription and server management; you don't need to set up a router solution first.

Download for Linux

The installer installs the client; it does not include a ready-to-use server subscription. Get subscription URLs and server settings from trusted sources, and use them in accordance with local laws and network service terms.

View all clients →

Project V ecosystemand open-source clients

Understand the difference between projects, cores, clients, and server configurations before deciding what to install or update.

From interface to connection

Graphical client
v2rayN · v2rayNG · v2flyNG
Core family
Xray · V2Fly
Connection configuration
Protocols, transport, encryption, and server settings
Local traffic routing
System proxy, app proxy, or TUN

This diagram shows distinct responsibilities; it does not mean every client supports every combination shown.

Compare V2Ray cores →

Project V: Understand the ecosystem first

V2Ray originated in the Project V ecosystem and is often used as a broad term for related proxy technologies and tools. In everyday searches, “V2Ray client” usually means a graphical app for managing configurations, not a specific installer. The client organizes subscriptions, servers, and routing settings in an interface, then relies on a core to handle connections. Understanding this distinction helps keep client downloads, server configuration, and core updates separate.

The fact that multiple clients can read the same share link does not mean every advanced field will transfer correctly. Before importing, check whether you have a subscription URL, a single share link, or a native configuration file; each serves a different purpose. For your first setup, follow the client interface to establish a working connection, then explore protocol and transport details.

V2Fly vs. Xray: Choose based on configuration support

V2Fly continues community development of a V2Ray-related core, while Xray is a separate core lineage built on related technology. They share some concepts and protocol background, but their feature support, configuration fields, and development paths differ. Start by checking the protocol and transport required by the server, then confirm which cores the client actually supports. Similar names are no substitute for compatibility checks and don't predict which will be faster.

If a configuration relies on a feature specific to one core, use a client and core combination that supports it. If switching leads to startup failures, unrecognized fields, or handshake errors, start with the specific error in the logs. Keep a working configuration before experimenting; you'll find the cause more easily than by changing the core, DNS, routing, and transport all at once.

Three clients: open source doesn't mean the same interface

v2rayN, v2rayNG, and v2flyNG are free, open-source client projects released under the GPL-3.0 license. The license sets the terms for using, modifying, and redistributing code; it does not replace server service terms or make every subscription source trustworthy. Desktop and Android clients differ in interface, permissions, and network integration. When following a guide, first confirm which client it covers, then look for the matching menus.

v2rayN is for desktop systems and helps manage subscriptions, servers, and routing in one place. v2rayNG is for Android and uses the Xray core; v2flyNG is an Android alternative using the V2Fly core. Choose based on platform and configuration compatibility. There's no need to run multiple clients just to get more features. Before switching, keep a copy of your existing configuration and verify subscriptions, connections, and routing one by one.

Updates: manage the app, core, and subscription separately

Client updates change the interface and app logic; core updates affect protocol handling and connection capabilities; subscription updates retrieve server details again. These are separate operations: updating the app won't automatically fix an expired subscription, and updating a subscription won't add features to an outdated core. When troubleshooting, choose the update that matches the source of the problem instead of treating “update everything” as the only solution.

Before upgrading, back up custom routing rules, subscription groups, and important settings, and review the release notes. After upgrading, test a previously working server, then check local network access, frequently used apps, and DNS. Treat credentials in subscription URLs like account information. Before sharing screenshots or logs, redact URL parameters, user identifiers, and server authentication details. To document a problem, keep the error type and steps that triggered it.

Common questions before connecting

Why can't I connect right after importing a subscription?

Importing a URL only saves the source; updating the subscription retrieves server details. Once they're available, select a server, set it as active, and route app traffic through the system proxy or another connection method. If the server list is empty, check the update error first. If servers appear but none connect, check the server and local traffic routing. Follow the subscription import steps to verify each part.

Are the system proxy and global routing the same setting?

No. The system proxy determines whether apps that honor system settings send requests to the client. The routing mode determines what the client does with those requests. Even with global routing enabled, an app that ignores the system proxy may never reach the client. Check traffic entry first, then routing, to avoid mistaking an app proxy issue for a server failure. See the proxy setup guide for the recommended order.

How can I confirm the connection is actually working?

Don't rely on the start button or a single latency reading. Run the connection test provided by the client, then check access in the app you want to use and compare the exit IP with the logs. A successful test does not mean every app uses the same network path; with split routing, different destinations may use different exits. Use the connection verification checklist to test both proxied and direct destinations.

Should I change DNS first when a website won't load?

First determine whether all connections fail or only certain domains. Certificate errors, authentication failures, and unreachable servers usually aren't fixed by changing DNS. Once the basic connection works, check the DNS response, DNS request path, and routing rules for consistency. Record the original settings and change one thing at a time. For more, see the DNS settings guide.

V2Ray setup guidesand connection troubleshooting

From your first connection to diagnosing routing issues and router deployment, choose the guide that fits your current problem. There's no need to change every setting at once.

Getting Started

v2rayNG First Connection Guide: Select a Node, Run a Real Connection Test, and Verify Proxy Routing

Starting after a subscription update, this guide covers selecting a node, running a real connection test, and verifying the proxy route using the exit IP and actual site access. Learn to distinguish an open TCP port from a successful end-to-end request, and don't treat a single latency reading as proof that every connection works.

Read the first-connection checklist →

When you see a specific error, note the client, steps taken, and exact error text before choosing a guide. Hide subscription credentials when describing the issue; include only the configuration type and error context needed to troubleshoot.

View all articles →