v2rayN · v2rayNG · v2flyNG

V2Ray Download Hub Client downloads and setup guides

Start by importing a subscription, then configure proxy routing and TUN settings for desktop and Android clients.

Free forever Open source Xray · V2Fly

Subscriptions, routing, and core settings

Get a basic connection working first, then adjust traffic routing and DNS one setting at a time.

v2rayN · Subscription group settings preview
Subscription groups
Add group
Address (URL)
Enter subscription URL
Update subscription
Do not use proxy
Server filter
Set as needed

Subscription groups keep configurations from different sources separate, so you can update, filter, or disable each one independently. In v2rayN, open “Subscription group settings” from “Subscription groups,” add a name and subscription URL, then save and update the group. On the first import, keep the default filters and confirm that entries appear before adding keywords. Overly restrictive rules can leave the list empty. Unlike pasting share links one by one, groups preserve the source association. The provider still controls the subscription contents, and manual changes may be overwritten on the next update.

Setup order: import first, then configure routing

You do not need to enable every advanced option on your first run. After updating your subscription, select a working configuration and confirm that the core starts. Then set the system proxy or grant VPN permission. Adjust routing and DNS only after the basic connection works. This gives each change a clear test and makes it easier to revert when something goes wrong, instead of toggling several settings at once.

Setting names and the actual interface

Menu locations can change as clients are updated. This guide uses common labels such as “Subscription groups,” “Routing settings,” and “Settings” to point you to the relevant features. The switches shown are for illustration and are not a recommended combination for every device. If a label differs, look for the equivalent feature. For step-by-step instructions, see the getting started guide; for custom rules, see Advanced Setup.

Choose a client for your platform

Use v2rayN on desktop. For Android, start with v2rayNG or choose v2flyNG if you need its core.

Windows

v2rayN: desktop and classic WPF editions. The desktop edition uses a cross-platform interface, while the WPF edition retains the classic Windows workflow. Choose based on interface preference, system requirements, and the features you need—not on the assumption that each edition uses different subscription sources. Before downloading, check your device details under “Settings → System → About” in Windows, then read the package notes.

On first launch, choose a configuration location where you have write access, so permissions on system folders do not prevent settings from being saved. After importing a subscription, select “Set system proxy automatically” in the main window to let apps that follow system settings use the client. To capture traffic from other apps, check TUN separately. Before exiting, make sure the system proxy has been restored so apps do not keep pointing to a local proxy port that is no longer running.

Go to downloads

macOS

v2rayN: choose a package for your processor. Open “About This Mac” from the Apple menu and check your chip or processor, then choose the Apple Silicon or Intel download. The wrong architecture may prevent the app from running or require an additional compatibility layer. The client name in the package title alone is not enough to determine whether it is the right one.

After installation, import a configuration and test the connection before setting up the system proxy or network features that require permissions. Evaluate system permission prompts in the context of the task you are performing; do not follow driver installation steps intended for a different operating system. If your browser works but other apps do not, first check whether they use the system proxy and whether they need TUN, then review the routing rules.

Go to downloads

Android

Recommended: v2rayNG; v2flyNG is an alternative. v2rayNG uses Xray, while v2flyNG is suited to setups that need V2Fly configuration compatibility. Prefer a package that matches your device architecture; if you are unsure, check the universal build notes. If a share link includes parameters such as REALITY, confirm that the client and core support them instead of installing each app in turn and relying on the connect button as a compatibility test.

After importing a subscription or clipboard contents, select a configuration and connect. On the first connection, grant the system VPN permission. If another VPN is already connected, resolve any traffic-capture conflict first. The system may stop apps running in the background, interrupting the connection; check the client’s background activity permissions in battery settings. Adjust DNS, per-app routing, and other routing options one at a time after the connection works.

Go to downloads

Linux

v2rayN: choose a package format for your distribution and architecture. Choose the deb package for distributions that use deb-based package management, or the rpm package for rpm-based distributions. Also select the correct architecture: x64 or arm64. Runtime dependencies, desktop environments, and permission policies vary, so check the download page’s system requirements before installing.

A program starting successfully does not mean every app in your desktop environment will use the system proxy. Browsers, terminal tools, and background services may each read different proxy settings, so identify which app is making the request when testing. TUN mode also requires network device and routing permissions. If you only need proxy support for graphical apps, configure regular proxy mode first and decide later whether to capture more traffic.

Go to downloads

The client package and connection configuration are separate: installing a client provides configuration management and connection features, but you must obtain a subscription URL, server settings, and permission to use them separately. Subscription links may contain access credentials, so verify their source before importing. Hide addresses, identifiers, and authentication fields before sharing screenshots or logs. The downloads page explains package types; the home page does not list specific versions.

Browse all clients
Clients and cores · What each does
Graphical interface
Import · edit · view logs
Proxy core
Protocols · DNS · routing
Project V
The V2Ray ecosystem
Core families
Xray · V2Fly

The interface can save settings, but the core must be able to process them. Check both.

