Subscription import · Desktop and mobile setup

V2Ray Subscription Guidev2rayN Download and Setup

Start with subscription groups, run a real connection latency test, then verify system proxy and split routing to confirm your connection is working.

Protocols and Transports
VMessVLESSTrojanREALITY
Choose a Platform

Import a subscription
and connect

Explore settings by setup stage. First get one server handling real requests, then add routing, traffic interception, and core options as needed.

Save the URL and update by group

Open Subscription Group Settings, enter an alias for the source, paste the full subscription URL into Optional URL, and leave the group enabled. Save it, then update the subscription to add servers to the list; saving the URL alone does not import anything. Create a separate group for each source to make filtering, updates, and broken URLs easier to manage. For your first setup, leave Filter (Regex) and User-Agent blank so filters don't hide servers. Set the auto-update interval according to the source's instructions. If an update fails, try both request paths: through the proxy and without it.

Learn more

Client downloads

Choose an installer for your platform

Use v2rayN on desktop and start by checking v2rayNG on mobile. Confirm your processor architecture before choosing an installer. Subscription URLs and installation packages are separate: installing a client doesn't provide working servers.

Windows

v2rayN

Choose the desktop edition or classic WPF edition from the download center. The desktop edition uses a newer cross-platform interface, while the WPF edition keeps the classic desktop workflow. Check the system and runtime requirements for either edition; file size alone isn't a reliable way to choose.

After installation, open the main window and check the logs for core startup errors before importing a subscription. If you already have a configuration, save your subscription groups and custom routes first so you don't lose settings by copying only the program files during migration.

macOS

v2rayN

Choose the Apple Silicon or Intel download based on the chip shown in About This Mac. The chip determines the required architecture; appearance and purchase year aren't reliable substitutes. After installation, follow the system prompts to open the app for the first time and grant any requested permissions.

First verify browser connectivity through the system proxy, then decide whether you need TUN. If macOS displays a security warning, check the app's source and the details of the warning. Don't disable system security features entirely just to launch the app.

Android

Recommended: v2rayNG

Choose v2rayNG with the Xray core first. If you need a V2Fly core configuration, consider v2flyNG instead. Most newer devices use arm64; if you're unsure of the processor architecture, check the universal download option and your device's system information.

After importing the subscription, update the server list and approve the system VPN request when connecting. Other apps using the same VPN connection may prevent startup. If the connection stops in the background, check battery optimization and background permissions instead of repeatedly importing the subscription.

Linux

v2rayN

Choose a deb or rpm package to match your distribution, then check whether your system uses x64 or arm64. Install it with your desktop's software manager and launch it from the app menu. First confirm that the interface, core, and configuration directory are working properly.

Desktop system proxy settings and app-specific settings may work independently. If a browser works but another program doesn't, check whether that program uses the desktop proxy. For TUN, follow the documentation to verify permissions and routes, and avoid running multiple traffic-interception tools at once.

The download center lists installer formats and system requirements in one place. If you're unsure which client to choose, compare the options and check the required core and platform before returning to the relevant download page.

View all clients

Quick Start

Import, test, verify

