Desktop & Android · Subscription Setup

V2Ray for Windows Download v2rayN and setup guides

Open-source clients for desktop and Android. Start by importing a subscription.

  • VLESS
  • VMess
  • Trojan
  • REALITY
  • Xray core

Static illustration of the client interface; menu names and layout may vary by release.

Client settings

System proxy, routing, and subscriptions

First decide how traffic enters the client, then where it goes. These four settings serve different purposes.

Illustration of the settings interface · Not a functional client panel

The system proxy setting writes a proxy entry to the operating system. In v2rayN, select an available server, then choose “Set up system proxy automatically.” Only apps that follow system proxy settings will use that entry. “Clear system proxy” restores the system-side settings; “Leave system proxy unchanged” preserves the existing configuration. This is separate from routing and does not capture traffic from every program. Unlike configuring a proxy in each app, this is convenient for everyday desktop use. If an app does not follow the system proxy, check its own network settings.

View proxy and routing settings →

Recommended order: connect first, then route traffic

On first use, import a subscription and confirm that its configurations appear in the list. Select one as the active server, then enable the appropriate traffic-handling mode, and adjust routing last. Changing one layer at a time makes it easier to revert if something goes wrong. If you change DNS, routing, ports, and transport settings all at once, even a successful connection will not reveal which change fixed the problem.

Desktop system proxy and Android VPN mode are different ways to route traffic on different platforms. v2rayNG uses system VPN permission to create a local traffic entry point; per-app proxy can further limit which apps use it. v2rayN can use the system proxy or other traffic-handling methods as needed. Use the setting names in the guide to find the relevant features, but do not copy every toggle from one platform to the other. Check connection status, whether the app is using the proxy, and whether the remote service is reachable separately.

If only subscription updates are failing, start with troubleshooting subscription update failures. If the subscription imported successfully but websites will not load, check the active server, system proxy, and routing in turn. A single test only reflects the specific path it checks; it does not prove that every app and website is reachable.

Downloads

Four platforms, choose yours

Use v2rayN on desktop and start with v2rayNG on Android. The download page lists package formats and processor architectures separately.

Windows

v2rayN offers a desktop edition and the classic WPF edition. The desktop edition has a cross-platform interface, while WPF retains the classic Windows layout. Check system requirements, then choose based on your preference. After importing your configuration, check the active server, system proxy, and routing.

Go to downloads →

macOS

v2rayN offers separate downloads for Apple Silicon and Intel. Check “About This Mac” to identify your chip and avoid choosing the wrong architecture. If installation requires authorization, review the system prompt and assess the source before proceeding. Do not disable security settings across the board just to run the client.

Go to downloads →

Android

Start with v2rayNG, which uses the Xray core; consider v2flyNG if you need compatibility with the V2Fly ecosystem. Choose the arm64 or universal package supported by your device. On first connection, approve the system VPN permission. Background activity policies may also affect connection stability.

Go to downloads →

Linux

v2rayN is available in deb and rpm packages for x64 and arm64. Choose the package format that matches your distribution's package manager. Proxy settings vary across desktop environments; after installation, check whether apps follow the system proxy rather than just confirming that the client starts.

Go to downloads →

Get the installer and subscription separately

The client reads configurations, runs the core, and manages connections; it is not the remote service itself. Downloading it does not provide a working server. You still need a subscription URL or share link that you are authorized to use. When copying a subscription, include the complete URL, but not the webpage title, description, or surrounding spaces. Make sure the protocols supported by the subscription are compatible with your client and core.

Keep your existing configuration when switching devices

You can import the same compatible subscription on desktop and Android, but app preferences, per-app lists, and custom routing usually need to be configured separately. Before migrating, note your current traffic-handling mode and save any local configuration you need, then test it on the new device. Do not post exports containing URLs or identifying information in public forums. Redact subscription URLs and authentication fields from troubleshooting screenshots.

Open-source ecosystem

Project V, V2Fly, and Xray

The client provides the interface; the core handles connections and routing. Similar names do not mean they serve the same purpose.

How the ecosystem fits together

Project V / V2Ray

A starting point for understanding proxy components and configuration systems.

V2FlyContinues development of the V2Ray core
XrayDeveloped as a fork of V2Ray

The forks evolve independently. Check the specific core for protocol and configuration support.

See how V2Ray cores differ →

From project names to usable clients