The open-source Project V ecosystem
Clients and cores: what’s the difference?

V2Ray originated in Project V’s proxy tool ecosystem. The term “V2Ray client” often refers to the graphical interface and proxy core together, but they are not the same thing. v2rayN, v2rayNG, and v2flyNG provide configuration interfaces; the core reads the configuration and handles the connection. Understanding this distinction helps pinpoint whether a failure occurred during import, core startup, or the remote handshake.

V2Fly continues the community-maintained V2Ray line, while Xray developed into a separate core branch from related code. They share some configuration concepts but have evolved different protocol and transport capabilities. Core names are not performance rankings. Choose based on the server settings, protocol support, and client integration; a configuration that works with one core may not work unchanged with another.

Three open-source clients and what they do

v2rayN is a desktop client for managing subscriptions, routing, and core logs in a graphical interface. v2rayNG is an Android client that uses the system VPN interface to handle traffic and is built around Xray. v2flyNG provides an Android GUI for the V2Fly branch. All three are released and maintained as open-source projects. Similar names do not mean their features are identical or that configuration fields can be freely exchanged across platforms.

If your subscription provides standard share links, first check the protocol, transport, and security layer described by the link, then choose a client. VMess, VLESS, and Trojan are protocol names; REALITY is a connection security feature. Saying a client “supports V2Ray” does not explain all of these distinctions. Review the glossary to clarify the terms, then check each setting in the configuration interface.

Open-source licenses and component boundaries

Open-source licenses set the terms for using, modifying, and redistributing code. The V2Ray cores from V2Fly and Xray are licensed under MPL 2.0. Graphical clients and other bundled components may have their own licenses, so a core’s license does not necessarily apply to the entire package. Before redistributing or modifying software, review the license texts and notices for each component.

Public source code supports community review and collaboration, but it does not replace device permission management, checking subscription sources, or reviewing configuration. Server addresses, identifiers, and private subscription links in a client may be sensitive. When reporting an issue, include the error type and relevant settings, but remove credentials. Sharing an entire configuration publicly is usually unnecessary for troubleshooting.

Updating the interface vs. updating the core

A graphical client update may change menus, subscription parsing, or system integration. A core update may change protocol implementation, configuration fields, or network behavior. When a new protocol is incompatible, check both whether the client can generate the required configuration and whether the core supports its fields. Updating the interface alone may not add missing core capabilities; replacing the core alone may not work with the configuration the client generates.

Before updating, save your current configuration and routing settings, and note which combination works. After updating, test a basic connection before restoring custom rules. If something breaks, find the first clear error in the logs and compare it with what changed. Repeatedly updating a subscription will not fix a local permissions issue, and changing routing again and again will not correct an invalid SNI. The more specific your maintenance notes, the easier it is to recover.

Narrow down the cause by error type

If the list is empty after a subscription update, check the link, response content, and filters first. If the core will not start, check configuration fields and local port conflicts. For certificate errors, check the system clock and confirm that the SNI matches the certificate domain. If the connection is established but some apps cannot access sites, check the system proxy’s coverage, DNS resolution, and routing rules in turn. Do not assume every issue is caused by the server.

Test a reproducible symptom: use the same app and destination, and change one setting at a time. If desktop and Android behave differently, compare the core, DNS, and local traffic-capture settings instead of comparing subscription names alone. For common issues, start with Troubleshooting. For rule order, FakeDNS, and custom outbounds, see the advanced configuration guide.

V2Ray Download Hub is an independent resource site that organizes client downloads and guides. The site and client projects are maintained separately. Settings shown here illustrate how options relate; refer to your client’s documentation for its actual menus, protocol support, and system requirements. See the About page for the site’s scope and editorial principles.

Practical tips and configuration guides

Learn how core selection, DNS behavior, and subscription errors affect your setup.

Comparisons

Xray vs. V2Fly: choosing a core for v2rayNG or v2flyNG

Explore the origins of the V2Fly and Xray core branches in the Project V ecosystem, comparing support for VLESS, REALITY, and other protocols, as well as configuration compatibility. Learn how to choose between v2rayNG and v2flyNG on Android. The key is whether the server settings match the core’s capabilities, not whether the client names sound similar.

Advanced Setup

How FakeDNS works and when to enable it in v2rayNG

FakeDNS answers domain queries with addresses from a reserved range, then restores the real domain on outbound connections. This article explains how it can preserve domain information when used with the right traffic-capture setup, and how it relates to TUN, routing rules, and app DNS caches. Understand the prerequisites before enabling it to avoid creating new compatibility issues while trying to fix DNS.

Troubleshooting

V2Ray subscription update failed or returned no nodes? Causes and checks

If the list is empty or parsing fails after a subscription update, common causes include an expired link, an unsupported encoding, an unavailable proxy during the update, or an incorrect filter. Check the link, network path, response format, and filters in order. This helps distinguish between content that was never retrieved and content that could not be parsed, avoiding unnecessary reinstalls.

Browse all articles