Desktop and Android · Client Setup Guide

V2Ray Hubv2rayN Guides

Choose an open-source client for your device. Start by importing a subscription, then configure routing and TUN mode.

  • VMess / VLESS
  • Xray / V2Fly

Settings Overview / CLIENT SETTINGS

Subscriptions, Proxy, and Routing

Import your configuration first, decide which traffic enters the client, then adjust its outbound route. These are three separate tasks: subscription management, proxy mode, and routing rules. No single setting covers them all.

Import subscription URLs and share links separately

A subscription URL retrieves multiple server configurations; a share link usually describes a single configuration. In v2rayN, add the URL under “Subscription Groups,” enter a recognizable name, save it, then select “Update all subscriptions.” If you have a share link, copy it and import it from the clipboard instead. If the list is empty, check the update log before creating another group. Subscriptions keep configurations grouped and make bulk updates easy. The snippet on the right is a local inbound configuration used after import, not a subscription URL format.

View the subscription import steps →
{
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ]
}

The configuration window shows selected fields and cannot replace a complete configuration. A graphical client combines inbounds, outbounds, routing, and DNS. When getting started, make changes in the settings interface, one at a time, and note the original value before changing it.

Downloads / PLATFORMS

Choose a V2Ray client for your platform

Choose v2rayN for desktop, v2rayNG for Android, and consider v2flyNG if you need a V2Fly kernel. Check your operating system and processor before choosing an installer format; a client name in the filename alone does not tell you whether a package is compatible.

Windows

Choose v2rayN. The download page offers a desktop edition and the classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the familiar classic layout. Pick the interface you prefer, then install or extract the package as instructed. Keep the program in a permanent directory you can write to. Running it directly from an archive preview can interfere with saving settings and updates.

After the first launch, import a working configuration, confirm the kernel starts, and then enable the system proxy. If you see a port-in-use error, check whether another copy of the client is running. Back up your settings before installing or updating. When switching interface editions, make sure your subscription groups and routing settings are still intact.

Download

macOS

Choose v2rayN and select the Apple Silicon or Intel package for your processor. Check your chip or processor information in “About This Mac”; do not infer it from the year you bought the computer. After installation, launch the app from Applications. If macOS displays a security warning, read the specific reason and follow the options provided by the system.

System proxy and TUN have different permission requirements. First, get your browser working through the system proxy, then decide whether you need TUN. If access fails after waking the computer, switching Wi-Fi networks, or using another network tool, check the system proxy address and kernel status before deleting the subscription or reinstalling the app.

Download

Android

For most users, v2rayNG with the Xray kernel is the first choice. The download page also offers v2flyNG if you need a V2Fly kernel. Choose arm64 for most modern devices; if you are unsure of the processor architecture, check your device information or use the universal version. Compatibility depends on the kernel, so a configuration that imports into one app may not work in the other.

Import a subscription, select a configuration, tap Connect, and approve the system VPN prompt. If you need a persistent background connection, check battery optimization and background activity restrictions. If the app disconnects in the background, first check whether the system has stopped its process. If it also fails in the foreground, review the connection log and subscription update results.

Download

Linux

Choose v2rayN, then select deb or rpm for your distribution and x64 or arm64 for your processor. Package format and processor architecture are separate requirements; one does not determine the other. Install the package using your distribution’s graphical software installer. If dependencies are missing, address the specific installer message before trying to launch the client.

Desktop environments may handle system proxy settings differently, and some apps still require separate SOCKS or HTTP configuration. Test with one app known to follow proxy settings before trying others. Before enabling TUN, check permissions and existing virtual network interfaces. For troubleshooting, return to regular proxy mode and change fewer settings at a time.

Download

View all clients →Find installers and compatibility notes in the download center.

Setup Steps / QUICK START

From subscription import to connection testing

