Android client/Xray core/Open source

Download v2rayNG for Android Android V2Ray Client Setup Guide

Start by importing a subscription, then configure routing rules and DNS. Use v2rayNG on Android and v2rayN on desktop.

Protocols & security

  • VMess
  • VLESS
  • Trojan
  • Shadowsocks
  • REALITY

Choose a download for your platform

Client downloads

Choose a v2rayNG or v2rayN build

Check your operating system first, then your processor architecture. The client manages profiles and starts the core; you'll need to obtain the server address, authentication details, and subscription URL separately.

An incompatible package architecture can prevent installation or startup. An incompatible subscription format usually causes an import error. Identify which step failed before changing settings; repeatedly switching clients rarely helps.

Browse all clients →

Settings & configuration snippets

Xray, subscriptions, routing & DNS

Understand what each setting affects before changing it. These snippets illustrate configuration structure; they are not complete, ready-to-use configurations. Check the selected client and core for actual feature support.

Xray core & traffic sniffing

v2rayNG provides the graphical settings; Xray handles the actual connections. With traffic sniffing enabled, the core can identify domains in supported traffic to help match domain-based routing rules. It does not decrypt app content. When troubleshooting, first check that the protocol, transport, and security settings match the server, then check Sniffing. Mux is a separate multiplexing option and isn't suitable for every protocol combination. Leave it off initially, establish a working baseline, and enable it only if needed.

sniffingdestOverrideMux
{
  "sniffing": {
    "enabled": true,
    "destOverride": [
      "http",
      "tls"
    ],
    "routeOnly": true
  }
}

The settings panel shows an example state, not the default for every installation. See the advanced guide for complete rules and how to combine DNS routing with custom configuration.

Explore advanced configuration →

First connection: recommended steps

Install, import, verify

Start with a connection whose settings are clear and whose results you can reproduce. During initial setup, avoid changing routing, DNS, Mux, and app scope all at once; otherwise, it's hard to pinpoint the cause of a problem.

  1. Install the client and prepare your connection details

    Choose an installer for your operating system and processor architecture. On Android, install v2rayNG and check the VPN mode, routing, and DNS options in Settings. On desktop, install v2rayN and confirm that the interface starts normally. When asked for permission, review why it's needed before granting it; each permission is required only for the corresponding traffic-capture method.

    Installing the client doesn't give you a working server. Before continuing, prepare a subscription URL, share link, or complete server details. Subscription URLs may contain access credentials, so don't post them in public forums. If you need help, share only an error description and screenshots with authentication details removed.

  2. Import a profile and select an active server

    For a single-node link, use Import from clipboard or scan a QR code. For a subscription URL, open Subscription Group Settings, save it, then update that group. These are different import methods. After importing, check that the server address, port, protocol, transport, and TLS or REALITY settings are complete, then select a profile as the active server.

    Start with the client's standard routing setup; don't add complex rules yet. On Android, tap Connect and approve the VPN prompt. On desktop, start the core and choose the system proxy mode you need. If a subscription update returns nothing, check whether the URL returned a subscription rather than a login page. An import failure doesn't necessarily mean the server is offline.

  3. Test a real request, then adjust routing

    Open a browser and visit a site you use regularly; check the client logs to confirm the request reached the core. TCPing shows whether a target port is reachable. A real connection latency test is closer to an actual proxied request, but neither result alone proves every app will work. Also check DNS resolution, page loading, and the target app.

    If the connection fails, check in this order: is the client running, is traffic reaching it, is the server reachable, does DNS resolve, and does a routing rule match? Keep a verified baseline, change one thing at a time, and retest. Once the basic path works, configure per-app proxy, custom routing, or TUN so you can easily roll back.

Read the full guide →

Open-source projects & maintenance

Project V, V2Fly & Xray

The core handles network connections; the client organizes settings and connects to the operating system. Understanding these two layers helps you decide whether to change a parameter, update the client, or adjust system permissions.

From protocol capabilities to the GUI

Project V is a network proxy ecosystem represented by V2Ray. It separates inbound, outbound, routing, DNS, and transport settings so they can be combined for different network needs. V2Fly continues community maintenance of V2Ray, while Xray is a related core project that develops independently. They share some configuration concepts, but their features and parameter details don't always match.

VMess, VLESS, Trojan, and Shadowsocks are connection protocols. TCP, WebSocket, and gRPC are transport options. TLS and REALITY relate to connection security. These terms describe different layers and aren't interchangeable. Even after importing a VLESS share link, check its transport and security parameters; the protocol name alone doesn't guarantee compatibility.

Project V ecosystemV2Fly coreXray coreGUI client

What each client does

v2rayN is an open-source GUI client for desktop systems, with tools for server management, subscription groups, routing, and proxy settings. v2rayNG is for Android, uses the Xray core, and integrates with the system VPN interface. v2flyNG is also for Android and uses the V2Fly core; consider it when you specifically need that core. These clients turn user settings into network configuration; they don't provide server services.

Open-source licenses & costs

All three clients are free and open source. Each client project and included core has its own license. Read the license notices bundled with the software before modifying or redistributing it; one component's terms don't automatically apply to all dependencies. The client being free doesn't mean server resources are free. Subscription validity, data limits, and connection quality are outside the client's control.

Client updates vs. subscription updates

Updating the client can change its interface, features, or bundled core. Updating a subscription refreshes server profiles; one doesn't replace the other. If the server's authentication or transport parameters change, update the relevant subscription first. If a new feature isn't recognized, check whether the client and core support it. Save any custom rules you need before updating, then check the logs and existing connections afterward—not just whether the app opens.

Local settings vs. remote services

Routing rules, DNS addresses, and per-app lists mainly affect how this device handles traffic. Remote server reachability, certificates, and authentication depend on the server configuration. A running status only confirms that the local service started; it doesn't guarantee a successful remote connection. For timeouts, authentication failures, or DNS errors, note the error type and when it occurred, then investigate the relevant part of the connection path. Don't assume every issue is caused by the proxy mode.

Technical notes

Latency tests, beginner troubleshooting & interface guides

Choose a guide for the issue at hand: understand differences between test results, work through common first-time setup problems, or learn what the main areas of the desktop client do.

To get started, read the beginner's guide. If you can already connect, continue with the advanced guide to routing and DNS.

Browse all articles →