Desktop Client · Subscription & Proxy Setup

V2Ray for Windowsv2rayN Download & Setup

Choose a multi-platform client, import a subscription, and configure the proxy based on application coverage.

Graphical interfaceSystem proxySplit routing

Client access

Choose a download by system and architecture

Choose v2rayN for desktop platforms. On Android, start with v2rayNG, then consider v2flyNG when the core requirements call for it. Confirm the runtime environment before choosing a package; similar client names do not make installers interchangeable across systems.

Windows

v2rayN · Desktop / WPF

Desktop pick

For a first choice, start with the desktop version, which uses a cross-platform interface. The classic WPF version keeps the familiar Windows UI; both manage proxy configurations. Choose based on system requirements, workflow preferences, and needed features—not by installing both.

Open the download page to review the x64 package and runtime requirements. Back up existing settings before installation. After the first launch, verify that the client opens normally and the core starts before importing a subscription. If the core reports a local listener failure, check for port conflicts instead of repeatedly changing subscriptions or reinstalling the system.

macOS

v2rayN · Apple Silicon / Intel

Check the chip type in “About This Mac”: Apple Silicon uses arm64, while Intel uses x64. Selecting the package for the actual hardware is more reliable than guessing from the purchase year. Desktop clients have similar concepts, but permission prompts and network settings differ by system.

If a security warning appears on first launch, verify the file source and app identity, then use the system-provided option to proceed. Do not treat disabling the entire security system as an installation step. After enabling the system proxy, check whether the browser reads system settings; tools with their own proxy options require separate configuration.

Android

v2rayNG / v2flyNG

v2rayNG first

v2rayNG uses the Xray core, while v2flyNG is an alternative built on the V2Fly core. Check the subscription's protocol and transport requirements before choosing a client. Most newer devices use arm64; if the architecture is unclear, read the download page before considering a universal package.

Android routes app traffic through VpnService, and the first connection requires system approval. That approval does not confirm a successful remote connection. If the connection drops after the screen locks, check battery optimization, background restrictions, and other VPN apps; if only one app fails, first review per-app proxy coverage.

Linux

v2rayN · deb / rpm

Choose deb or rpm according to the distribution's package system, and confirm whether the processor is x64 or arm64. Package format and processor architecture are separate requirements, so checking only one may still lead to an installation failure. This page provides graphical client downloads; running only a core is not the same as configuring a desktop proxy.

Desktop environments differ in how they read system proxy settings, and command-line tools may use only environment variables or their own arguments. Confirm the local listening address, port, and proxy type before connecting the target app. If TUN is required, separately check permissions, the virtual interface, and its relationship with existing network routes.

A client manages configurations; it does not include a usable remote service. Have an authorized subscription or connection profile ready before importing it. Installation alone does not mean the connection requirements are in place.

Operations index

The four layers of proxy configuration

A subscription supplies connection parameters, the system proxy and TUN determine how apps connect, and routing rules determine how connected requests are handled. During troubleshooting, identify the affected layer first instead of changing exit rules when the app has not connected at all.

Import and update subscriptions

What this setting solves

A subscription gives the client a set of connection parameters to manage. Add the URL, update it, and then choose the configuration to use; a successful import only means the content was read, not that the remote connection works.

Which apps will use it

A subscription does not directly change browser or terminal settings. Only apps connected to the local proxy send requests through the currently selected configuration.

When further configuration is needed

If an update fails, first check that the URL and retrieval path work. Hide the subscription URL before sharing screenshots so its access credentials are not exposed.

Example settings path: Subscription group → Add subscription URL → Update subscription
Review proxy modes, protocols, and core concepts →

Get started in three steps

From importing a configuration to testing each app separately

