Client downloads and configuration docs

V2Ray Downloads & Guides

A focused collection of v2rayN, v2rayNG, and v2flyNG downloads and usage docs, covering the practical setup order for subscription imports, protocol selection, and split routing.

Open source Chinese docs Xray · V2Fly Free forever
4 platform options Desktop v2rayN Android v2rayNG · v2flyNG Core families Xray · V2Fly Protocol guides VMess · VLESS
Configuration paths

Client features and key operations

From subscription management to split routing, key settings are explained in the order they are used. Switch topics to see the relevant interface structure, use cases, and common pitfalls.

Step 1

Import subscriptions and update nodes

A subscription URL retrieves node configurations provided by the service. On desktop, add the URL under subscription groups, save it, and run an update. On Android, import from the clipboard or scan the QR code supplied by the service. Importing writes to the configuration list; it does not select a working node or choose the system proxy mode.

The correct order is to verify the full subscription URL, run one manual update, then open the node list and choose an entry. Use a short name that clearly identifies each subscription's purpose so sources do not get mixed together. If an update fails, check for a truncated URL, an expired subscription, or an inaccurate device clock before repeatedly deleting the client configuration.

View the subscription import steps →
Subscription groups v2rayN
Subscription groups Node list Update history
Update current subscriptionRead the remote configuration list Ready
Automatic updatesRuns on the interval set by the client Configured
Group noteDistinguishes subscription sources Recommended
Downloads

Choose by platform

Use v2rayN across desktop platforms; on Android, choose between v2rayNG and v2flyNG. The download page also explains package types, system requirements, and architecture differences.

Windows

Use v2rayN on Windows desktops, with a choice between the modern desktop interface and the classic WPF interface. Before installing, confirm the system architecture, then complete extraction or installation, subscription import, node selection, and system proxy setup. If the program starts but browser traffic does not change, check whether the system proxy is enabled before changing protocol parameters.

Go to downloads

macOS

Use v2rayN on macOS desktops as well. Choose an Apple Silicon or Intel package according to the device processor; the two cannot be distinguished from the system appearance alone. If macOS blocks the app after installation, review its permissions in the system security settings. After importing a subscription, verify basic connectivity with the system proxy before considering deeper traffic interception.

Go to downloads

Android

On Android, choose v2rayNG with the Xray core or v2flyNG with the v2fly core. Most recent devices use the arm64 package; check the universal package when the architecture is uncertain. After importing a subscription, select a node and start the connection. If the status changes after switching networks, stop and restart the connection instead of importing the same subscription again.

Go to downloads

Linux

On Linux desktops, use v2rayN. The download page provides deb and rpm packages for common distributions and distinguishes x64 from arm64. After installation, check the desktop session, tray support, and permissions. For graphical desktop use, configure the subscription and system proxy in the client first; router deployment is a separate use case.

Go to downloads

Choosing an installation package

The same platform name does not mean packages are interchangeable. For desktops, check the operating system, processor architecture, and package format; on Android, choose between arm64 and universal packages. When uncertain, open the system information page to identify the device before selecting the matching download tab instead of judging by filename length.

Choosing a client

Start with v2rayN on Windows, macOS, and Linux. On Android, begin with v2rayNG, which uses the Xray core and supports common subscription, routing, and connection settings. Choose v2flyNG when the v2fly core is required. Base the choice on the platform and core requirements rather than installing several clients and switching between them.

Ecosystem overview

Project V, V2Fly and Xray

Separate protocols, cores, clients, and subscription services into four layers before deciding where a configuration problem occurs.

Project V is a technology ecosystem, not a single desktop program

Project V has grown into a technology ecosystem around proxy protocols, transports, routing rules, and core programs. The v2rayN, v2rayNG, and v2flyNG products users see are graphical clients: they provide the interface, manage subscriptions, generate configurations, and control the core. The core program invoked by the client actually handles inbounds, outbounds, protocols, and routing rules. Therefore, a client that opens successfully only proves that the interface layer works; it does not prove that the subscription, core configuration, or network interception is correct.

Once this relationship is clear, troubleshooting becomes more direct: for import failures, check the subscription URL and client parsing first; for core startup failures, inspect protocol fields, port conflicts, and logs; when the browser bypasses the proxy, check the system proxy or TUN; only when some domains use the wrong exit should you inspect routing rules and DNS. Blaming every failure on the node hides the real issue and often leads to unnecessary reinstalls.

V2Fly and Xray are related but independently evolving core families

