Client Selection and Setup Guides

V2Ray Clients Downloads and Setup

From the v2rayN desktop client to mobile, follow the actual menus to import subscriptions and configure routing.

Open source Chinese-language instructions

Choose by device

V2Ray Client Downloads

View all clients →

Start with v2rayN on desktop and v2rayNG on mobile. Check your operating system and processor architecture before choosing an installer. The client reads your configuration; you’ll need to obtain a subscription or node separately.

Windows

v2rayN comes in a desktop edition and a classic WPF edition. New users can start with the desktop edition. If you’re familiar with the original interface, compare the editions’ system requirements and workflow before choosing.

Go to downloads

macOS

Use the v2rayN desktop edition. Check your chip under About This Mac and choose the Apple Silicon or Intel download. Pay attention to macOS security prompts the first time you open it.

Go to downloads

Linux

Use the v2rayN desktop edition. Choose the deb or rpm package for your distribution, then check whether your system uses x64 or arm64. Whether apps can use the system proxy also depends on your desktop environment and app settings.

Go to downloads

Android

Start with v2rayNG, which uses the Xray core. Choose v2flyNG if you need the V2Fly core. Most recent phones use arm64; if you’re unsure of the architecture, check the universal build notes first.

Go to downloads

Get the installer and connection settings separately

An empty server list after installation is normal. The client doesn’t include working nodes or generate a subscription for your device. Get configuration details from a service you’re authorized to use, and check that the subscription is still valid. Don’t use the example.com address shown in this guide as your actual subscription URL; it’s only there to demonstrate the format.

Desktop and mobile settings don’t need to match exactly

Whether a subscription works across clients depends on its format, protocol parameters, and core support—not just the client name. “Set system proxy automatically” on desktop and VPN connection authorization on mobile are different mechanisms. When switching devices, you may be able to reuse valid service parameters, but configure local ports, app traffic handling, and battery management for each device.

Four common settings

Subscriptions, proxies, and routing

Import your configuration first, then direct apps that need a proxy to the right entry point. The examples below use common v2rayN menus as a guide; menu locations may vary by interface, so follow the options shown in your version of the client.

Start with a valid configuration
Subscription Group SettingsInterface example
Subscription URL · examplehttps://example.com/subUpdate subscription (without proxy)

A subscription keeps the addresses and connection parameters for a group of nodes in one place, making it useful when configurations need regular updates. In “Subscription Group Settings,” create a group, enter the full URL, and save it. Then use the “Subscription Groups” menu to update it. If you haven’t established a connection yet, try “Update subscription (without proxy).” After importing, check the node names, protocols, and group. If the list is empty, review the update log instead of repeatedly adding the same group. Subscriptions make bulk management easier than entering nodes one by one, but their URLs may contain access credentials, so don’t share them publicly.

View subscription import steps

From installation to testing

Get started with v2rayN

View the full guide →

For your first setup, establish one verifiable connection before configuring startup, fine-grained routing, or LAN sharing. These three steps follow their dependencies and are designed for a fresh install with an empty server list.

1

Install the client and import a subscription

Download the client for your device, install it, and open the main window. In v2rayN, add the URL under “Subscription Group Settings,” save it, and update the subscription. To import a node from the clipboard, first make sure you copied the complete content, then use the appropriate import menu. A regular webpage URL isn’t a node link.

After the update, the configuration should appear in the server list. Check the group and protocol, then select a node to use. If parsing fails, note the reason in the log and check the configuration source and format. Reinstalling the client usually won’t fix an expired or invalid subscription URL.

2

Choose a node and proxy method

Set the node you want to use as the active server and wait for the core to start. On desktop, select “Set system proxy automatically” from “System Proxy” and leave routing at its default settings for now. Don’t enable the system proxy in multiple clients at the same time; the one started last may overwrite the address and port set by the other.

With v2rayNG on a phone, start the connection and approve the VPN prompt from the operating system. This is different from the proxy menu on a computer. If another app also captures network traffic, decide which app should handle it before testing further, so a traffic-capture conflict isn’t mistaken for a node issue.

3

Test a request and restore your settings when done

