Clients and Chinese setup documentation

V2Ray Official Site
v2rayN Client and Setup Guides

A focused collection of desktop and Android clients, Chinese setup steps, and advanced routing guidance. Choose a client for your platform first, then import a subscription and confirm the proxy mode.

Free forever Open source Xray · V2Fly VMess / VLESS / Trojan
Choose a client → Import a subscription → Set up the proxy Open the download section for your platform
Configuration Flow

From client selection to a stable connection

Break a complete setup into five connection points. Each step addresses one question, so you do not have to guess between the client, subscription, proxy mode, and routing rules.

Choose a Client for Your Platform First

For desktop systems, start with v2rayN. It brings server lists, subscription groups, system proxy settings, routing rules, and core logs into one interface, with a similar workflow for Windows, macOS, and Linux users. Android devices typically use v2rayNG; choose v2flyNG when the V2Fly core family is required. Before downloading, confirm your operating system and processor architecture instead of guessing afterward whether the package will install. This avoids choosing the wrong package and reduces unnecessary configuration migration.

Update the Subscription Manually After Importing It

A subscription URL is not the server itself; it is a configuration list maintained by the service provider. After copying the URL, add a record from the client's subscription management menu, then run a manual update so the servers are written to the local list. Name multiple subscriptions separately and group them by source to make invalid URLs easier to trace later. If the list is empty after an update, first check that the URL is complete and that group filters are not too restrictive, then review the subscription update log. There is no need to repeatedly delete the client.

Separate Client Operation from the System Proxy

A successful core startup only means that the local proxy port is listening. Whether a browser or another program uses that port also depends on the system proxy, the app's own proxy settings, and TUN mode. For an initial setup, select one server, enable the system proxy, and verify it in a browser. Terminal programs often do not read desktop proxy settings automatically, so they may need separate environment variables or app options. Check whether the core is running separately from whether traffic is entering the proxy; this quickly narrows the problem.

Let Routing Rules Handle Different Traffic

Routing determines whether domain, IP, or application traffic goes through the proxy, connects directly, or is blocked. New users can start with the client's built-in basic rules and add custom entries only after confirming that the connection works. Rule order affects matching: specific domains and network ranges generally belong before generic rules so they are not matched too early. Restart the core after changes and observe the actual access results. Unlike tools with a single on/off switch, the V2Ray ecosystem lets you manage inbounds, outbounds, DNS, and routing together, but it also requires clear rule boundaries.

Use Logs to Find Where the Flow Stops

When a connection fails, start with the client's status bar and core logs instead of changing the subscription, port, DNS, and routing all at once. A port-in-use message usually points to a local program conflict; a configuration parsing error indicates incomplete fields or invalid parameters; a connection timeout requires further separation of server status, network path, and DNS resolution. Change one variable at a time and record the result after restarting. This approach is slightly slower than switching servers repeatedly, but it produces reusable conclusions and helps determine whether the problem lies in the client interface or the underlying core.

Platform Download Entry Points

Choose the Client for Your System

The homepage only separates the platforms. Package types, processor architectures, and client differences are covered on the download page, so you do not have to repeat the same decisions across multiple entry points.

Windows

v2rayN

Choose between the new-generation desktop interface and the classic WPF interface. The former suits new installations, while the latter works well for users who want to keep familiar menus and configuration workflows.

Go to Downloads

macOS

v2rayN

Choose an Apple Silicon or Intel package based on your device's processor. After installation, subscription and routing management work through an interface similar to those on other desktop systems.

Go to Downloads

Android

v2rayNG · v2flyNG

Most current devices should use the arm64 package. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; choose based on your protocol configuration and usage preferences.

Go to Downloads

Linux

v2rayN

Choose deb or rpm according to your distribution's package system, and distinguish between x64 and arm64 architectures. The desktop interface suits environments that need subscription groups and visual routing controls.

Go to Downloads
Quick Start Preview

Complete the Basic Setup in Three Steps

Build the shortest verifiable connection first, then adjust routing, DNS, and TUN. If something goes wrong, you will know which change affected the result.

View the Complete Guide
  1. 01

    Install the Right Client

    Open the download page and choose a package by operating system and processor architecture. Use v2rayN on desktop; on Android, compare the Xray and V2Fly core families in v2rayNG and v2flyNG before choosing one. After installation, open the client and confirm that the interface loads normally before changing advanced settings.

  2. 02

    Add a Subscription and Update the List

    Copy the complete subscription URL from your service provider, add a record in the client's subscription manager, and enter a recognizable note. Save it, run an update, and wait for the servers to appear in the list. Name multiple subscriptions separately instead of combining different sources into one difficult-to-trace record.

  3. 03

    Choose a Server and Verify Traffic

    Select a configuration and start the core, then enable the system proxy. Verify basic access in a browser first, followed by terminals or apps that require separate proxy settings. Adjust routing rules, DNS, or TUN only after the basic flow is stable, so you do not introduce too many variables at once.

