Client Downloads / Xray Setup Guides

v2rayN Client Downloads & Setup

A curated directory of open-source clients, with step-by-step setup guides for subscriptions, system proxy, and routing across four major platforms.

Xray Core Subscriptions Free forever
Clients / Choose by platform

V2Ray Client Downloads

Use v2rayN on desktop. On Android, start with v2rayNG; consider v2flyNG if you need the V2Fly core.

Windows

v2rayN offers a desktop edition and a classic WPF edition. Choose the one that best fits your preferred interface.

Go to downloads →

macOS

v2rayN packages for macOS are available for Apple Silicon and Intel. Check your device’s processor first.

Go to downloads →

Android

v2rayNG uses the Xray core, while v2flyNG offers the V2Fly core as an alternative. Choose a build for your device architecture.

Go to downloads →

Linux

v2rayN offers deb and rpm packages. Choose the format used by your distribution and match your processor architecture.

Go to downloads →

Choose a package by checking your operating system first, then your processor architecture. Not every desktop runs x64; ARM devices need a matching build. A file extension alone does not tell you whether a package is compatible. The download page groups links for each client on one card, making it easy to compare options. For a first install, use the standard package that matches your device; there’s no need to install multiple editions just to compare interfaces.

Installing a client does not automatically give you a working remote connection. Next, import a subscription URL or share link that you obtained yourself and are authorized to use. A subscription URL retrieves a set of connection profiles; a share link usually describes a single connection. The client has different import options for each. Have your link ready before opening the guide to avoid switching back and forth between an empty list and settings windows.

If you already have a working setup, save your subscription groups, custom routing rules, and other essential settings in the client before updating. Menus may differ between the desktop and classic editions, so after migrating, check the active server, listening port, and system proxy status. Avoid letting two clients manage the system proxy at the same time; otherwise, your browser may use a port that does not match the client currently running.

Browse all clients →
Setup / From Menus to Connections

Common v2rayN Settings

Set up the traffic entry point first, then configure where traffic goes. Change one setting at a time so it’s easier to undo the last step if a connection fails.

Send app traffic to the local proxy

The system proxy setting determines whether apps that follow system settings send their connections through the client. For a first v2rayN setup, choose “Set system proxy automatically” from the System Proxy menu, then open a browser to test it. “Clear system proxy” restores direct connections, while “Don’t change system proxy” leaves the existing settings untouched—it does not mean the client is handling traffic. Unlike setting a proxy in a browser alone, this setting affects apps that use the system configuration. If one app still connects directly, check its network settings before changing subscriptions.

Read the system proxy setup guide →

These settings work at different layers: subscriptions provide connection parameters, the core establishes connections, the system proxy or TUN sends app traffic into the client, and routing determines each connection’s exit. Seeing a server in the list only confirms that the import worked. Browser access also depends on the traffic entry point and protocol connection. Check these layers in order to pinpoint the problem instead of turning on every option at once.

For your first test, keep a known-working configuration as a reference. Select a server, enable the system proxy, test the intended destination in a browser, and check the client logs. If only one app fails, first check whether it follows the system proxy. If all apps fail, check the remote connection and local port. See the v2rayN setup guide for step-by-step instructions; platform-specific details are covered in the complete documentation.

Ecosystem / Clients & Cores

Project V, V2Fly, and Xray

Clients provide the interface; cores handle protocols and routing. Understand how they fit together before choosing what to install, update, or configure.

Project V V2Fly Xray
Project background

From V2Ray to two core branches

Project V is an open-source project ecosystem built around network proxy tools, with V2Ray as one of its widely used core implementations. In everyday searches, “V2Ray” can refer to the core or more broadly to clients that use related protocols. Before downloading, distinguish between the two: the core alone is not a complete desktop app with subscription lists, a tray menu, and settings windows. A graphical client organizes those tasks and runs the selected core.

The V2Fly community continues development and maintenance related to V2Ray, while Xray has evolved as a branch of the same technical lineage. The two share some history and configuration concepts, but their features and fields have diverged over time. An older guide’s configuration does not automatically work with the other core just because you change a name. Check the actual core’s support, especially for transport and security settings and newer protocol features.

