Clients & Setup Guides Xray / V2Fly

V2RayMobile

v2rayNG & v2rayN client downloads

From importing subscriptions on Android to desktop routing, choose a client for your platform and follow the setup guides.

Free forever Open source GUI configuration

CONFIG / Configuration workbench

Subscriptions, routing & connection settings

The client turns your input into a configuration; the core runs it. Keep that distinction in mind and the menus are easier to navigate: subscriptions define your server list, routing determines where traffic goes, and system proxy or VPN mode controls which apps can send requests through the client. More switches do not mean better settings. Get the default setup working first, then adjust one setting at a time.

V2Ray routing rules: match first, then send

Routing determines where a request goes; it does not turn on the system proxy. In v2rayNG, choose “Bypass LAN and mainland China addresses” under “Settings” to send matching traffic directly. On desktop, manage rules under “Routing Settings” in v2rayN. Rules are evaluated in order, so put specific domains before broader rules. The snippet below only sends LAN addresses directly; to use it in a complete configuration, you need an outbound tagged direct. Menu names vary across the three clients, but always check that the rules use fields supported by your core.

routing · LAN direct snippet
{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      }
    ]
  }
}

DOWNLOAD / Choose a package by platform

Client downloads for four platforms

For desktop, start with v2rayN; for Android, start with v2rayNG. v2flyNG is an alternative using the V2Fly core. Even on the same platform, package choice depends on processor architecture: check your operating system first, then your chip, and finally choose a package. These links take you to the relevant platform in the download center, where each client card lists available files and release details.

Windows · v2rayN

For desktop users who need a system proxy, subscription groups, and custom routing. The download center offers both the desktop edition and the classic WPF edition. The desktop edition has a newer cross-platform interface, while WPF retains the classic workflow. Choose based on your preferences and system; there is no need to run both clients just to import the same subscription.

After installation, open the main window and confirm the core starts before adding a subscription. If the app exits immediately, check the required runtime, installation folder permissions, and security software logs. Enabling the system proxy usually affects only apps that follow that setting. If an app still connects directly, check its own proxy options before considering TUN. Treating the system proxy and routing mode as one switch is a common early detour.

Get v2rayN for Windows

macOS · v2rayN

For users who want to manage servers and routing through a desktop GUI. Open “About This Mac” to check your chip: choose arm64 for Apple Silicon or x64 for Intel. The wrong architecture may prevent the app from launching; reimporting a subscription will not fix it. Check the download center for package types and system requirements.

If a system security prompt appears on first launch, verify the file’s source, then grant permission in system settings. After connecting, check both the current network service’s proxy settings and the client’s routing rules; the status shown in the main window is not enough. TUN also requires permissions and covers traffic differently from a standard system proxy. Disable any active proxy before quitting the client to avoid apps sending requests to a local port after the client has closed.

Get v2rayN for macOS

Android · v2rayNG / v2flyNG

v2rayNG uses the Xray core and is a good general-purpose choice for Android. v2flyNG uses the V2Fly core and may suit configurations that depend on its specific behavior. Most recent phones use arm64. If you are unsure of your device’s architecture, check its system information or choose the universal version listed in the download center. You will still need to import a valid configuration after installing the client.

When you connect for the first time, Android asks you to authorize the VPN connection. Granting permission does not mean the server is reachable; check that you can access your intended sites afterward. If the connection drops after the phone has been idle, check battery optimization, background restrictions, and network changes. Do not run both clients’ VPN connections at once. Stop one before testing the other to avoid conflicts with VPN authorization and background state.

Get an Android client

Linux · v2rayN

For Linux desktop users who want to manage subscriptions through a GUI. Debian- and Ubuntu-based systems generally use deb packages; Fedora and openSUSE typically use rpm. Then choose x64 or arm64 for your processor. Package format is only the installation method: missing dependencies or an unavailable desktop environment can also prevent the app from starting.

