Subscription Import · Routing Setup

V2Ray Subscription GuideDownload & Setup

Start by importing a subscription URL, then configure routing and the system proxy step by step, with separate instructions for desktop and Android.

  • VMess
  • VLESS
  • Trojan
  • REALITY
Configuration order

Subscriptions, routing, proxy, and core

Import the subscription first. Then check how traffic reaches the client and decide where requests should go next. Switch between the examples below to explore the settings; they explain the options but do not change your client configuration.

Subscription management

Save the subscription URL
then update the server list

A subscription URL is not the address of a single server. It lets the client retrieve a set of configurations. In v2rayN, enter a remark and the full URL under Subscription Group Settings, save the group, then update the subscription. Groups help keep configurations from different sources separate. When you update, the client refreshes the servers included in that subscription, so you do not have to edit ports, protocols, and transport settings one by one. v2rayNG also has a subscription settings page: save the group, then return to the main screen to update it. Menu labels differ slightly, but the import steps are the same.

For the first setup, update manually and confirm that the expected entries appear before setting an automatic update interval. A successful update does not guarantee that a server is reachable; you still need to select a server and test access. Subscription URLs often contain credentials, so hide the full URL in screenshots and never share it from update logs.

See how to import a subscription →

Subscription Group Settings · Example

RemarkDaily subscription
Enable updates
ActionSave, then update the subscription manually

Best for the first import. Start by confirming that the URL retrieves the configuration successfully.

Routing

Route direct or proxied traffic
based on its destination

Routing mode determines how requests that reach the core are handled. Global mode typically sends default traffic through the proxy outbound. The bypass-mainland-China preset uses domain and IP rules to send matching destinations in mainland China directly, while handling other requests according to the preset. Blacklist mode sends only specified destinations through the proxy. Start with a built-in preset and add rules as needed; this makes issues easier to pinpoint than changing the entire routing configuration upfront. Names may vary between cores and rule sets, so check the preset details before switching.

Distinguish between traffic reaching the proxy and traffic routed through the proxy outbound. An application that does not use the system proxy may never send its requests to the core; requests that do reach the core may still be routed directly. To test the rules, open one site expected to connect directly and another expected to use the proxy, then check the outbound route in the logs. Do not rely solely on whether a page loads.

Read about split tunneling for mainland China and other regions →

Routing modes · Behavior at a glance

Destinations in mainland China matchDirect
Other traffic by defaultProxy

Shows the logic of common presets. Actual behavior also depends on rule order and DNS settings.

System Proxy and TUN

Configure the system proxy first
then decide if you need TUN

The system proxy sets a local proxy address in your operating system settings. It generally works well with browsers and apps that follow the system proxy. In v2rayN, setting up the system proxy automatically, clearing it, and leaving it unchanged are separate actions: automatic setup writes the address, clearing removes the proxy settings, and leaving it unchanged preserves the current state. “Do not change” does not mean “turn off.” Start by testing browser access through the system proxy to confirm that the subscription, server, and core work together before expanding the scope of traffic capture.

If an application ignores the system proxy, consider TUN mode, which uses a virtual network adapter. TUN involves permissions, network adapters, routing tables, and DNS. Before enabling it, stop other tools that may capture traffic and save your existing network settings. If you lose connectivity, turn off TUN and clear the system proxy first; confirm that direct access works again, then troubleshoot each setting separately. Global routing and TUN traffic capture are not the same setting.

Read the system proxy setup guide →

System Proxy · Three Actions

System proxy addressSet to the local listening address
Apps coveredApps that follow the system proxy

The proxy port must match the client's local listening port.

Choosing a core

Check supported protocols
to confirm the right core

The graphical client displays settings, manages subscriptions, and generates configurations; the core handles protocols, transport, and routing. In v2rayN, you can select a core for a server based on client support. On Android, v2rayNG primarily uses Xray, while v2flyNG is designed for the V2Fly core ecosystem. They are separate clients, not different skins for the same app, and their configuration support is not identical. If a subscription includes options such as REALITY, make sure both the client and core support the relevant fields.

Do not switch cores just because one name seems familiar, and do not assume a missing option means the subscription is invalid. Check the server's protocol, security settings, and transport method, then verify client support. Updating the graphical interface and updating the core may be separate actions. Before switching, record a working configuration. If startup fails, check the specific field in the logs instead of repeatedly importing the same URL.

Explore protocol and core terminology →

Core families · Check before choosing

Core typeXray
Android clientv2rayNG

For settings such as REALITY, confirm that the current client and core support the relevant fields.

Choosing a client

Choose a download for your device's operating system

Check your operating system first, then your processor architecture. The package format determines how to install the app; the processor architecture determines whether it can run. Do not choose based only on whether the filename contains v2rayN. The download page explains the available options and lists the specific client versions.

Windows

v2rayN · Desktop pick