Break setup into three checkpoints. Complete each one before moving on to the next. If something goes wrong, you can tell whether the issue is with the subscription request, server connection, or app proxy settings instead of changing several settings at once.

  1. Create a subscription group and update it

    Get a working subscription URL and make sure you copied it from the protocol prefix through all query parameters. Open Subscription Group Settings, enter a recognizable alias and the Optional URL, save, and then update the subscription. For the first update, try without a proxy. If your current network can't reach the subscription source and you already have a working proxy, try updating through it.

    After the update, filter the server list by subscription group and confirm the new entries came from the right source. If the list is empty, check whether the group is enabled, review Filter (Regex), and inspect the update log before changing protocol fields. Subscription URLs may contain access credentials; hide the full URL in public screenshots and transfer it between devices securely.

  2. Test a server and set it as active

    Select a few candidate entries and run a real connection latency test to see whether they can complete an actual request. If TCPing succeeds but the real connection latency test fails, check the protocol handshake, certificate, and destination reachability; TCPing alone doesn't prove a server is usable. Keep test conditions consistent when comparing candidates, and don't mix results from different test methods.

    Set an entry that completes requests successfully as the active server, then check the core status in the logs. If a port is already in use, look for another proxy process running at the same time. For TLS or configuration parsing errors, use the log keywords to find the relevant settings. Change one thing at a time and retest so you can identify what made a difference.

  3. Set the proxy and verify the route

    On desktop, start by selecting automatic system proxy configuration and sending a request from a browser that honors system proxy settings. Check whether access works, then use a trusted public IP lookup service to verify the current request route. With split routing enabled, direct and proxied sites may show different exit IPs. Check the rule that matches each destination instead of expecting all sites to use the same route.

    If your browser still uses its previous exit IP, check its own proxy settings, extensions, and existing connections, then verify the system proxy address and client listening port. To cover apps that ignore system proxy settings, continue with the TUN guide. When testing is complete, exit the client normally and confirm that the system proxy settings have been restored, so they don't point to a closed port.

Read the full guide

Project V · V2Fly · Xray

Know the difference between the client and the proxy core

Understand what each layer does before deciding whether an update or a different client will fix the problem. The GUI, core, subscription source, and remote server all affect the connection; no single layer can replace the others.

Subscription URLGUI clientProxy coreRemote server

Understand the ecosystem through Project V

Project V is an ecosystem of network proxy tools, with V2Ray as one of its key implementations. In everyday searches, “V2Ray client” often refers broadly to a group of GUI tools, but a client name isn't the same as a core name. Subscription groups, tray menus, and server lists in the interface belong to the configuration management layer. The core establishes connections, handles transports, and applies routing.

Downloading a client is only the first step. You'll also need to obtain a usable configuration through legitimate means, ensure the remote service parameters match your local core, and choose how apps should route their traffic. A working interface doesn't mean the remote server is reachable.

Check V2Fly and Xray separately

V2Fly continues the community maintenance of V2Ray, while Xray is a separate core branch developed from related technical foundations. They share some concepts, but their protocols, transports, and configuration fields haven't evolved identically. For features such as XTLS Vision and REALITY, check the configuration against Xray's actual implementation; seeing VLESS in a subscription isn't enough.

When following a guide, note the client, core, and transport it uses. A field that works in one branch may not work unchanged in another. If you encounter an unknown field or unsupported protocol error, check the supported features first, then consider changing the configuration.

Choose a GUI client for your use case

v2rayN is an open-source desktop GUI client with tools for subscription management, server testing, and routing configuration, making it a good starting point for desktop platforms. v2rayNG is for Android and uses the Xray core. v2flyNG is also for Android but uses the V2Fly core, making it an alternative when your configuration specifically requires it. Their similar names don't mean they're themes for the same app.

Clients and cores have their own project licenses. Check the license and About information included with each app. Open source describes the code and licensing; it doesn't mean the client provides a subscription service, and it doesn't replace checking the subscription source, server authorization, or network conditions.

Treat client updates and subscription updates separately

Updating a subscription fetches server configurations from an existing source; updating the client can change the interface, core integration, or configuration handling. A subscription update may add, replace, or remove servers, while a client update may change which fields are supported. When something breaks, first identify which layer changed instead of assuming everything needs to be reinstalled.

Before upgrading, save your subscription URLs, custom routes, and essential settings, and read the app's release notes. After upgrading, test a familiar server with a real connection latency check and an actual request before restoring complex rules. If you run into compatibility issues, record the specific log error and keep the conditions reproducible instead of resetting everything at once.

Setup and Troubleshooting Notes

Recent Guides

After the initial setup, dig into the issue you actually encounter. Handle log errors, main-window operations, and certificate parameters separately instead of treating problems at different layers as a reason for a full reset.

View all articles