CLIENT / ROUTING / DNS

V2Ray Client
Download & Setup

A central starting point for installing v2rayN, v2rayNG, and v2flyNG, with coverage of subscription imports, routing, and DNS setup for desktop and Android clients.

Free forever Open source Chinese documentation Xray · V2Fly
United States Japan Hong Kong Singapore South Korea

CLIENT OPERATIONS

Subscriptions, servers, and local traffic handling

Client setup is more than pasting in a single link. Subscription updates, server filtering, route matching, DNS egress, and TUN capture all affect the connection result.

MODULE / 01

Import subscriptions and organize servers

A subscription URL retrieves server configurations in bulk. After importing one, run an update, then organize servers by protocol, region, or custom notes instead of searching through a long list. v2rayN supports subscription groups and filters, while v2rayNG is better suited to maintaining a small set of frequently used groups on Android. If an update fails, distinguish an expired link, a request that needs a proxy, an incompatible response format, or a client permission issue before deleting existing settings. Once the update completes, select a server and make it active; having a subscription does not mean a server is in use.

View the subscription import steps →

PLATFORM DOWNLOADS

Client options for four platforms

v2rayN is the main desktop option, while Android users can choose between v2rayNG and v2flyNG based on core requirements. Download packages, CPU architectures, and system requirements are grouped on the download page.

DESKTOP / WPF

Windows

Windows users can choose the next-generation v2rayN desktop interface or the classic WPF interface. Both support subscription management, system proxy settings, routing rules, and core control. New installations can start with the desktop version, while users with a stable setup can continue with the familiar WPF workflow.

Go to downloads

DESKTOP / DMG

macOS

On macOS, use the v2rayN desktop client and choose an Apple Silicon or Intel package according to the device processor. After installation, import subscriptions, switch the system proxy, and edit routes. If macOS blocks the first launch, confirm the application permission in Security settings.

Go to downloads

MOBILE / APK

Android

v2rayNG is the first choice for Android, using the Xray core for common protocols and routing settings; choose v2flyNG when the V2Fly core is required. Most modern devices use arm64 packages. If the processor architecture is unknown, choose a universal package to avoid downloading a file that does not match the device.

Go to downloads

DESKTOP / DEB · RPM

Linux

On Linux desktops, use v2rayN and choose a deb or rpm package according to the distribution, then select the x64 or arm64 architecture. After installation, pay attention to the desktop environment, how system proxy settings are written, and TUN permissions. On servers, focus on configuration and service management rather than copying desktop steps.

Go to downloads

QUICK START

Three steps from subscription to connection

For the first setup, complete the shortest connection path before handling routing, DNS, and TUN. This confirms whether the basic connection works and avoids making several changes at once, which makes diagnosis harder.

View the complete guide →
  1. STEP 01

    Import a subscription and update it

    Copy the complete subscription URL, add a record in the client's subscription group, and run one manual update. When it finishes, check that servers appear, notes are readable, and protocol fields are recognized correctly. If the list is empty, troubleshoot the subscription response before changing system proxy settings.

  2. STEP 02

    Choose a server and proxy mode

    Select a configuration from the server list and make it active, then choose system proxy or TUN mode based on your needs. For the first connection, keep routing rules simple and test a browser and common applications. Once the basic connection works, switch routing modes and add custom direct or proxy conditions.

  3. STEP 03

    Check logs and the outbound after connecting

    After starting the connection, check the client status and core logs to confirm that local listening ports are established. Then test domain access and applications that require a proxy separately. If the connection toggle is on but an application remains inaccessible, check whether it reads system proxy settings, whether DNS uses the expected outbound, and whether the rules send the traffic to the correct outbound.

PROJECT V / CORE FAMILY

How Project V, V2Fly, and Xray relate

The client provides the graphical interface and system integration; the core handles protocols, transports, routing, and outbound processing. Understanding this division makes client release notes and configuration compatibility easier to interpret.

From protocol tools to a client ecosystem

Project V is an open-source technology ecosystem built around proxy protocols, transport layers, routing, and network tools. It is not the same as any one graphical client. Desktop and mobile clients provide subscription management, connection controls, system proxy settings, log viewing, and configuration editing; the core called by the client performs the actual network processing. Servers, routing rules, and DNS options shown in the interface are ultimately assembled into configuration that the core can read.

V2Fly continues the core capabilities of the V2Ray family, emphasizing open protocol combinations, transport settings, and routing. Xray developed from the same technical family into an independent core, with its own direction in areas such as VLESS, XTLS, and REALITY. The two cores share many basic configuration concepts, but their feature support, field details, and release schedules are not identical, so compatibility cannot be judged from the appearance of a configuration file alone.

v2rayN is a desktop graphical client that can manage multiple cores and subscription groups; v2rayNG is mainly used on Android with the Xray core; v2flyNG targets the V2Fly core. All three clients are maintained as open-source projects, with client and core projects releasing updates independently. When a protocol is not recognized or a new field cannot be saved, check both the client's supported range and the selected core's capabilities.

A

Open-source licensing and code review

v2rayN, v2rayNG, v2flyNG, and their commonly used cores have clearly defined open-source licenses. These licenses set the terms for using, modifying, and redistributing code, while source code, commit history, and release notes allow the technical community to review changes. This site relies on actual client features and public documentation rather than substituting download counts, ratings, or unverifiable test figures for technical information.

B

Clients and cores update separately

Client updates commonly affect the interface, subscription management, system proxy integration, and configuration generation. Core updates may add protocol capabilities, change configuration fields, or fix network-processing issues. Their release cycles differ. When diagnosing connection problems, record the client name, core family, operating mode, and log errors instead of describing only whether the connection button is enabled.

C

Check configuration compatibility field by field

VMess, VLESS, Trojan, WebSocket, gRPC, TLS, and REALITY belong to different protocol, transport, and security layers and cannot replace one another. When converting subscriptions or migrating between clients, confirm that the target client recognizes every field. If flow control, transport parameters, or the server name are lost during conversion, the connection may behave differently from the original client.

COMMON QUESTIONS

Featured configuration questions

These questions cover four common points of failure: the first import, client selection, failed updates, and no traffic after connecting. Complete procedures are available in the user guide and advanced manual.

Q / 01

Why are there no servers after importing a subscription?

First confirm that you added a subscription group rather than a single server, then run a manual update. If the update reports an empty or unrecognized response, check that the URL is complete, the link still works, and whether updates through a proxy are required. Do not keep changing routing rules before the subscription has returned content.

View the import steps →
Q / 02

How do you choose between v2rayNG and v2flyNG?

Choose v2rayNG when you need capabilities associated with the Xray core; choose v2flyNG when you specifically need the V2Fly core or already have matching configuration. Their interfaces are similar, but core support and some fields differ. After migrating a subscription, check that protocol, transport, security, and routing settings were preserved completely.

View the Android clients →
Q / 03

What if the connection is enabled but the app has no traffic?

First check whether the application reads system proxy settings; if it does not, consider TUN mode. Then check the active server, the default routing outbound, DNS resolution, and local listener status. If only one application fails, focus on its proxy support and network permissions instead of rebuilding every subscription.

Troubleshoot by layer →
Q / 04

Why are routing rules not matching after an edit?

Check the rule order, domain matching type, outbound tags, and whether GeoIP and GeoSite data are consistent. Existing connections may continue using the old path, so reconnect before testing. If the logs show the target domain and matched outbound, you can determine whether the problem is in the rule conditions or the subsequent connection stage.

Read the routing guide →