For a first setup, establish a path that is easy to explain and reproduce. Avoid adding complex routing and TUN at the same time; verify the basic connection first, then add settings one by one so you know which change caused any problem.

  1. Import a subscription and choose a configuration

    Install and open the client, find Subscription Management or Subscription Groups, add a recognizable name, then paste and save the complete subscription URL. Run an update and confirm that connection entries appear. For a single shared link, use the appropriate import function rather than repeatedly updating it as a subscription URL.

    After choosing the configuration, check that its protocol, transport, and security parameters were recognized completely. Do not change server-provided fields just to dismiss an error. A subscription update failure and a connection failure are different: the first concerns retrieval, while the second concerns core startup and actual requests. Treat subscription URLs as sensitive information and keep them out of public screenshots, chats, and troubleshooting attachments.

    View the subscription import steps
  2. Choose an access method and start the connection

    On desktop, confirm that the core starts and the local listener reports no errors. Then enable automatic system proxy configuration so apps that follow system settings can connect. Start with an understandable routing preset and note the current options. Do not let multiple proxy clients compete for system settings, or the displayed toggle may not match the actual request path.

    On Android, start the connection after choosing a configuration, read and approve the system VPN prompt, then check that per-app settings include the target app. If a desktop terminal tool requires manual proxy entry, copy the actual address, port, and type from the client rather than using values from another device. Configure TUN permissions and routes only when you clearly need to cover apps that ignore proxy settings.

  3. Test apps separately and keep a baseline

    Start by opening a familiar target you are authorized to access in a browser, then make a request from the terminal or desktop tool you actually need. One successful page load does not mean every app is connected or all routing rules are correct. Use client logs to confirm that the request entered the core, and record the access method and selected configuration.

    If the browser works but the terminal fails, check the terminal's proxy environment first. If one domain fails, check rule matching and DNS. If the core cannot start, address configuration errors or port conflicts. Once the basic connection is stable, back up the settings before adding split routing and TUN one at a time. When stopping, clear unused system proxy settings and confirm manually configured apps no longer point to a closed listening port.

View the complete guide →

After completing the basic setup, continue with the beginner-to-advanced handbook. It covers core concepts, installation, subscriptions, proxy modes, routing, TUN, and maintenance in sequence. Read one chapter after each step is verified rather than changing every setting at once.

Open-source ecosystem

Clients, cores, and connection parameters

These three layers have different responsibilities. The client provides the interface and organizes configuration, the core handles connections and routing, and a subscription or manual profile describes the remote service. Understanding the relationship is more reliable than judging capabilities by product names alone.

Project V and the core families

Project V is a starting point for understanding this proxy-tool ecosystem, with V2Ray as one of its widely used core projects. The V2Fly community continues V2Ray's maintenance and development, while Xray evolved from a related code base into its own feature path. They share historical ties, but similar names do not mean their configuration capabilities are identical today.

The core handles low-level protocol processing, transport, secure connections, and routing. VLESS is a protocol name, while Xray is a core name; they belong to different layers. When choosing a client, check the protocol, transport, and relevant security features together. A subscription mentioning a protocol does not guarantee that every client supports it completely.

The roles of the three graphical clients

v2rayN targets desktop platforms and provides a graphical entry point for configuration management and core use; the available cores and features depend on the package and current interface. v2rayNG targets Android and uses the Xray core; v2flyNG also targets Android and uses the V2Fly core, making it an option when those core capabilities are specifically required.

All three clients are open-source projects, but none is a subscription service. Installing one does not automatically provide a usable remote connection. During migration, distinguish shareable connection parameters from platform-specific settings: a subscription may be imported again, while system proxy settings, permissions, per-app coverage, and local ports must be checked again on the new device.

Open-source licenses and usage boundaries

Open source means the code is available for review, use, modification, or redistribution under the applicable license terms; it does not mean every component uses the same license. The V2Fly and Xray cores use MPL 2.0. Review the licenses for graphical clients and their dependencies separately, especially before modifying or redistributing software.

Open code does not replace judgment about configuration sources. Who operates the remote service, how the subscription URL is stored, and whether the target connection is properly verified remain separate usage concerns. Operate only on authorized devices and networks and follow applicable rules. When certificate errors occur, check the time, domain, and parameters before considering any bypass as a routine setting.

Client updates and subscription updates

Client updates may change the interface and configuration management, core updates may change protocol support or behavior, and subscription updates mainly refresh remote connection entries. These updates cannot replace one another. If subscription entries expire, reinstalling the client may not help; if a core lacks a feature, repeatedly updating the same subscription will not add it.

For routine maintenance, back up the configuration first, then read change notes relevant to the features you actually use. After updating, verify core startup, subscription retrieval, system proxy, and common apps in order, then check custom routing. If something breaks, record the trigger and error category, hide sensitive fields, and document the issue without changing multiple layers at once.

This site organizes download links and Chinese usage instructions; it does not replace the client interface, core documentation, or remote service documentation. When terminology differs, check the concept first before changing configuration.

Latest articles

Identify configuration issues by symptoms

Record which app and which step produced the problem, then choose the relevant article. Port listeners, system proxy scope, and background restrictions are separate layers; testing them independently reduces unnecessary reinstalls and unrelated changes.

Download clients