Project V provides background for understanding the V2Ray ecosystem. The V2Ray core organizes network requests through components such as inbounds, outbounds, routing, and transports. Managing these directly often requires working with configuration files. v2rayN, v2rayNG, and v2flyNG provide graphical interfaces that organize common tasks into areas such as subscriptions, servers, and settings. When searching for a “V2Ray client,” you usually need a graphical client for your operating system, not a file chosen solely by its core's name.

V2Fly continues the development and maintenance of V2Ray, while Xray grew out of a V2Ray fork and has evolved independently. They share configuration concepts but differ in features and syntax. Being able to import a protocol does not mean every transport combination is supported. To check compatibility, verify the protocol, transport, security layer, and core support together. Use the server parameters as your source of truth; do not change critical fields just to match a tutorial.

What each of the three open-source clients does

v2rayN is for desktop platforms, where it manages servers and subscriptions and translates interface settings into a configuration the core can use. v2rayNG is for Android and uses the Xray core; it is the recommended Android download on this site. v2flyNG is an Android alternative that uses the V2Fly core. All three are open-source projects, but they are not different names for the same installer. Their menus, configuration support, and operating environments are not fully interchangeable.

Choose by operating system first, then consider what core capabilities your existing configuration requires. If your current setup works and you have no specific compatibility issue, there is no need to switch clients just because the name is different. When migrating, import a small number of configurations and test the basic connection before handling subscriptions and routing rules. The client comparison guide explains what each app is for and helps avoid applying desktop system proxy steps to Android.

View the client selection guide →

Open-source licenses and configuration responsibilities

Open source means that the applicable license governs how code can be used, modified, and distributed; it does not mean every distribution method has the same licensing terms. The V2Fly and Xray core projects use MPL 2.0. Graphical clients and their dependencies may have different licenses, so check the license files included with each project. For everyday use, focus on release notes, feature changes, and compatibility with your system.

Open-source status does not tell you whether a subscription source is trustworthy. Who provides the server, what it may be used for, and whether authentication is required are matters for the remote service. A configuration displayed in the client is not necessarily valid indefinitely. Before sharing screenshots, logs, or configuration, remove subscription URLs and identifying fields. When asking for help, describing the steps and error type is more useful than posting a complete configuration.

Client updates vs. subscription updates

Updating the client replaces the application and its components; updating a subscription retrieves the server configurations provided remotely. They solve different problems: reinstalling the client usually will not fix an expired subscription URL, and repeatedly refreshing a subscription will not add missing protocol support. Before upgrading, review the changes, keep a backup of any configuration you need, and check that your existing rules still work with the new configuration format.

The download page lists available releases and download links for each platform; the homepage covers client selection and setup. After installation, verify that your existing basic connection works before restoring custom settings. If something goes wrong after an update, note the platform, client, traffic-handling mode, and step where the error occurs. Then follow the troubleshooting steps instead of changing every network setting at once.

Protocol names and connection settings

VMess, VLESS, and Trojan are common protocol names in configurations. REALITY is a transport security mechanism often used with VLESS. These are not interchangeable speed-boost options. The protocol, destination address, port, authentication details, and transport settings must match the server. If any of these are missing, the client may import the configuration but still fail to connect.

If a term is unfamiliar, start with the REALITY protocol guide and glossary to understand how the pieces fit together, then check the full parameters provided by the server. When importing a share link, confirm that the client recognized every field. Judge test results alongside real app access: a successful connectivity check only confirms that one part of the path is reachable, not that a complete request will work.

Common questions before setup

What's the difference between a subscription URL and a single-node share link?

A single-node share link describes one server configuration; a subscription URL retrieves a set of configurations that can be updated. Import each through its corresponding option. Do not enter a subscription webpage URL as a single-node parameter. Read the subscription and node glossary, then choose an import method from the guide.

Does Global routing send every app through the proxy?

Not by itself. Routing handles requests that have already reached the core. Whether an app reaches the proxy also depends on the system proxy, the app's own settings, or another traffic-handling method. First confirm that the app is connected to the proxy, then check where its traffic goes. See the routing and traffic-splitting guide for related concepts.

If I use the same subscription on desktop and Android, will local settings sync?

Using the same subscription means each client can retrieve compatible server configurations; it does not automatically sync system proxy settings, per-app lists, or custom routing. Subscription providers may also limit the number of devices you can use, so follow their terms. See the v2rayNG setup guide for Android instructions.

Blog

Import, install, and test connections

Practical guides to configuration concepts. Check your input first, then your environment and testing method.