Skip to content
v2rayN · v2rayNG · v2flyNG

V2Ray Download HubClient and Setup Guides

Choose an open-source client, import a subscription, then set the proxy mode that fits your apps.

  • VMess
  • VLESS
  • Trojan
  • Shadowsocks
GUI clients v2rayN / v2rayNG / v2flyNG Core families Xray · V2Fly Setup flow Subscription → Node → Proxy → Routing

Subscriptions and proxy settings

Import your configuration first, then choose how to route traffic

Think of setup in four layers: subscriptions provide connection details, the core handles protocols, proxy mode determines which apps use the client, and routing rules decide where traffic goes. Enabling one layer does not configure the others.

Add the subscription URL provided by your service to a subscription group, then update the group to fetch its node configurations. Unlike a single share link, a subscription can be refreshed to retrieve updated content; a single link is usually imported once. On first use, check that the group is enabled and the update succeeded before selecting an active node. The client reads configuration but does not provide access to a service. Subscription URLs may contain credentials, so keep them on trusted devices and out of screenshots and public logs.

Choose by device

Client downloads for four platforms

Check your operating system first, then confirm your processor architecture and package format. Installation methods, permission prompts, and traffic routing options can differ across systems, even for the same client. You don’t need to change network settings before downloading.

Windows

Choose v2rayN and pick the Desktop or Classic WPF edition based on your preferences. The Desktop edition uses a cross-platform interface, while WPF retains the classic Windows UI. Menu locations may differ, so don’t rely solely on button names from older guides.

On first launch, import a subscription and choose a node before setting the system proxy. Only consider TUN for other apps after your browser connects successfully. If the system reports a missing runtime component, follow the installation prompt rather than disabling system protection. See the cross-platform guide for detailed steps.

Go to downloads Windows client

macOS

Choose v2rayN and check your chip in About This Mac. Select arm64 for Apple silicon or x64 for Intel. Architecture is unrelated to subscription protocols: choose the right package first, then import your existing configuration.

After installation, launch the app from Applications and review the system’s security and network permission prompts. When using the system proxy, check that proxy settings are active for your current network service. If websites stop loading after switching networks or quitting the client, make sure the proxy isn’t still pointing to a local service that has stopped.

Go to downloads macOS client

Android

Start with v2rayNG, which uses the Xray core. Choose v2flyNG if you need the v2fly core. Most newer phones use arm64; if you’re unsure, check your device information or the download page’s notes on universal packages.

After importing a subscription, update the list, select a node, and start the connection. Confirm the system VPN authorization prompt. If the connection drops when the screen locks, check background activity and battery restrictions. If another app is using the VPN slot, decide which app should handle network traffic to avoid conflicting configurations.

Go to downloads Android client

Linux

Choose v2rayN and select a deb or rpm package based on your distribution, then pick x64 or arm64. Desktop environments, system proxy implementations, and permission management vary. A successful installation does not mean every app will automatically use the proxy.

Set up your subscription in the GUI first, then test the connection with an app that follows desktop proxy settings. If the browser works but other apps connect directly, check whether those apps need their own proxy settings. If you need TUN, check the current build’s dependencies and permission requirements; there’s no need to change all your network settings upfront.

Go to downloads Linux client

Quick start

Install, import, and test your connection

Have a working subscription or a share link for a single node ready. The client manages configuration and connections; installing it does not provide nodes or replace your service provider’s account, expiration date, or data allowance. These three steps get a basic setup running. See the guide for complete instructions.

  1. Choose a package and launch the client

    On the downloads page, choose your platform and processor architecture. Install the package and open the main interface. Make sure the client starts normally before granting network routing permissions. Authorization steps vary by system, so don’t copy setup instructions from another platform.

    If startup fails, note the system message and check the package format, runtime dependencies, and installation directory permissions. Save your subscription groups and essential settings before updating so troubleshooting doesn’t erase your existing configuration.

  2. Add a subscription and update nodes

    In subscription management, add a group and paste the full URL. Save it, then run an update. Check the update result and node list, then select a node as the active connection. Adding a group without updating it may leave the list empty.

    For share links such as vmess:// or vless://, use the appropriate clipboard import option instead of entering the link as a subscription URL. QR codes and the clipboard are just input methods; make sure the source is trusted before importing.

  3. Set up the proxy and test access

    On desktop, start with the system proxy and default routing rules. On Android, start the connection and confirm VPN authorization. Open a page you actually need to access and check the client logs to see whether the request went through the proxy. A latency test returning a value doesn’t prove the setup is complete.

    Once your browser works, test other apps, LAN devices, and frequently used services. Change one setting at a time and keep a known-good baseline. Before quitting the client, clear the system proxy if needed to prevent leftover settings from disrupting later connections.

