Client downloads and setup guide

v2rayNG for Android V2Ray client downloads and setup

Choose an open-source client for your device, start with subscription import, then learn routing and DNS settings.

  • VMESS
  • VLESS
  • TROJAN
  • SHADOWSOCKS
  • REALITY

SETTINGS / BEFORE CONNECTING

Understand clients, subscriptions, and routing

v2rayNG for Android manages connection profiles on Android devices, while v2rayN provides a desktop GUI. v2flyNG is another Android option built on the V2Fly core. Installing a client only prepares the environment; connecting still requires a valid server configuration. A subscription URL fetches multiple profiles, while a share link describes a single connection. Though both may look like text links, they use different import options and update workflows.

For a first-time setup, follow a consistent order: check your device and package architecture, import a subscription, then review the operating mode and routing. Avoid changing sniffing, DNS, multiplexing, and routing rules all at once before confirming the connection works. Change one setting at a time and keep track of its previous value so you can isolate any issues. The settings panels below illustrate where options are and what fields look like; they are not recommended defaults for every device.

SETTINGS INDEX

Settings quick reference

Jump to a specific setting. First understand what it affects, then decide whether to enable it. Menu names can vary slightly between clients and releases.

Routing settings — rule order

Decide where traffic goes after it connects

Routing rules decide whether requests go direct, through a proxy, or get blocked. In Routing settings, check the rule order first, then confirm that domain and IP category resources are available. For example, sending private addresses direct can preserve access to local network devices. Domain and IP rules use different matching criteria, so a category name alone does not tell you what will happen. Unlike a single global outbound setting, rules let you handle requests selectively, but require resource files and exceptions to be maintained. When troubleshooting, start with a simple preset, confirm the connection works, and then add custom rules.

Explore protocol and core references

Common routing rule examples

  • geoip:privateDirect
  • geosite:cnDirect
  • geosite:category-ads-allBlock

These examples show match conditions and actions only; they are not a complete routing configuration.

CLIENT SELECTION

Choose a client for your platform

Use v2rayN on desktop and start with v2rayNG on Android. The download page explains package types, processor architectures, and installation notes.

Windows

v2rayN offers Desktop and classic WPF editions. Desktop uses a newer cross-platform interface, while WPF retains the classic desktop UI. Choose based on your preferences and system, then follow the installation guide. You don't need both editions to use the same subscription.

Keep in mind that opening the client doesn't automatically configure the system proxy. Browsers and terminal apps may use different proxy settings. If one works and the other doesn't, check each app's settings and environment variables before replacing your connection profile.

Go to downloads →

macOS

Choose the v2rayN disk image for your device. Use the arm64 option on Apple silicon Macs and x64 on Intel Macs. Check About This Mac to confirm your chip or processor before choosing a package; don't guess based on the computer's appearance.

On first launch, follow the system prompts to allow the app to open. After importing a subscription, check that the operating mode suits the apps you want to use. If you need access to local network resources, review private-address routing rules and relevant permissions rather than assuming every connection issue is server-related.

Go to downloads →

Android

v2rayNG uses the Xray core, while v2flyNG is a V2Fly-based alternative. Most recent phones can start with the arm64 package. If you're unsure of your device's ABI or see an architecture compatibility warning, check the universal package notes. Use the architecture supported by your device and the installation feedback as your guide.

The first time you connect in VPN mode, approve the system VPN permission. If another app is already using the VPN interface, resolve the conflict first. System battery policies can also affect background operation, so check background permissions if the connection drops.

Go to downloads →

Linux

The v2rayN desktop edition offers deb and rpm packages for x64 and arm64. Debian- and Ubuntu-based desktops generally use deb; Fedora-based desktops generally use rpm. Package format and processor architecture are separate requirements, and both must match.

If no tray icon appears after installation, check tray support in your desktop environment and confirm the app is running. Starting at login usually means launching the app after signing in to the graphical desktop; it is not the same as running a system service. Terminal programs may not use the desktop system proxy, so check proxy environment variables separately.

Go to downloads →

QUICK START / 03 STEPS

From subscription import to connection testing

