V2Ray clients and Chinese setup guides

V2Ray Chinese Network Download v2rayN and routing setup

Choose a client for your platform, then follow the Chinese setup steps. The guides focus on subscription imports, routing, and DNS and TUN mode, with setting names matching the client menus.

Free forever Open source Xray · V2Fly cores VLESS · VMess · Trojan
Subscriptions and nodes
Routing rules
DNS resolution
TUN mode
v2rayN Settings / Preferences / Routing
Basic settings
System proxy Auto-configure system proxy
Routing Bypass mainland China
Core type Xray
Log level warning
Enable TUN mode
Subscription groups Add subscription
routing.rules.json JSON
{
  "type": "field",
  "domain": [
    "geosite:cn"
  ],
  "outboundTag": "direct"
},
{
  "type": "field",
  "ip": [
    "geoip:private"
  ],
  "outboundTag": "direct"
}
Client downloads

Choose a package for your system

Confirm your operating system and processor architecture, then open the download page to select the matching file. The homepage routes you by platform; package details, system requirements, and selection guidance are on the download page.

Windows

Use the v2rayN desktop client. The download page offers a cross-platform desktop interface and the classic WPF interface, so choose whichever suits your workflow.

Go to downloads

macOS

Use the v2rayN desktop client. On the download page, check your chip type in the system information first, then choose the Apple Silicon or Intel installer.

Go to downloads

Android

Choose v2rayNG with the Xray core by default; choose v2flyNG when you need the V2Fly core. Most modern devices use the arm64 architecture.

Go to downloads

Linux

Use the v2rayN desktop client. Choose deb for Debian- and Ubuntu-based distributions, and rpm for Fedora, Rocky Linux, and similar distributions.

Go to downloads
View all clients
Common settings

Start with the relevant menu

Select the issue you are working on first. The panel on the right shows the menu location, key options, and usage boundaries. The examples use actual client menu labels, not latency, node counts, or traffic data.

Subscriptions and nodes

Create a group, then update subscriptions

In v2rayN, open “Subscription groups,” add a group, and enter the subscription URL provided by your service provider. Save it, then select “Update all subscriptions” to write the server entries to the group. Group names are for local organization only; name them by purpose or source. Confirm that the URL is complete before updating, and avoid copying leading or trailing spaces. After the update, select a node and set it as the active server.

A subscription URL and a single-node link use different import paths. Subscription URLs are designed to update multiple nodes centrally, while single-node links are imported from the clipboard. When using multiple subscriptions, grouping them before updating keeps the list organized and makes it easier to configure separate update intervals and filtering rules.

Group nameDaily subscription
Enabled
Auto-update intervalSet as needed
Update methodUpdate all subscriptions
Menu path: Subscription groups → Add → Update all subscriptions
One configuration, four platforms: Windows macOS Android Linux
Quick start

Install, import, enable

For first-time setup, do three things: install the client for your system, import a subscription or node, and choose a suitable proxy mode. Start with the minimum configuration, confirm the connection works, then adjust routing, DNS, and TUN settings.

  1. 01

    Install the right client

    Choose v2rayN for desktop systems and v2rayNG for Android devices. Before downloading, check the operating system, processor architecture, and package format. Windows users can choose between the desktop and classic WPF versions; macOS users should choose by chip type; Linux users should select deb or rpm according to their distribution’s package system.

    After installation, launch the client normally instead of changing every advanced setting at once. If the system requests network access, notification, or virtual network permissions, decide based on the features you plan to use. For system proxy use, the defaults are usually sufficient; for TUN, handle virtual network interface permissions separately.

  2. 02

    Import a subscription or single node

    For a subscription, create a group under “Subscription groups,” enter the complete subscription URL, and update it. For a single node, copy the share link and use “Import batch URLs from clipboard.” After importing, check the protocol, address, port, and transport security, especially the public key, server name, and Short ID in a VLESS REALITY configuration.

    Notes in the client list are only for identifying entries and do not affect connections. When using multiple sources, organize nodes with groups, note prefixes, and filtering rules before setting an update schedule. This keeps the list stable after subscription updates and makes each node’s configuration source easy to identify.

  3. 03

    Choose a server and proxy mode

    Select a server in the list and set it as the active server, then enable automatic system proxy configuration. Once the browser works normally, enable the Bypass mainland China route if needed. Use the system proxy for regular desktop software; enable TUN only when an app ignores the system proxy or more system traffic needs to enter the core.

    If the connection fails, check in order: whether the subscription updated successfully, whether an active server is selected, whether the system proxy is enabled, and whether the core log reports a resolution or handshake error. Change one setting at a time and test again to identify whether the issue is with node parameters, DNS, routing, or the local network.

View the complete guide
Open-source ecosystem

How Project V, V2Fly, and Xray relate

Clients, cores, and protocols operate at different layers. Understanding how they relate makes software selection and configuration troubleshooting more straightforward.

The ecosystem and its core branches

Project V is an open-source ecosystem built around proxy protocols, transport methods, and routing capabilities. Early V2Ray established its configuration model: inbounds receive traffic from local apps, outbounds connect to destinations or remote services, routing rules choose an outbound for each request, and the DNS module provides a configurable resolution workflow. This structure influenced how later clients organize their interfaces.

