Desktop and Android · Client setup notes

V2Ray Clients
Download & Setup

Platform-specific guides to open-source clients, from subscription import to split tunneling, with step-by-step settings for desktop and Android.

Setup guides Xray · V2Fly ecosystem
Protocols and security features
  • VMess
  • VLESS
  • Trojan
  • REALITY
Core ecosystem
  • Xray
  • V2Fly

Choose a client by platform

Check your operating system, CPU architecture, and package format before choosing a client. For desktop, start with v2rayN; for Android, consider v2rayNG. Choose v2flyNG if you specifically need the V2Fly core. The download page lists installation options and system requirements; installation files are not distributed here.

Windows v2rayN · Recommended

Desktop and classic WPF editions

If you're installing for the first time, start with the desktop edition, which uses a cross-platform interface. If you prefer the traditional menus and window layout, choose the classic WPF edition. Protocol support depends on the core in use, so don't judge compatibility by appearance alone. Check your device architecture in system settings, then select the matching download option.

If you already have a configuration, back up your subscription groups, custom routing, and DNS settings before moving to a new program directory. On first launch, import one trusted subscription, select a configuration, and enable the system proxy; then test with a browser. Leave TUN off for now so you can distinguish installation issues from traffic-capture settings.

macOS v2rayN

Choose the installer for your processor

Check your chip under “About This Mac”: choose arm64 for Apple Silicon or x64 for Intel. The same installer format can support different processor architectures; choosing the wrong one may prevent the app from launching or require a compatibility layer. Check system requirements, then install and open the app. Don't mistake a system permission prompt for a subscription issue.

The desktop setup is similar to Windows, but macOS places network settings and permissions elsewhere. After enabling the system proxy, check whether the app you're using honors it; apps with their own network settings may need separate configuration. If you need to capture traffic from more apps, review the TUN permissions, routing, and recovery steps first.

Android v2rayNG · Recommended

v2rayNG and v2flyNG

v2rayNG uses the Xray core and is a good place to start on Android. v2flyNG uses the V2Fly core and is an alternative when you specifically need it. Most recent phones use arm64, but check which architecture your device actually supports. If unsure, see the universal build notes on the download page rather than relying on the phone's release year.

The first time you connect after importing a subscription, Android will ask for permission to establish a VPN connection. This is separate from the node configuration in the client. Per-app proxy lets you choose which apps are included. If background connections keep dropping, check battery optimization and background activity limits; there's no need to change every battery setting upfront.

Linux v2rayN

Choose deb or rpm for your distribution

Check your distribution's package format, then choose deb or rpm; also make sure to select x64 or arm64 as appropriate. A desktop client requires a graphical environment and is not the same as a server program run from a configuration file. The download page features common package formats, with arm64 options listed separately.

After installation, import a subscription and test a basic connection in a regular desktop session. Desktop environments may handle system proxies differently, and apps may have their own proxy settings. If you need TUN, follow the client instructions for permissions on your distribution. If something goes wrong, save the logs and restore your previous network settings instead of repeatedly changing permissions.

A client provides a configuration and connection interface; it doesn't create a working remote server. Subscription URLs, share links, and manually entered settings should come from a trusted source you're authorized to use. Subscriptions often contain credentials, so hide the full URL, user identifiers, and keys in screenshots, exported configurations, and support requests.

Browse all clients →

System proxy, routing, and subscription settings

The same connection settings can appear in different places on desktop and Android. First identify how traffic reaches the client, then decide which rules should handle it. The sections below are organized by task. Interface snippets help you find settings, but exact labels depend on your client version.

What the system proxy captures

A system proxy directs traffic from apps that honor the operating system's proxy settings to a local proxy port. In v2rayN, choose Set system proxy automatically, then test with a browser. Apps with their own network settings may need separate configuration. This doesn't capture all traffic or switch routing to global mode. Unlike the VPN-based capture commonly used on Android, a system proxy is a straightforward way to verify a basic desktop connection. Clear the system proxy before quitting or switching clients to avoid apps sending traffic to a closed port.

v2rayN · System Proxy

