Xray core · Android client

v2rayNG for Android V2Ray client downloads

v2rayNG targets Android and runs on the Xray core, with support for VMess, VLESS, Trojan, Shadowsocks and REALITY; desktop and Linux are covered by v2rayN, and subscription import, routing modes and per-app proxy each have their own settings.

  • Xray core
  • VMess · VLESS · REALITY
  • Subscription import

Core features

Subscription import, routing settings and protocol support

v2rayNG and v2rayN use almost the same setting names, so this section breaks down the groups you adjust most often: how to pick a routing mode, what per-app proxy controls, how subscriptions update, and how protocols pair with cores. Every item maps to a setting that really exists in the client, and changes take effect immediately.

Settings at a glance

  • Routing mode Proxy only · Bypass LAN · Global Proxy onlyBypass LANGlobal
  • Per-app proxy Choose per app whether traffic is proxied
  • Start on boot Restore the connection automatically after the device starts
  • Domain resolution strategy routing.domainStrategy IPIfNonMatch

These four settings carry the same names in v2rayNG and v2rayN. Changes take effect immediately, with no client restart and no need to re-import the subscription.

Config snippet

v2rayNG and v2rayN share the same config structure. Below is an inbounds / outbounds / routing excerpt taken from a config file:

{
  "inbounds": [
    { "protocol": "socks", "port": 10808 }
  ],
  "outbounds": [
    { "protocol": "vless", "tag": "proxy" },
    { "protocol": "freedom", "tag": "direct" }
  ],
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      { "type": "field",
        "domain": ["geosite:cn"],
        "outboundTag": "direct" }
    ]
  }
}

Core family relationships

Project V protocol specs
V2Fly core Xray core

V2Fly and Xray are two core implementations of the same protocol spec, with nearly identical config field structures, so the same config usually works with either. Xray updates faster for newer features such as VLESS and REALITY, and v2rayNG uses it by default; v2flyNG carries the V2Fly core for setups that need to stay consistent with older configs.

Protocol support

  • REALITY
  • VLESS
  • VMess
  • Trojan
  • SS

All five protocol names appear in the client's protocol dropdown. VMess and Shadowsocks stay compatible with older configs; VLESS paired with REALITY is the newer combination with lower handshake overhead; Trojan uses a standard TLS handshake, which suits servers that already have certificates configured.

Settings in detail

The routing mode decides which traffic goes through the proxy, and the client offers three options: Proxy only, Bypass LAN and Global. For everyday use, pick Bypass LAN so that LAN devices, router admin pages and local services stay direct while everything else is proxied; choose Global only when all traffic must pass through the proxy, and Proxy only when you pair the client with a system-level proxy. Per-app proxy narrows the scope further to individual apps, so you can route only the browser and selected tools while everything else stays direct — useful on devices that also run internal work apps. Start on boot decides whether the connection comes back automatically after a restart. All of these live on the settings page, and no subscription re-import is needed after changing them.

  • Proxy only
  • Bypass LAN
  • Global
  • Per-app proxy
  • Start on boot

Download options

Client downloads for four platforms

The download page is split by platform, and each section lists the matching client and package types. Desktop is always v2rayN, while Android lets you choose between v2rayNG and v2flyNG; if you are unsure which one to grab, read the platform notes below first.

See all clients →

Open-source ecosystem

The Project V ecosystem and three clients

V2Ray's protocol specs, core implementations and graphical clients belong to separate projects. Understanding how they relate makes it easier to choose the right entry in the client's protocol dropdown and core options.

Project V and the protocol specs

V2Ray first appeared as a proxy tool under the Project V umbrella, and the protocol specs were later split from the implementations: the specs define the handshake flow and encryption for protocols such as VMess and VLESS, while the actual connection handling is left to different cores. VMess was the early workhorse with broad compatibility, and most older configs are built on it; VLESS redesigned the handshake afterwards, removing redundant checks and the built-in encryption layer and leaving encryption to the transport layer for lower overhead; REALITY goes further by having the server borrow the target site's certificate to complete the TLS handshake, so no domain certificate of your own is needed. All of these names appear in the client's protocol dropdown, and which one you choose depends on what the server config supports.

The core family: V2Fly and Xray

A core is the program that actually establishes connections, parses protocols and routes traffic; every client setting is ultimately translated into a config the core can read. V2Fly and Xray are two implementations of the same protocol spec, with nearly identical config file fields, so the same config usually works with either. Xray updates faster for newer protocol features such as VLESS and REALITY, and v2rayNG uses it by default; the V2Fly core is carried by v2flyNG, which suits setups that need to stay consistent with older configs. The two cores release independently, so their update schedules are not fully in sync — when protocol behaviour differs, first check whether the cores on the server and client sides match.

Open-source status of the three clients

v2rayN, v2rayNG and v2flyNG are all released under open-source licenses with public source code and ongoing community maintenance. v2rayN covers Windows, macOS and Linux, while v2rayNG and v2flyNG target Android; all three share the same subscription format and config structure, so a subscription link can be reused when you switch platforms without regenerating anything. The client only handles connections, protocol parsing and routing; nodes and server configs come from your own subscription source. Keeping that split in mind makes troubleshooting easier — you can tell whether a problem lies in client settings or in the subscription and network environment.

Updates and version maintenance

Clients and cores release independently, and their updates differ: core releases usually bring protocol implementation changes and performance shifts, while client releases focus more on the interface and settings. Subscription content is maintained by the server, so nodes can be added or removed without reinstalling the client — run one manual update from the subscription group to pull the latest list, or turn on auto-update in settings if you need the list to stay fresh over time. The update entry points have slightly different names on desktop and Android, but both support manual triggering. Before updating the client, note down your current routing mode and per-app proxy settings and check them again afterwards.

Frequently asked questions

Common connection and setup questions

From subscription imports and routing modes to desktop package choices, start with these; more detailed troubleshooting steps are collected on the FAQ page.

Why is the node list empty after importing a subscription?

First check that the subscription URL is complete and reachable, then run a manual update from the subscription group; if QR scanning fails, import again by pasting the link. If the list is still empty, check whether the subscription has expired or the URL was truncated.

Which routing mode should I choose?

For everyday use pick Bypass LAN, keeping LAN device access and router admin pages direct; choose Global when all traffic must go through the proxy, and Proxy only when you pair the client with a system-level proxy.

What is the difference between v2rayNG and v2flyNG?

The interface and settings are basically the same; the difference is the core: v2rayNG uses Xray and v2flyNG uses V2Fly. Subscriptions and config formats are interchangeable, so either one works.

Which package should I download for desktop?

Windows has two entry points, the desktop edition and the classic WPF edition; on macOS pick the dmg that matches your chip, and on Linux choose deb or rpm for your distribution. See the download page for the full comparison and system requirements.

See the full FAQ →