For your first setup, use the default routing and regular proxy, leaving TUN and LAN sharing off. Get the basic connection working before adding features; this makes it easier to identify the source of any problems.

  1. Add a subscription, then refresh the configuration list

    In v2rayN, open “Subscription Groups,” add the subscription URL and a name, save, and update. In v2rayNG for Android, manage URLs under “Subscription Group Settings,” then return to the main screen and update. When copying a URL, check for spaces, line breaks, or extra text. Import share links from the clipboard; do not enter them as subscription URLs.

    After the update, the imported configurations should appear in the list. If it is still empty, check the log to distinguish between an unreachable URL, an empty response, and an unsupported format. Subscription links may contain access credentials, so do not post the full URL in a public forum. The client reads configurations; it does not provide a subscription service.

  2. Select a configuration, then choose a proxy mode

    Select a server configuration from the list to start its corresponding kernel. On desktop, choose “Set up system proxy automatically” to proxy browser traffic. On Android, tap Connect and allow the VPN connection when prompted. For your first test, follow one clear setup path and avoid running multiple tools that capture the same traffic.

    Start with a routing preset rather than pasting a complete configuration found online. The system proxy determines whether an app sends requests to a local port; routing determines which outbound the kernel uses after receiving them. If an app ignores the system proxy, changing routing rules repeatedly will not solve the traffic capture issue. Check the app’s own network settings instead.

  3. Test access, then troubleshoot issues

    Open a page you use regularly in your browser and confirm that its content loads. Do not rely only on a connection icon or test result. A successful kernel test only confirms that a specific test path works; it does not mean every app and domain is working. Then test another type of destination to confirm that direct connections follow your routing policy and local services are not mistakenly sent through a proxy.

    Troubleshoot in this order: “Is the kernel running? → Is the app using the proxy? → Is the routing rule matching? → Is DNS working?” Timeouts, certificate errors, and DNS resolution failures have different causes, so keep the relevant error details. Before sharing logs, remove subscription URLs, server credentials, and personal file paths.

Read the complete guide →

Project Overview / OPEN SOURCE

Project V, V2Fly, and Xray

The client provides the interface; the kernel handles protocol connections and traffic. Consider these as separate layers when choosing a client. This makes it easier to tell which project provides a setting and why the same share link may behave differently across clients.

From a tool ecosystem to kernel forks

Project V is an open-source ecosystem built around network proxy tools, with V2Ray as a key component. The V2Fly community continues development and maintenance of the V2Ray kernel, while Xray is a separate kernel fork that evolved from V2Ray. They share some concepts and configuration structures, but supported protocols, transports, and fields can change over time. Similar names do not guarantee fully compatible configurations.

VMess and VLESS are protocol names; WebSocket and gRPC are transport methods; TLS concerns transport security. These settings must match the server when you import a configuration. A correct protocol name does not guarantee that the transport, server name, or port is correct. Check each field when troubleshooting instead of changing everything at once.

What the graphical client and kernel each do

v2rayN provides a desktop interface for subscription groups, server selection, system proxy, and routing, then passes settings to the selected kernel. v2rayNG is an open-source Android client using the Xray kernel; v2flyNG offers another option based on the V2Fly kernel. All three are open-source projects with independently developed interfaces, packaging, and release schedules. Available features also depend on the capabilities of the kernel in use.

Choose a platform first, then check the protocols and transport features your existing configuration requires. For desktop, start with v2rayN; for Android, consider v2rayNG first, and evaluate v2flyNG if you need V2Fly compatibility. A different kernel name does not guarantee a fixed difference in connection speed. Server routes, network conditions, and configuration usually have a more direct effect on access.

Open source does not mean a single shared license

Open source means the code is published under a license; each project’s license sets the terms for use, modification, and redistribution. The V2Ray kernel maintained by V2Fly and the Xray kernel use MPL 2.0, while clients and their dependencies may use other licenses. For everyday use, focus on features and maintenance notes. If you plan to modify, package, or distribute software, read the license files for the client, kernel, and bundled components separately.

Public code lets the community discuss implementations, report issues, and review changes, but it does not replace your judgment about where configurations come from. Subscription providers, server operators, and graphical clients have different roles. Know the source of a configuration before importing it, and understand which server your connection will pass through. An open-source client does not guarantee that a third-party service is trustworthy.

Keep a rollback option when updating

Client updates can change menus, configuration generation, kernel components, and rule data. Before updating, back up subscription groups, routing, and essential custom settings, and note the combination that currently works. Test existing configurations after the update before trying new features. If the basic connection stops working, compare logs and settings changes instead of repeatedly importing the same subscriptions.

Subscription, client, kernel, and routing data updates are separate operations. Updating a subscription refreshes server configurations; it does not automatically fix every client compatibility issue. Outdated routing data does not necessarily mean you need to reinstall the app. First identify which layer needs an update, then use the corresponding option. Avoid making more changes than necessary before locating the problem.

Compare the three clients →Read the beginner-to-advanced guide →

Explore Articles / ARTICLES

Subscriptions, Protocols, and LAN Sharing

Once your basic connection works, explore guides for your use case. See the LAN setup guide to share access with other devices, learn about subscription formats if an import fails, and compare protocols based on their actual configuration requirements—not just their names.

Protocol Basics

VMess vs. VLESS: A one-minute guide to the two protocols

Understand the differences in protocol-level encryption, outer transport security, and time requirements. Keep the server-provided parameters when importing a configuration; changing only the protocol name does not complete a migration. The article also explains why you should check which protocols the client’s kernel supports.

Read the article →

View all articles →Browse frequently asked questions →