V2Fly continues community maintenance of the V2Ray core and related components, commonly referred to as v2fly-core. Xray continues to evolve a similar configuration model and adds and maintains capabilities such as VLESS and REALITY. Neither is a graphical client; both are core programs responsible for protocol handling, transport, routing, and DNS. Choosing “Core type” in a client determines which core interprets and runs the current configuration.

A protocol is not a client either. VMess, VLESS, and Trojan describe how the two ends organize authentication and data; TCP, WebSocket, and gRPC are transport choices; TLS and REALITY handle transport-security parameters. Whether a node connects depends on the client’s core capabilities and an exact match with the server parameters, not merely on the protocol name.

Desktop client

v2rayN

v2rayN is a graphical client for Windows, macOS, and Linux. It manages subscriptions, node editing, the system proxy, routing rules, DNS, TUN, and core switching. The interface maps low-level JSON configuration to manageable settings, making it suitable for desktop environments with multiple subscriptions or detailed traffic routing.

Android client

v2rayNG

v2rayNG primarily runs on the Xray core, supports importing subscriptions, QR codes, and share links, and uses the system VPN interface to capture selected traffic. When using VLESS, REALITY, or Xray routing capabilities, first confirm that the node parameters are correct and supported by the client core.

Android alternative

v2flyNG

v2flyNG uses the V2Fly core and has a workflow similar to other Android clients. It suits users who specifically need v2fly-core behavior or already have V2Fly configurations. The key selection criteria are compatibility between the node protocol, transport method, and target core—not visual similarity between interfaces.

Open-source licenses and code review

These projects are released as open source, with licenses governing the use, modification, and redistribution of their code. Open source means implementation details, configuration structures, and change histories can be continuously reviewed by the community, while mature cores can be reused by different clients. For downloads, still start from the current release files on this site’s download page and choose the package matching your system and architecture.

Updates and compatibility boundaries

Client updates, core updates, and routing-database updates are three separate things. Client updates affect the interface and management features; core updates affect protocols and runtime behavior; geoip and geosite updates affect the scope of rule matching. When troubleshooting, verify these layers separately rather than mistaking an outdated database for a client failure.

Configuration migration and maintenance

When moving between devices, preserve subscription sources and necessary custom routes rather than relying on a temporary node list. Subscriptions change with the server, while routing rules reflect personal usage needs. After updating subscriptions, check that the active server still exists; after changing DNS or TUN, record where the change was made so it can be reverted if problems occur.

Common questions

Confirm the configuration layer first

Most issues come from confusing the layers between the client, core, node parameters, and system network settings. The answers below provide the shortest checking path; for full procedures, continue to the quick-start and advanced guides.

The subscription updated successfully. Why can’t I connect?
A successful update only means the client retrieved the subscription content. You still need to select an entry in the server list, set it as the active server, and enable the system proxy or TUN. If it still fails, check the core log and verify address resolution, port connectivity, user ID, and transport-security parameters in order.
Should I use the system proxy or TUN mode?
Start with the system proxy for browsers and regular desktop software because it is simpler to configure and troubleshoot. Enable TUN when an app ignores the system proxy, command-line traffic must be handled uniformly, or more system connections need coverage. After enabling TUN, also check DNS, direct access to private addresses, and virtual network adapter permissions.
Why doesn’t the Bypass mainland China rule work for some sites?
Check whether the request matched a domain rule or an IP rule, then confirm that the DNS result is as expected. Put custom rules before more general rules. Add a precise rule only for the affected domain, save the change, and restart the core instead of expanding the entire rule group for one site.
Which fields are easiest to get wrong in a REALITY node?
Pay close attention to the server name, public key, Short ID, fingerprint, and flow control. The public key and Short ID must match the server configuration, and the server name is used for the handshake, so it cannot be replaced arbitrarily. After importing a share link, confirm that it is complete, especially that no trailing parameters were lost during copying.
Practical tips

Recent configuration guides

These articles focus on specific settings and failure symptoms, starting with where to check and then explaining how the configuration pieces relate.

Troubleshooting

How to detect DNS leaks in v2rayN: three troubleshooting methods and leak-prevention steps

Learn why DNS requests may still use the local network even when the proxy is connected, with cross-checks using browser tests, command-line queries, and client logs. The article also explains the setup order for remote resolution, DNS outbounds, and TUN mode.

Read the full article
Advanced

Managing multiple subscription groups in v2rayN: server filters, note conventions, and automatic updates

Learn how to create separate groups for different subscriptions, filter servers by keyword, and set update intervals and upstream proxies for each group. Stable note prefixes and filtering rules keep long server lists readable, searchable, and maintainable.

Read the full article
Routing

Updating geoip.dat and geosite.dat: the role of v2rayN routing databases and manual replacement

Understand what geoip and geosite data match, learn common tags such as geosite:cn and geoip:private, and follow steps for in-client updates, file replacement, and troubleshooting common errors.

Read the full article
View all articles
Download clients