Open a page you know should be accessible and see whether it loads. Then check the client logs to confirm the request reached the local entry point. A latency test only reflects the result for that particular test method. It doesn’t replace testing a real webpage, download, or target app, and it isn’t a direct measure of usable bandwidth.

If the connection fails, check the local listener and system proxy first, then verify the node parameters and server reachability. When testing is complete, clear the system proxy on desktop, exit the client, and confirm your regular network connection is restored. Once you know how, you can tell the difference between a node change and leftover system settings when switching nodes later.

Keep useful details when troubleshooting

Before troubleshooting, note where the error occurred: during a subscription update, core startup, or access to a webpage. Log messages such as “parse failed,” “connection refused,” and “connection timed out” point to different layers and require different fixes. Keep the time and error text, but redact subscription URLs, user IDs, and node credentials before asking for help. The full guide follows the setup process; the troubleshooting page groups issues by symptom. Use the former to configure the client and the latter to narrow down a problem.

Find fixes by symptom →

What clients and cores do

The open-source Project V ecosystem

V2Ray is a technology name in this ecosystem; v2rayN and v2rayNG are the clients users interact with directly. Understanding the difference between the interface, core, protocol, and service configuration is more useful than choosing software by name alone.

How Project V and V2Fly are related

Project V offers modular tools for proxy communications, with V2Ray as one of its widely used core projects. The V2Fly community continues to maintain V2Ray-related implementations and documentation, so you may see Project V, V2Ray, and V2Fly in client guides, configuration references, and error logs. These aren’t three interchangeable download options. When reading the documentation, first check whether it’s discussing project background, a core implementation, or a specific graphical interface.

Graphical clients organize common settings into menus and forms; the core interprets the configuration and handles connections. Changes to entries in the server list typically affect the runtime configuration generated by the client. Core-related settings may affect protocol support, DNS resolution, or routing behavior. Understanding this distinction helps you decide whether to check a UI action or connection parameters when an error occurs.

Xray vs. V2Fly cores

Xray is an independent core project that grew out of the V2Ray technology lineage. It shares historical roots with the implementation maintained by V2Fly, but their ongoing feature development and configuration support aren’t identical. Even nodes using the same protocol, such as VLESS or VMess, may come with different transport, security, and extension parameters. To check compatibility, compare the full parameters with the core bundled in your client rather than looking at the protocol name alone.

Choosing a core is primarily about compatibility, not a simple speed ranking. Server requirements, the fields supported by the client, and network conditions can all affect the result. If a configuration works on one device but not another, compare core and parameter support first, then check whether copying or subscription conversion dropped any fields. Don’t assume the device lacks sufficient performance.

What the three open-source clients do

v2rayN is designed for desktop use, with menus for server lists, subscription groups, system proxy, and routing. Its desktop edition uses a cross-platform interface, while the classic WPF edition is for users familiar with the original UI. v2rayNG is designed for mobile devices and uses the Xray core, making it a good first choice on phones. v2flyNG offers an alternative based on the V2Fly core for configurations that require its capabilities.

All three clients are open source. Check each project’s license for terms on redistribution and modification; client and core licenses should be considered separately. Open source helps you understand how software works and how it’s maintained, but it doesn’t replace checking your subscription source, permissions, or local settings. This site’s download links and guides are not a proxy service and don’t guarantee that a connection will work.

Before updating, identify what’s changing

A client update may change the interface, configuration generation, or bundled core. A subscription update mainly refreshes the server list and parameters; these are different operations. If a menu has moved, search for it by function rather than changing a working configuration to match an old screenshot. The download page covers installers and platform requirements; the homepage doesn’t use a specific release number as a basis for choosing a client.

Before updating, note the node group, proxy method, and custom rules you’re using. If needed, save your configuration with the client’s built-in tools. After updating, test the basic connection first, then check custom routing and LAN sharing. If an issue started after the update, use the logs and configuration changes to narrow it down. Don’t change subscriptions, switch cores, and rewrite rules at the same time, or it’ll be hard to identify the cause.

Read about a specific issue

Setup and troubleshooting guides

View all articles →

Once you have a basic connection, explore guides for your device and use case. Protocol choices, system permissions, and sharing settings all have specific requirements. Start by identifying the problem you need to solve; it’s usually easier to verify the result than changing every advanced setting at once.