Open-Source Ecosystem

How Project V, V2Fly, and Xray Relate

A client is only the configuration entry point. The core layer handles protocols, transport, routing, and DNS. Understanding this relationship makes both client selection and log analysis more straightforward.

Project V Provides the Starting Point for Protocols and Configuration

Project V established a network-tool ecosystem centered on the V2Ray configuration model. Configurations typically include inbounds, outbounds, routing, DNS, transport, and policies. Graphical clients turn these structures into menus, forms, and switches, reducing the cost of daily management while keeping the underlying concepts consistent. Once you understand the boundary between “the client generates the configuration” and “the core executes it,” startup failures become easier to classify as interface-save issues, configuration-field problems, or runtime core failures.

Names such as VMess, VLESS, and Trojan describe connection methods; TCP, WebSocket, and gRPC describe transport-layer combinations; TLS and REALITY involve connection handshakes and authentication. They are not mutually exclusive choices from one list, but may occupy different configuration layers. The site's glossary explains these concepts by layer, so you learn not only the abbreviations but also where each field belongs.

V2Fly and Xray Are Two Evolving Core Families

V2Fly continues the community-maintained path of V2Ray Core, retaining a relatively complete configuration system and protocol implementation. Xray extends a similar configuration model with different transport capabilities, protocol implementations, and runtime options. The two share many concepts, but their support ranges, field details, and release pace are not identical. When importing shared links or subscriptions, the client usually converts the configuration for its own core. For newer protocol parameters, confirm that the server, sharing format, client, and core form a compatible chain.

Core families are not divided by operating system. Desktop v2rayN can manage both cores and graphical settings, while Android clients v2rayNG and v2flyNG provide implementations along their respective paths. Rather than chasing the client with the longest feature list, consider which protocols your subscriptions use, whether complex routing is needed, and whether you want similar configuration habits across devices.

Three Clients Provide Graphical Management Across Platforms

v2rayN targets Windows, macOS, and Linux desktops, with subscription management, server filtering, system proxy settings, routing rules, DNS, TUN, and log viewing. Desktop users often need to handle both operating-system and application proxies, so v2rayN is valuable not only for starting the core but also for putting system settings, configuration generation, and runtime status into a checkable workflow.

v2rayNG is a widely used Android client built around the Xray core. It suits configuration management through subscriptions or shared links and includes options for per-app routing and local proxy behavior. v2flyNG follows the V2Fly core path and is an option when that core family is needed. All three clients are maintained by open-source communities, with changes typically focused on core compatibility, platform support, subscription parsing, and interface management.

Check Client, Core, and Configuration Compatibility When Updating

A client update may change only the interface, or it may also adjust the core, configuration conversion, or system integration. Before updating, record your subscription groups, routing rules, and key settings. Afterward, verify core startup first, then check the system proxy, DNS, and TUN. If an older configuration no longer runs directly, read the error log and check for deprecated or renamed fields before importing every server entry again.

The advantage of open-source maintenance is that configuration behavior and issue discussions can follow clear code and version changes. Users still need to distinguish responsibility among the upstream core, the client wrapper, and the subscription service. The site's download guide organizes clients by platform, tutorials explain the operational workflow, and advanced manuals cover subscription groups, routing, DNS, TUN, FakeDNS, and custom outbounds. Keeping these three document types separate makes it easier to locate the relevant layer when troubleshooting.

Featured FAQs

Understand the Concept Before Editing the Configuration

These four questions cover the parts most often confused during a new setup. For a fuller reference on protocol, routing, and client terminology, continue to the glossary.

Open the Glossary
How should I choose between v2rayN, v2rayNG, and v2flyNG?

Use v2rayN first on Windows, macOS, and Linux desktops. On Android, v2rayNG with the Xray core is the usual starting point; choose v2flyNG when you specifically need the V2Fly core family. The names are similar, but their platform focus and core paths differ.

Why are there no servers after importing a subscription?

Adding a subscription record is not enough; you also need to update it. If the list is still empty, check that the URL is complete, that group filters are not hiding the entries, and that the update log contains no parsing errors. Do not repeatedly delete and recreate the subscription before reading the log.

Why does the terminal connect directly even though the system proxy is enabled?

Many terminal tools do not automatically read the desktop system proxy. Set the app's proxy parameters or proxy environment variables instead. Confirm the local proxy port first, then test the browser and terminal separately; they do not necessarily use the same path.

When should I use TUN mode?

Consider TUN when an app does not support proxy settings, broader system traffic must be intercepted, or the regular system proxy cannot cover the target program. Complete basic proxy verification first, then review the effects on DNS, routing, and permissions so you can roll back cleanly if needed.