Understanding the open-source ecosystem

Know the difference between Project V, cores, and GUI clients

Similar names don’t mean the same role. First identify which component manages configuration and which handles connections. Then decide whether to update the client, adjust a setting, or ask your subscription provider about node status.

How the components fit together

The interface manages settings
The core handles connections

  1. Project VLearn the project’s origins and technical background
  2. V2Fly / XrayUnderstand core families and protocol capabilities
  3. v2rayN / v2rayNG / v2flyNGChoose a GUI client for your device
  4. Subscriptions and node configurationsProvide the connection details

This diagram shows how the roles relate. It does not imply a shared operator or mean that clients provide subscription services.

Explore how the ecosystem fits together →

Understand the technical background through Project V

Project V is a starting point for understanding V2Ray’s technical background. Related tools focus on network connections, proxy protocols, and traffic routing. In everyday use, “V2Ray” can refer to the core program or the broader ecosystem, which can make it easy to confuse GUI clients, protocol names, and service configuration when searching for guides. The most useful distinction is that the client organizes settings in an interface, the core reads configuration and establishes connections, and nodes provide the address and parameters needed for remote connections. Downloading one component doesn’t mean the others are ready.

Choose a core family to match your configuration

The V2Fly community maintains V2Ray-related implementations, while Xray is a branch developed from related technology. They share some history and configuration concepts, but their features and implementation details continue to evolve separately. Using the same protocol name doesn’t guarantee that transport, encryption, and extension parameters are interchangeable. For example, the interface may recognize a share link even if the selected core can’t start with its options. When troubleshooting, note the protocol, transport, and core error together; a label like “VLESS support” alone doesn’t establish full compatibility.

Use three GUI clients across your devices

v2rayN is designed for desktop use, with tools for managing subscriptions, selecting nodes, and configuring proxy and routing settings. v2rayNG is for Android, uses the Xray core, and routes traffic through the system VPN interface. v2flyNG is also for Android and provides another option for configurations that require the v2fly core. All three are open-source projects, but their interfaces, features, and release schedules differ. Match guide instructions to the client you’re using rather than assuming one project has all the capabilities of another.

Keep open-source licenses separate from service terms

Open source means that source code is available under the terms of its license. Use, modification, and redistribution must follow the requirements of the specific project. V2Fly’s V2Ray core is primarily licensed under MIT, while Xray-core uses MPL 2.0. Clients and bundled dependencies may have different licenses; check the license files distributed with each project. A license explains how code can be used, not the quality or availability of a subscription service or how it handles data. Before using a third-party configuration, understand the service provider and applicable terms. Treat code openness, software behavior, and trust in a service as separate questions.

Manage the client, core, and subscription separately

Updating the client usually affects the interface, subscription parsing, and settings management. Updating the core may change protocol support, connection behavior, and error messages. Updating a subscription fetches the latest node details published by the service provider. These updates are not interchangeable. If a node suddenly stops working, first check whether the subscription changed and the service is still active, then investigate software compatibility. Before updating software, back up your configuration and read the release notes. Afterward, retest the same scenario that worked before. If the interface has a separate core manager, confirm which core is actually selected rather than just checking which ones are installed.

Establish a repeatable connection baseline

Use a simple test sequence: keep one known configuration fixed, test the browser first, then other apps that need traffic routing, and finally check direct-access sites, LAN connections, and DNS behavior. Latency tests, download speed tests, and real-world access measure different parts of the connection, so one successful test doesn’t prove everything works. Before sharing troubleshooting details, include the error type and steps to reproduce it, but redact subscription URLs, user IDs, and connection credentials. This limits unnecessary exposure and helps pinpoint whether the issue is with import, core startup, traffic routing, or the remote connection.

View the cross-platform installation and setup guide →

Configuration and troubleshooting articles

Explore routing, speed tests, and core selection

After your first successful connection, fine-tune your setup for specific scenarios. Choose what to read based on the issue: learn how tests work if the numbers are unclear, check rule order if traffic takes the wrong route, or review the ecosystem before switching clients or cores.