First establish a connection you can test consistently, then add custom settings. This quick overview covers the essentials; the full guide walks through each step in the interface.

  1. 01 / IMPORT

    Create a group and update the subscription

    After installing and opening the client, check whether you have a subscription URL or a single share link. In v2rayNG, open Subscription groups; in v2rayN, use the Subscription groups menu. Enter a label that identifies the source and the full URL, save, then update the subscription and check the profile list. Don't judge a subscription URL by how it appears in a browser; that doesn't tell you whether the client can parse it.

    If the list is empty after an update, check that the URL was copied in full, the source is still available, and the response uses a supported format. Import a single share link from the clipboard instead of trying to add it as a subscription group. Before updating an existing group, save any manual profiles you want to keep so source changes don't get mixed up with local edits.

  2. 02 / MODE

    Select a profile and check the connection mode

    Choose a profile from the list, then check the client's operating mode. Android VPN mode routes app requests through the system interface; proxy-only mode usually requires apps to use a local proxy. On desktop, Set system proxy affects apps that follow the system proxy setting. It is separate from routing presets such as Global or Bypass mainland China: the former controls how traffic enters the client, while the latter decides where it goes afterward.

    For your first connection, use a straightforward routing preset and leave other advanced settings alone. Don't enable every option just because one app fails. Per-app proxying, DNS, and sniffing affect different parts of the connection; changing them all at once makes troubleshooting harder. To compare presets, read the protocol guide and related articles, then verify which settings are active in your client.

  3. 03 / VERIFY

    Start the service and test the target app

    Start the connection, grant any required system permissions, then test the app you actually want to use. A running status only confirms that the local process has started; it doesn't prove end-to-end connectivity. Try a known working destination first, then test other types of requests such as local network resources. If only certain domains fail, investigate DNS and routing matches instead of assuming the entire connection is down.

    When something goes wrong, note which app you used, what you were doing, and when the failure occurred, then check the error type in the client logs. Remove subscription URLs, credentials, and personal file paths before sharing logs or screenshots. Check configuration validity, operating mode, app access, routing, and DNS in that order. This usually narrows down the issue faster than reinstalling. For specific steps and common issues, see Getting Started and the FAQ.

PROJECT V / CORE FAMILY

Open-source ecosystem and core architecture

The client provides the interface and manages settings; the core handles connections. Understanding the difference helps you identify which component provides a feature and what to check when updating.

Project V and the origins of V2Ray

Project V is an open-source ecosystem built around proxy communication tools, with V2Ray as one of its best-known core projects. Its modular configuration combines inbound and outbound traffic, transport, and routing, allowing one GUI to manage different connection types. People often use “V2Ray client” to refer to both the graphical app and the underlying core, but they are separate software layers. The download page lists clients, while the protocol guide explains the protocols and cores behind them.

This layered design explains why two clients can import similar share links but have different menus and operating modes. The client determines the interface; whether connection fields are recognized depends on the core and importer implementation. Check the client name when looking for settings, and identify its core when checking protocol support. Don't assume instructions or screenshots for one platform apply to another app.

How V2Fly and Xray diverged

V2Fly continues community maintenance of the V2Ray core, while Xray developed along a separate core path from related code. They share concepts and configuration conventions, but ongoing development means not every new field or security-layer option is recognized by both. A client supporting VMess or VLESS doesn't necessarily support every transport combination for those protocols. Choose based on the complete configuration provided by the server, rather than the core name alone or assuming one option is best for every use case.

On mobile devices, resource use also depends on transport, connection count, network changes, and background policies. Protocol names alone don't provide a reliable battery-life ranking. If your current configuration meets your needs, keep it stable. When adding a feature, check core support, client import capabilities, and server requirements. This is easier to maintain than repeatedly switching clients.

What each of the three clients does

v2rayN, v2rayNG, and v2flyNG are open-source GUI clients designed to simplify configuration and everyday use. v2rayN is for desktop, with controls for subscription groups, system proxy, and routing. v2rayNG is for Android and uses the system VPN interface to handle app traffic. v2flyNG offers an Android option built on the V2Fly core. Similar-looking interfaces don't make every setting equivalent, so check each option before switching.

A client is not a connection service, and installing one doesn't provide a usable subscription. The subscription source supplies connection settings; the client imports and runs them. Keep these separate when troubleshooting so you can tell whether the problem is installation, import, server availability, or local routing. This site focuses on these three clients and treats subscription sources and software releases as separate topics.

Open-source licenses and update boundaries

The V2Ray and Xray cores are licensed under MPL 2.0. GUI clients have their own license notices and dependency details. Open-source licenses set the terms for using, modifying, and redistributing code; they don't mean every software layer has identical licensing requirements. For ordinary use, check the features and release notes. If you plan to modify or redistribute software, review the actual license for the client, core, and relevant dependencies separately.

Updates affect different layers: a client update may change the interface or import behavior, a core update may add support for protocol fields, a subscription update refreshes connection profiles, and a rules resource update changes category matching. A successful subscription update doesn't mean core capabilities have changed. Keep any local settings you need before upgrading. Afterward, test existing connections and commonly used apps before enabling new options; changing fewer variables at once makes troubleshooting easier.

NOTES / RECENT ARTICLES

Configuration and troubleshooting articles

Practical guides that separate system settings, app behavior, and client routing.