After installation, launch the app from the application menu and check that its configuration directory is writable. A desktop system proxy does not automatically route traffic from every terminal app; some tools have their own network settings. TUN also involves permissions and routing, so configure it only after a standard proxy connection works. Launching at login and running a background service at startup are different: the first depends on the desktop session, while the second requires separate service management. One checkbox cannot cover both.

Get v2rayN for Linux

QUICKSTART / From setup to verification

V2Ray setup guide: get connected in three steps

Have a client and a valid subscription URL ready before you begin. The installer provides the local app; subscription and server connection details must come from elsewhere. For your first setup, keep the default options. Once the basic connection works, adjust routing, DNS, or multiplexing. Change one setting at a time so you can trace any problem back to its cause.

  1. Save the subscription and update the server list

    In v2rayN, open “Subscription Group Settings,” add a group, enter a note and subscription URL, then save and update it from the “Subscription Group” menu. In v2rayNG, save the URL under “Subscription Group Settings,” return to the main screen, and tap “Update subscription.” Do not paste webpage instructions into the URL field. Watch for spaces or line breaks at either end.

    If you have a share link beginning with vmess:// or vless://, use the relevant “Import from clipboard” menu instead of saving it as a subscription URL. After importing, check that the server appears on the main screen and that its port, transport, and TLS settings match the provider’s instructions. If a subscription update fails, keep the existing list and check whether your network can reach the URL. A “request failed” message does not mean every server is down.

  2. Choose a server and distinguish traffic capture from routing

    Select the configuration you want from the server list. On desktop, enable the system proxy if needed; on Android, start the connection and grant VPN permission. Test with a standard proxy or the default VPN mode before enabling advanced options. The system proxy controls which app sends requests to the client; routing controls where the client sends those requests. Check each layer separately.

    For everyday use, choose a routing option such as bypassing LAN and mainland China addresses as needed. Global mode changes how traffic that reaches the client is routed; it does not automatically capture traffic from apps that ignore the system proxy. If a desktop app has its own proxy settings, check the address, port, and proxy type. For broader traffic capture, configure TUN using the platform guide and watch for permission issues or conflicts with other networking tools.

  3. Test access, then check the logs

    Open a site you know is reachable, then test the site you actually need. First determine whether all requests fail, only one domain fails, or only one app fails. A running status in the client shows only its local state. Confirm server reachability, authentication, and DNS resolution with real requests; test results in the server list are no substitute for checking in a browser.

    Narrow down errors in this order: local traffic capture, domain resolution, remote connection, and routing match. For timeouts, check the network and server address. For authentication errors, verify the credentials. For certificate or handshake errors, check the system clock, server name, and TLS settings. Before sharing logs, redact subscription URLs, user identifiers, and sensitive server details. The error type and where it occurred are usually enough to start troubleshooting. These details are more useful than toggling a row of settings at random.

ECOSYSTEM / How clients and cores work together

Project V, V2Fly, and the Xray ecosystem

Project VV2FlyXray-coreCommunity maintained

V2Ray is an ecosystem, not a one-size-fits-all installer

Project V is built around modular network proxy tools, and V2Ray is a widely used name within that ecosystem. People searching for V2Ray on mobile usually want a GUI client that can import a configuration and connect—not a core configuration file to edit by hand. Desktop v2rayN and Android clients v2rayNG and v2flyNG fill that role: they provide an interface, store server details, generate configurations, and call the relevant core to handle network traffic.

That is why this site separates downloads from setup instructions. The download center covers platforms and package choices; the quickstart covers the shortest path to a working connection; the full guides cover platform permissions, proxies, and troubleshooting. When something goes wrong, first identify the layer: a window that will not open points to the client or runtime environment; a failed subscription fetch points to the URL or request; a failed connection handshake points to core configuration or server settings. Similar names do not mean the same troubleshooting steps apply.

V2Fly and Xray: shared roots, separate development

V2Fly is a community that continues to maintain V2Ray-related tools. Xray-core grew from related code and has developed along its own path. The two share configuration concepts, but differ in protocol capabilities, supported options, and defaults. Interpret configuration fields in the context of the core you are using; do not assume everything is compatible just because both clients are called V2Ray clients.