Use v2rayN to manage subscriptions, choose routing, and configure the system proxy. The download page offers a desktop version with a newer cross-platform interface and a WPF version that retains the classic interface. Start with the desktop version if you are new to the app; if you already know the classic interface, compare the WPF instructions before choosing.

Before installing, check your processor and system type in your system's About settings. After the first launch, import a subscription; there is no need to enable TUN right away. If you need a virtual adapter to capture traffic, follow the documentation for administrator permissions. Keep your existing client configuration and subscription URL before switching interface versions.

Go to downloads Windows client→

macOS

v2rayN · Two processor options

Use the v2rayN desktop client and choose the Apple Silicon or Intel package for your processor. Open About This Mac: choose arm64 for an Apple chip and x64 for an Intel processor. Do not guess based on the computer's appearance or purchase year.

After installing, make sure the app launches before setting up a subscription and system proxy. Check system permission prompts, background activity, and proxy status separately. If access stops working after closing the window, first check whether the client is still running, then see whether a proxy setting remains in the system.

Go to downloads macOS client→

Android

v2rayNG · Xray core

Start with v2rayNG; choose v2flyNG if you need the V2Fly core. The download page offers both clients in arm64 and universal builds. arm64 suits most newer phones. If you are unsure of your device's architecture, check the universal build details first, then choose based on your device information.

Save the subscription and update it, then select a server and start the connection. On the first connection, approve the system VPN permission. Background battery-saving settings may interrupt the connection, so check your device's battery restrictions. Updating the subscription and starting a connection are separate actions; completing the first does not start the second.

Go to downloads Android client→

Linux

v2rayN · deb / rpm

Choose a v2rayN package that matches your distribution's package system: Debian- and Ubuntu-based systems generally use deb, while Fedora and similar distributions generally use rpm. The download page also lists an arm64 build for compatible devices. Match both the package format and processor architecture.

Desktop environments may handle system proxy settings differently. Test in a browser first, then check whether the target app follows the desktop proxy settings. Before enabling TUN, review the guidance on permissions and network management. Do not change several network settings at once to fix one app's connection issue.

Go to downloads Linux client→

View all clients →

Open-source ecosystem

Understand the client, core, and subscription source

The interface handles configuration, the core handles connections, and the subscription provides server settings. Understanding these three layers makes installation, updates, and troubleshooting easier.

Subscription URL Graphical client Xray / V2Fly

Project V and core families

Project V is an open-source ecosystem of network communication tools, with V2Ray among its best-known names. The V2Fly community continues to maintain V2Ray-related cores, while Xray is another core line developed from related code. They share technical roots but maintain their own protocol capabilities, configuration fields, and release schedules. In everyday searches, “V2Ray client” often means a graphical management app; it does not mean every such app runs the same core.

VMess, VLESS, and Trojan are common protocol names in connection settings. REALITY is a technology related to security configuration; these terms are not interchangeable server types. Successfully importing a subscription only means the client has read the configuration. To connect, the protocol, security settings, and transport method must also match the server. If the client does not recognize a field, check core support rather than deleting the setting at random.

Open-source licenses for three graphical clients

v2rayN, v2rayNG, and v2flyNG are open-source clients commonly released under the GPL-3.0 license. Xray-core and the V2Ray core maintained by V2Fly use the MPL-2.0 license. Licenses govern matters such as using, modifying, and distributing code; refer to the license included with the relevant release for details. A client and its core may have different licenses, so the license for the graphical interface does not describe the entire dependency chain.

For users, the practical value of the open-source ecosystem is that configuration behavior can be examined, issues have clear component boundaries, and different clients can work with public protocols. Choose desktop v2rayN for graphical management of subscriptions, routing, and the local proxy. On Android, choose v2rayNG or v2flyNG based on the core capabilities you need and your device environment. Similar names do not mean identical options, so check each setting when migrating.

Treat the three types of updates separately

Updating a subscription fetches server settings again from its source URL. Updating the client replaces the app that provides the interface and manages configuration. Updating the core changes the component that handles protocols and routing. Each update addresses a different issue. If a server address changes, update the subscription first. If the interface lacks a setting, check client support. If the logs report an unsupported field, check compatibility between the core and configuration.

Save a working configuration before making changes. Change one thing at a time, then test with the same set of destinations. Configuration logs can help identify whether an issue is with the subscription request, core startup, DNS resolution, or remote connection. Before sharing logs, remove subscription credentials, account details, and sensitive server settings. A reproducible description is more useful for troubleshooting than simply saying “it won't connect.”

About the scope of this site →
Tips and insights

Protocol and advanced setup guides

Once the basic connection works, move on to choosing a protocol, routing a specific domain, or handling apps that ignore the system proxy. The three articles below are listed by publication date and cover protocol differences, routing rules, and TUN traffic capture. Start with the article that matches your issue rather than changing several settings at once.

View all articles →

Download clients