V2Ray Plain Guide:
v2rayN Downloads and Setup Guide

Start by choosing an open-source client, then learn how to import subscriptions and configure routing separately.

GUI clients v2rayN · v2rayNG · v2flyNG Core families Xray / V2Fly Configuration sources Subscriptions / Share links
SETTINGS / From Config to Plain English

Subscriptions, proxies, and routing each have a job

Importing a subscription doesn't mean your browser is using the proxy. First identify what each setting controls, then adjust it—this avoids unnecessary trial and error.

Subscription group settings
Alias: Daily subscription
Address: https://example.com/sub?token=xxxx
Enable updates: On
In plain English

A subscription is an updatable list of server configurations, usually provided as a URL by your service provider. Enter the full URL in a subscription group, save it, and run an update so the client can fetch its configurations. It is different from a link for a single server and isn't the address of a login page. If an update fails, first check that the link is complete and hasn't expired, then check the network path used to fetch it. Don't repeatedly delete existing groups, and never post a URL containing your personal token in a public screenshot. Subscriptions only provide configurations; system proxy and routing settings still need to be configured separately.

Think of the whole process as a pipeline: the subscription provides configurations, the client selects a server, the system proxy or virtual network interface receives app requests, and the core makes connections according to routing rules. If any step fails, the final connection may fail too. Seeing servers in the list only confirms that the configuration was imported; it doesn't prove the whole path is working.

For your first setup, keep the default settings and test the simplest connection path. Don't change DNS, routing, transport, and traffic interception all at once—if the connection starts working, you won't know which change fixed it. Once the basic connection is stable, add rules to suit your needs. Look up unfamiliar fields in the glossary; for specific errors, use the Help Center to troubleshoot by symptom.

CLIENTS / Choose by operating system

Client downloads for four platforms

Use v2rayN on desktop and start with v2rayNG on Android. Check your operating system and processor architecture before choosing an installer; similarly named apps aren't interchangeable across platforms.

Windows

v2rayN comes in a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while WPF keeps the familiar Windows layout. If you're installing for the first time, consider the desktop edition; if you're used to one version, compare the menus and choose the layout that suits you. The subscription import process is much the same, so switching interfaces doesn't mean you need a new subscription.

Check your system architecture and the installation instructions first. After launching the client, update your subscription, then select a server and configure the system proxy. If your browser still reports a proxy connection error after you quit the client, check whether the system proxy has been reset before blaming the server.

Go to downloads

macOS

v2rayN for macOS has separate installers for Apple Silicon and Intel Macs. Check your chip or processor in About This Mac, then choose the matching architecture. Downloading the installer doesn't mean macOS will allow the app to launch; the first launch may also require you to respond to a security prompt.

System proxy and TUN require different permissions. First confirm that your subscription and server work with the standard proxy mode, then grant additional network permissions if needed. If macOS blocks the app from launching, read the specific prompt and follow the steps in System Settings to allow it. Don't disable your security protections altogether.

Go to downloads

Android

v2rayNG uses the Xray core and is the recommended Android option here; v2flyNG uses the V2Fly core as an alternative. Both offer arm64 and universal installers. Most newer devices can start by checking the arm64 option; if you're unsure about your architecture, read the download page's guidance.

The system VPN permission prompt on first connection is part of setting up a local network interface. After allowing it, you'll still need to select a valid server configuration. If the connection often drops when the screen locks, check your system's background activity and battery restrictions. Don't mistake your phone's battery-saving settings for an expired subscription.

Go to downloads

Linux

Linux packages for v2rayN come in deb and rpm formats for different processor architectures. Check which package system your distribution uses, then confirm whether you need x64 or arm64. Don't install a package just because it opens: the package format, architecture, and desktop environment dependencies all need to match.

Desktop environments can handle system proxy settings differently, and terminal apps may not inherit the desktop proxy. To test, start with an app that clearly follows proxy settings, then check other programs one by one. If you need TUN, see the platform guide for permission and traffic interception details.

Go to downloads
Browse all clients →
QUICK START / Three-step overview

From importing a subscription to testing your connection