When choosing a core, start with the server’s requirements, then check what the client actually supports. A client recognizing a share link means it can parse the link format—not that its current core can use every parameter. For newer protocol features in particular, check the client and core release notes. Switching cores can help test compatibility, but it does not replace the basic checks for server address, credentials, and transport settings.

Three open-source clients, chosen by platform and core

v2rayN is an open-source desktop client for Windows, macOS, and Linux, suited to managing multiple subscriptions, switching servers, and editing routes in a GUI. v2rayNG is an open-source Android client using the Xray core, suited to everyday mobile connections and subscription management. v2flyNG is an open-source Android client using the V2Fly core, and an alternative when you need its specific compatibility. These recommendations reflect each client’s platform focus, not a made-up speed ranking.

All three clients are community-maintained open-source projects and are free to use. The client and the remote server service are separate: server fees, validity periods, and access conditions are set by the provider. This site organizes client downloads and setup guides; installing an app does not provide remote server access. To compare menus, platforms, and cores, read the side-by-side review of the three clients and decide whether you need a backup client.

Open-source licenses: your rights and responsibilities

Clients and cores in the Project V ecosystem publish source code under open-source licenses that set the terms for use, modification, and redistribution. V2Fly’s V2Ray core and Xray-core use MPL-2.0; check each client’s own release materials for its license. Publicly available source code is a verifiable project attribute, but it says nothing about how every third-party server or subscription service operates.

In practice, keep subscription URLs secure, understand VPN permissions and proxy coverage, and follow the network-use rules where you are. Remove account-identifying details before sharing configuration screenshots, logs, or share links. Do not judge an unfamiliar configuration by its note alone. Check the server address, port, transport, and routing destination to understand what the client is being asked to do.

Update the client, and check that your configuration still fits

Client updates can change the interface, fix import issues, or add support for core changes. Core updates may affect protocol support and how configuration fields are interpreted. Before updating, back up your subscription groups and custom routes, and note which proxy mode you use. Afterward, test a known working configuration before restoring advanced settings. This makes it easier to distinguish interface changes, compatibility issues with old fields, and network fluctuations.

The homepage does not list specific releases; current downloads and release details are in the download center. Menu names in the guides help you find settings, but if the interface changes, follow the feature descriptions and release notes. Do not expect an old screenshot to match pixel for pixel. The key checks remain the same: where the subscription is saved, when the proxy is enabled, and which outbound the rules ultimately select.

NOTES / Practical tips

Share links, proxy modes & startup troubleshooting

These three articles are listed by publication date and cover import options, traffic routing, and client startup issues. Start with the article that matches your symptoms; there is no need to begin with advanced parameters. Subscription imports and connection failures are different problems. If the client will not open, you do not need to start by changing remote server settings.

How to import vmess:// and vless:// share links: single-server links vs. subscription URLs

A share link usually describes one server; a subscription URL points to a list that can be updated over time. Both can be copied, but they do not belong in the same input field. This article explains the format differences, where to import each type in v2rayNG and v2rayN, and why importing a single link does not automatically reflect later server changes. For anyone who has a link but is unsure which menu to use.

Read the share link import guide →

System proxy, global mode, or bypass mainland China: a guide to V2Ray proxy modes

The system proxy switch and routing mode control different layers, despite their similar names. This article compares how global, bypass mainland China, and direct modes route traffic. It explains why “global” does not capture every app on your device, with examples for browser traffic, LAN services, and apps with their own proxy settings. If an app still connects directly, start here to understand which traffic the client can capture.

Read the proxy mode comparison →

v2rayN crashes on startup: troubleshooting missing runtimes and permission issues

If the window will not stay open, start with the local environment. This article checks the .NET runtime, extraction path, security software logs, and folder write permissions, and explains how to distinguish a client startup issue from a core startup issue. Test after addressing one cause at a time to avoid repeated reinstalls while the same permissions problem remains. Check whether your subscription is valid after the main window opens normally.

Read the startup crash troubleshooting guide →