When choosing a core, there’s no need to decide which one is “better” in general. Start with what your existing connection requires. For configurations that use Xray-specific features such as REALITY, choose a client that can run the relevant core. If your configuration targets V2Fly, confirm that the client preserves the required parameters. Even when protocol names match, check the transport and security options rather than relying on abbreviated labels in a list.

Graphical clients

What each of the three clients does

v2rayN is an open-source graphical client for desktop systems, designed for managing subscriptions, selecting servers, and configuring routes on a computer. It puts common tasks in a GUI, but the selected core still handles the connection. Seeing a setting in the interface does not mean every core combination supports the same parameters. If startup fails after switching cores, check the logs first, then confirm the connection’s protocol and field requirements.

v2rayNG is an Android client that uses the Xray core. After importing a configuration, you authorize the client to route traffic through Android’s VPN connection. This is different from using the system proxy menu on a desktop. Read the full system authorization prompt the first time you start it, and check whether another app is already using the VPN connection. Desktop tray instructions do not apply directly to phones.

v2flyNG is also an open-source Android client, offering the V2Fly core as an alternative. It is a good fit if you already have a compatible configuration and want to stay with that core branch. v2rayNG and v2flyNG are not the same app under different names, so check compatibility before importing a configuration. Stop any active connection before switching clients to test. The two share some concepts, but their menus and supported parameters should be considered separately.

Open source and licensing

Distinguish open-source code from service providers

v2rayN, v2rayNG, and v2flyNG are all open-source clients, with code maintained by their respective projects. Open source means you can read, use, and study the code under the terms of its license; it does not mean every project uses the same license. Clients, proxy cores, and bundled components may each have different licenses. Check the license included with the relevant project before modifying or distributing software.

Client software and remote services are separate things. Installing a free client does not create a subscription or extend an existing service. The subscription provider supplies the addresses, ports, identity parameters, and transport settings; the client reads and uses that information. If a subscription expires or a remote address is unreachable, check with the provider rather than relying on reinstalling the software.

This site focuses on client downloads and graphical setup guides. Illustrations explain what settings mean; they do not show an active remote connection. When choosing a configuration source, make sure you understand its permissions and terms of use. Treat subscription links as potentially sensitive access credentials. Before sharing logs publicly, hide addresses, identity parameters, and full links while leaving the error type visible for troubleshooting.

Maintenance and updates

Update the interface—and review config changes

Graphical clients and cores may follow different release schedules. A client update can change menus, subscription parsing, or platform support; a core update can affect protocol features and configuration requirements. When troubleshooting, note the client name, core in use, and error message separately. This helps distinguish a changed interface from an expired subscription, and a protocol incompatibility from a network connectivity issue.

If your configuration is stable, save essential settings before updating. Afterward, test the same connection path before gradually enabling new features. Don’t change clients, switch cores, and rewrite routing rules all at once. If too many things change together, even a successful connection won’t tell you what fixed it. If you’ve edited the configuration manually, check whether the client regenerates runtime files on startup or when saving.

In config.json, inbounds defines local entry points, outbounds defines exits, and routing determines how connections are matched between them. The graphical interface usually generates these sections based on your current settings. Beginners should start with the menus and inspect the generated config once they understand what each section does. Direct edits to a temporary runtime file may be overwritten the next time you switch servers.

If you still can’t identify the issue, check the FAQ and narrow it down by installation and setup, usage tips, or troubleshooting. To repeat the full process, follow the getting started guide. For platform-specific permissions, proxy settings, and installation differences, see the cross-platform setup documentation. Find the step where things went wrong before changing settings; this is usually more effective than importing the same subscription again.

Articles / Setup & Troubleshooting

V2Ray Setup Articles

From importing subscriptions to generating config, find an article for the issue at hand. These three guides cover config structure, list organization, and failed updates.

If a subscription update fails, start with the troubleshooting checklist rather than changing routing right away. If connections work but the list is hard to manage, read about groups and filters. The config structure article is best read after verifying a basic connection; it explains which fields the client’s menus generate. Each article tackles a different layer, so choose the one that matches where you’re stuck.

Browse all articles →