The client doesn't come with a remote service. Before you start, get a valid subscription URL or share link and confirm it's compatible with your chosen client and core.

  1. STEP 01 / Configuration source

    Add a subscription group, then update it

    In v2rayN, open the subscription group settings, enter a recognizable alias and the full subscription URL, save, then update the subscription. In v2rayNG, add the URL in subscription settings, return to the main screen, and update the subscription. Check for spaces, line breaks, or truncation when copying and pasting. In particular, don't use your provider's account management page URL as the subscription URL.

    After the update, check that the expected server configurations appear. If the list is still empty, check the update result and logs first. If you already have older configurations, keep them for comparison. A subscription token grants access to your configuration. Hide the full URL in screenshots or when asking for help—not just the domain while leaving query parameters visible.

  2. STEP 02 / App traffic

    Select a server and configure proxy and routing

    On desktop, select a server, enable automatic system proxy configuration, and start with a built-in routing preset. On Android, select a configuration, tap Connect, and allow the VPN interface when prompted. Menu names may change as the interface evolves, but selecting a configuration and routing app requests through the client are always separate steps. Without the latter, your browser may still connect directly.

    Don't enable multiple traffic interception methods at the start. System proxy is a good way to test common browsers; TUN can handle apps that ignore system proxy settings, but adds permission, DNS, and routing troubleshooting. If a device on your LAN can't connect, check the bypass LAN setting first instead of switching protocols at random.

  3. STEP 03 / Test each step

    Test the apps you use, then note any issues

    Start by visiting a familiar webpage where the result is easy to verify, then test the app you're troubleshooting. The client's built-in connectivity test only reports results under its own test conditions; it can't guarantee that every website and app will work. Some websites have their own access restrictions, so one failed page doesn't mean the whole subscription is unusable.

    If something goes wrong, note the time, app, and error, then check the logs for that period. First confirm the client is running and the local endpoint works, then check DNS, the remote connection, and the handshake. Repeat the same test after each change to compare results. The full walkthrough and platform-specific details are in the tutorials; the homepage sticks to the shortest setup path.

Read the full guide →
ECOSYSTEM / Clients and cores

How Project V, V2Fly, and Xray are related

First distinguish projects, cores, and GUI clients, then compare protocol support. These names have historical connections, but they aren't three skins of the same software.

Project V is a good starting point for understanding the ecosystem

V2Ray is a core project in the Project V ecosystem, built around configurable networking proxy protocols, transports, and routing. The graphical interfaces people use day to day typically build on these capabilities to manage servers, update subscriptions, and provide settings. When you search for a V2Ray client, you're usually looking for this kind of GUI app—not a tool for editing core configuration files directly.

This distinction is useful in practice: a checkbox in the interface might affect client behavior or be translated into core configuration. Subscription management, window layout, and system proxy controls belong mainly to the client layer; protocol handshakes, outbound connections, and rule matching are handled by the relevant core. When something goes wrong, identify the layer first to find the right documentation instead of searching for an identical menu name in another client.

V2Fly and Xray are related but independent projects

The V2Fly community continues development related to V2Ray, while Xray grew from related code into a separate core project. They share some concepts and configuration conventions, but their feature development, protocol details, and field support don't always stay in sync. Both supporting VLESS doesn't mean every related configuration will work unchanged in either one. A filename alone can't establish compatibility.

When choosing a core, start with the server's requirements: which protocol and transport it uses, whether it needs specific security features, and whether the client can import all the required fields. Check support for features such as REALITY against the specific versions involved. If your subscription provides an import option for your client, follow its configuration instructions first. Look up unfamiliar settings in the protocol and transport glossary instead of guessing from their names.

All three are open-source GUI clients

v2rayN is for desktop and provides subscription management, server selection, and proxy settings. v2rayNG is for Android and uses the Xray core; v2flyNG is also for Android and uses the V2Fly core. Their source code is available under their respective open-source licenses; check each project's license for terms of use and redistribution. Open source describes the code and its license—it doesn't certify the quality of any remote service.

The clients are free to download, but remote services behind a subscription are separate. Installing a client doesn't automatically provide a provider account, service access, or coverage. Don't give your subscription URL to an unrelated website to parse it. This site focuses on client downloads and setup guides. Keep “how the tool works” separate from “who provides the service”—they have different update schedules and sources of problems.

Clients, cores, and routing data update separately

Client updates typically affect the interface, import logic, and platform compatibility. Core updates affect protocol implementation and behavior. Updates to GeoIP and GeoSite data files change the data used by some routing rules. Updating a subscription only refreshes the configuration supplied by your provider; it doesn't replace any of these updates. If routing is misbehaving, repeatedly updating the subscription won't refresh outdated rule data.

Before making changes, keep a copy of your configuration that you can restore. After updating, retest with the same apps and websites. If menus have moved in a new interface, look for the feature by name instead of relying on the position in an old screenshot. For platform-specific details, read the all-platform guide. For a specific error, save a redacted copy of the exact message and troubleshoot from the local connection outward.

READ NEXT / Guides and how-tos

Interface, permissions, and routing data

Once the basic connection works, explore the guides that match your next question. These three cover finding settings, handling first-launch permissions, and maintaining routing data—you don't need to change everything at once.

A tour of the v2rayN main window: server list, subscription groups, log panel, and settings

Take a section-by-section tour of the v2rayN main window to learn what the server list, subscription groups, bottom log panel, system proxy controls, and settings do. New users can find the common actions quickly.

v2rayN on macOS: Fix “Developer Cannot Be Verified” and Configure Privacy and Network Permissions

For cases where macOS blocks v2rayN on first launch, learn how to allow it in Privacy & Security and grant network and system proxy permissions, plus the additional permissions required for TUN mode.

How to update geoip.dat and geosite.dat: A guide to routing rule data files

Learn how GeoIP and GeoSite data files are used for routing, how to update them in v2rayN and v2rayNG, and what entries such as geosite:cn mean.

Browse all articles →