V2Fly continues the core implementations and community maintenance associated with the Project V ecosystem, evolving common protocol, transport, and routing capabilities. Xray developed an independent core implementation on related technical foundations and expanded protocol combinations, transports, and configuration features. They share concepts such as inbounds, outbounds, routing, and DNS, but their support ranges, field details, and feature cadence are not identical.

Whether a configuration file or subscription node works depends on whether the core called by the client supports the relevant protocol and transport combination. When you see names such as VMess, VLESS, Trojan, or REALITY, verify not only the client name but also the core type and matching parameters. The terminology pages explain the boundaries between these concepts, while the configuration guides follow the real path from the client interface to the core configuration.

Open-source licensing supports review, forking, and sustainable maintenance

v2rayN, v2rayNG, v2flyNG, and the related cores are maintained through open-source projects and community collaboration. Open source means developers can review implementation details, configuration structures, and change histories, while different maintenance directions can continue from a shared technical foundation. For everyday users, the practical benefit is that documentation, issue records, and feature boundaries can be discussed publicly, making dependencies between clients and cores easier to verify.

Open source does not mean every configuration is automatically correct. Subscription contents still come from the relevant service, routing rules are determined by the user or client defaults, and system permissions are controlled by the local environment. Keep the software, third-party subscription, and personal configuration distinct instead of treating them as one judgment. This site organizes client access and configuration knowledge; it does not replace account, route, or support information from subscription services.

Treat updates as three separate tracks: client, core, and subscription

Client updates mainly affect the interface, platform compatibility, and configuration management. Core updates affect protocol implementations, transport capabilities, and runtime behavior. Subscription updates simply retrieve the node list again. These update types have different sources and schedules. Updating the client may not fix a subscription that cannot refresh, and repeatedly refreshing a subscription will not change core field compatibility. Identify the fault layer first, then choose what to update for more stable maintenance.

Before upgrading, record the current proxy mode, custom routing, and DNS settings. Afterward, verify basic connectivity with a minimal configuration before restoring TUN, process rules, or complex split routing. If behavior changes between versions, check the exact stage in the logs: subscription parsing, configuration generation, core startup, system proxy setup, DNS queries, and route matching each point to a different troubleshooting path.

v2rayN: the desktop configuration hub

v2rayN targets Windows, macOS, and Linux desktops, offering interfaces for subscription groups, node management, system proxy, routing rules, TUN, and log viewing. Desktop users can complete the full workflow—from import to troubleshooting—within one client. Package and permission details vary by platform, but the configuration concepts are largely consistent, making it suitable for users who want a similar workflow across multiple desktop devices.

v2rayNG: Android with the Xray core

v2rayNG is a widely used graphical client for Android, using the Xray core to handle protocols and routing configuration. It supports importing configurations through subscriptions or single-node share links, along with per-app proxying, routing, DNS, and connection logs. Switching between mobile and Wi-Fi networks can affect connection status, so troubleshooting should cover the system network, client connection, and subscription node together.

v2flyNG: Android with the V2Fly core

v2flyNG is for Android users who need the v2fly core path, while its configuration concepts remain connected to the Project V ecosystem. Confirm that the subscription contents and protocol combination are supported by the selected core. If the same node behaves differently across clients, compare core support, DNS settings, and routing rules instead of copying every advanced option.

How to choose

Frequently asked questions

Use these questions to quickly find the relevant section. Continue to the guides and terminology pages for complete definitions, configuration examples, and troubleshooting order.

Why is the node list empty after a successful subscription import?

After saving a subscription URL, you usually need to run one manual update. If the list is still empty, check in order that the URL is complete, the subscription is valid, the device clock is accurate, and the client log contains no parsing errors. A subscription URL and a single-node share link are different input types and belong in their respective import fields.

Which should come first: system proxy, rule mode, or TUN?

On desktop, start with the system proxy to verify browsers and typical apps. Use routing rules when the exit should be selected by domain or address; evaluate TUN for programs that ignore system proxy settings. Enabling them in stages separates node, rule, and system interception issues.

What determines whether to use VMess or VLESS?

The choice depends on the server's protocol, transport combination, and core support—not on the protocol name alone. VMess has its own authentication and encryption design; VLESS is lighter and is often combined with secure transports such as TLS and REALITY. Every client parameter must correspond to the server configuration.

Will updating a subscription overwrite custom routing?

That depends on how the client stores subscription groups and routing configuration. In general, keep custom routing in a separate rule set or configuration and export a backup before major changes. A subscription update mainly replaces the node list; the subscription name, nodes, and routing rules should not be treated as one object.

Continue to protocol, core, and routing terminology →