Set system proxy automaticallyClear system proxy
Local listening port10808

A good order is: import a subscription → verify the system proxy or VPN connection → choose a routing mode → enable advanced traffic capture only if needed. Follow the full setup guide. For domain resolution, rule priority, and ongoing maintenance, see the complete guide.

Project V, V2Fly, and Xray

Distinguish projects, cores, and graphical clients before reading about protocols. Each serves a different purpose: projects form the technical ecosystem, cores provide connection capabilities, and clients put configuration controls in a desktop or mobile interface.

How the ecosystem fits together: not three installation steps

V2Ray is a proxy tool in the Project V ecosystem. V2Fly continues community maintenance of V2Ray, while Xray has developed its own implementation and features from this ecosystem. Tutorials may mention all three, but they aren't three programs you need to install in sequence. For graphical client users, the key question is which core runs the configuration and whether it supports the required protocols, transport, and security options.

VMess and VLESS are proxy protocols. REALITY is a security feature that needs to be understood in the context of a specific configuration; these aren't client platforms. If a subscription includes one of these names, check the full settings and compatibility requirements instead of guessing at speed or reliability from the name. Support for configuration fields varies between implementations and changes over time, so defaults in older tutorials may not suit your setup.

What clients do: store configurations and organize controls

v2rayN, v2rayNG, and v2flyNG are all open-source graphical clients, but they target different platforms and core combinations. v2rayN is designed for desktop use, with tools for managing subscription groups, switching system proxies, and editing routes. v2rayNG organizes settings around Android VPN connections and app management. v2flyNG is another Android option for users who need the V2Fly core. Choose based on platform and configuration compatibility, then personal preference; there's no need to install every client just because their names are similar.

A graphical interface can reduce the need to edit configuration files by hand, but it can't replace a remote service or fix problems with its availability. Successfully importing a subscription only means the client read its contents. A successfully started core means the local configuration was accepted. Accessing the destination site is one part of verifying the full connection. Checking each stage separately avoids assuming that a successful import means the connection is working.

Open-source licenses: understand each component's terms

Open source means that code is published under a license, which allows users to read, use, and modify it under specific conditions. Clients, cores, and bundled components may each use different licenses; don't assume that one project's license applies to everything. If you redistribute or modify software, read the license included with each component and retain any required copyright and license notices. For everyday users, this information can also clarify where a project comes from and how it's maintained.

Community maintenance doesn't mean every client gets the same features at the same time. Desktop settings, Android permissions, and core support for new configuration fields can all change independently. This page organizes guidance by function rather than treating a button's location as permanent. If your interface differs, start with concepts such as system proxy, routing, subscriptions, DNS, and TUN, then find their equivalents in your version.

Updates and maintenance: keep a rollback path

Client, core, and subscription updates are separate maintenance tasks. Client updates mainly affect the interface, integration, and system compatibility; core updates affect protocol implementation and runtime behavior; subscription updates simply fetch configuration from the provider again. Handle one type of change at a time and run basic checks afterward to pinpoint the source of any issues. Keep notes on custom routing, DNS, and per-app settings so nothing gets lost when migrating.

For routine checks, start with the apps you use most: make sure the client is running, the selected configuration is available, and the system proxy or VPN status is as expected. Then check routing and DNS. DNS resolution failures, refused connections, and handshake errors point to different stages; use the time of the error to narrow down what happened. Remove subscription URLs and connection credentials before sharing logs. When testing speed, understand the target and method, and don't treat a single result as a guarantee of real-world download performance.

For the full setup sequence, see the complete guide from beginner to advanced. For domain resolution issues, go to the DNS setup section; for speed tests and updates, see routine maintenance. Once your basic connection is stable, try sniffing, FakeDNS, or more specific routing rules one at a time. This is easier to maintain than turning on every advanced option at once.

V2Ray setup and troubleshooting articles

The tutorials walk you through tasks in order; these articles address specific questions. If you've just installed a client, start with the ten beginner FAQs. If you can connect but performance is inconsistent, check the node, network path, and local settings in turn. When comparing protocols, focus on configuration and security features, not just the names.