Client Downloads / Setup Guides

v2rayN Client Downloads & Setup

Choose an open-source client for your platform. Start by importing a subscription, then configure the system proxy, traffic routing, and DNS.

Protocol
VMessVLESSTrojanShadowsocks
Configuration Workspace

From subscription groups to core selection

Understand what each setting controls, then adjust it as needed. The examples below illustrate common settings; menu names may change slightly as client interfaces are updated.

Save subscriptions and filters by source

Subscription groups keep links, update settings, and server lists separate. Start in “Subscription Group Settings” by entering a name and subscription URL, then update that group. A single shared server link is not a subscription. If you have multiple sources, use notes and filters to narrow the list while keeping manually added servers. Unlike pasting servers one at a time, groups retain their source information and make future updates easier to manage. Before deleting or changing a filter, check which group is selected to avoid affecting servers from another source.

Settings preview

Group nameSubscription Group A
Subscription URLEnter by source
Server filterFilter by remark
Update scopeCurrent group
Downloads by platform

Choose a V2Ray client to download

For desktop, start with v2rayN. For mobile, choose a client based on core requirements. The download page covers CPU architectures, package formats, and installation notes, with links for each platform.

Windows

v2rayN · Cross-platform / WPF

The cross-platform edition uses a modern interface, while the WPF edition retains the classic Windows UI. If you’re new to v2rayN, read the notes for both before choosing the one that suits your workflow. Don’t extract both editions into the same folder, or their settings and runtime files may get mixed together.

Check your OS and CPU architecture before installing. After the first launch, import a subscription and set the system proxy. If your browser still uses the old settings, make sure the system proxy address matches the client’s listening port.

Go to downloads

macOS

v2rayN · Apple Silicon / Intel

Check your chip in “About This Mac.” Apple Silicon uses arm64; Intel uses x64. The same package format does not mean the CPU architecture is the same. Choose the matching download to keep permissions and updates straightforward.

Move the app to “Applications” and launch it, then follow the system prompts to grant permissions. If regular proxy mode works but TUN will not start, check permissions and network interfaces separately. There’s no need to delete your subscription or re-enter server settings right away.

Go to downloads

Android

v2rayNG · v2flyNG alternative

Start with v2rayNG, which uses Xray. Choose v2flyNG if you need a V2Fly-based core. Most modern devices use arm64; if you’re unsure about the architecture, check the download page’s universal package notes rather than guessing from file size.

Grant VPN permission before connecting. If switching apps disconnects the VPN, check battery and background restrictions. Stop the connection before changing clients.

Go to downloads

Linux

v2rayN · deb / rpm

Choose deb or rpm based on your distribution’s package manager, then select x64 or arm64. A GUI client also requires a desktop environment and its runtime dependencies. CPU architecture and package format are separate requirements, so check both.

Desktop environments handle system proxy settings differently. If an app does not use the proxy automatically, check its own proxy settings and verify the local listening address. If you need TUN, follow the guide to check permissions and routing, and keep your original network settings available for recovery.

Go to downloads
First-time setup

Import, choose a mode, test the connection

Get a basic configuration working first, then add split routing and expand traffic capture. Change one thing at a time so you can identify the cause if something goes wrong.

  1. 01 / Configuration source

    Import a subscription and select a server

    In v2rayN, open “Subscription Groups” → “Subscription Group Settings,” create a group, enter the subscription URL, and update that group. In v2rayNG, add a source in “Subscription Settings,” then update it. Import a single shared link from the clipboard; it cannot be used as a subscription URL.

    Once servers appear, check their remarks, protocols, and transport settings, then select one to use. Subscription URLs may contain access credentials, so don’t include them in public screenshots. If an update returns an empty list, check that the link is complete, the source is still active, and the filters aren’t too restrictive.

  2. 02 / Traffic entry

    Configure the system proxy and routing separately

    On desktop, start by choosing “Set system proxy automatically.” This sends traffic from apps that follow system settings to the client. Then choose a routing mode that fits your needs. “Global” describes outbound routing for traffic entering the client; it does not automatically capture traffic from every app on your device. For regular web browsing, start by testing with the system proxy.

    “Do not change system proxy” leaves the current system settings alone, while “Clear system proxy” removes the relevant proxy settings. To restore normal browsing, choose the right option explicitly rather than just closing the window. For now, avoid enabling TUN, changing DNS, and adding custom routes all at once, or it will be harder to pinpoint the cause of a problem.

  3. 03 / Verify the result

    Check the entry point, DNS resolution, and outbound route

    After connecting, use the same app to visit a known working destination and confirm the request uses the expected entry point. If the client provides connection details or logs, check the outbound route and error type. A running status only means the relevant process has started; it does not guarantee the destination is reachable.

    If a browser works but other apps don’t, first check whether those apps use the system proxy. If a domain fails but its IP behaves differently, check DNS. If every destination fails, verify the server settings and network conditions. Record results before and after each change, then test the same destination again. This is more useful for troubleshooting than switching between several modes at once.

Projects and cores

How Project V, V2Fly, and Xray are related

Client names, core names, and proxy protocols refer to different layers. Understanding the distinction helps you tell whether a configuration can be imported, what handles the connection, and what to check when updating.

Configuration managementv2rayN / v2rayNG / v2flyNG
Connection handlingXray / V2Fly
Protocols and transportsMatch the server configuration

Origins: from Project V to distinct core projects

Project V is an open-source ecosystem built around network communication tools, with V2Ray as one of its major implementations. The V2Fly community continues to maintain V2Ray-related software, while Xray grew from related code into an independent core. The projects share concepts and configuration conventions, but their features, protocol extensions, and implementation details have evolved separately. They are more than different names for the same software.

In everyday searches, “V2Ray client” usually refers to a GUI tool in this ecosystem; it does not mean every tool uses the same core. If a server configuration requires a specific protocol extension, check that the core actually supports it instead of relying on “V2Ray” in the app’s name. Similar-looking configuration fields are not necessarily interchangeable.

When reading a guide, distinguish between GUI settings and core configuration files. A single toggle in the interface may generate several underlying settings. Direct edits to a config file may also be overwritten the next time the GUI saves it. For routine management, use the GUI; before adding custom settings, learn how the client generates and merges configuration.

Three clients, with distinct roles for the GUI and core

v2rayN is designed for desktop systems. It manages servers, updates subscriptions, selects routes, and configures settings, then invokes the relevant core to connect. v2rayNG is for Android and uses the Xray core; v2flyNG offers an Android client built around V2Fly. All three are open-source software, but their usage depends on each app’s interface and bundled core.

The GUI handles configuration management: saving sources, selecting servers, generating runtime parameters, and displaying status. The core handles protocol handshakes, transport, DNS resolution, and routing. A subscription loading successfully does not guarantee the core supports every combination it contains. Likewise, a core startup failure does not necessarily mean the subscription URL is wrong; a setting or system requirement may be the issue.

Desktop and mobile clients also handle traffic differently. Desktop use often starts with the system proxy, while mobile clients typically require system VPN permission. When moving a configuration, first transfer the same server settings and test them. Then move on to groups, rules, and other options; traffic-capture settings do not always map one-to-one between platforms.

Open-source licenses: consider each component separately

Open source means the source code is available under a license that permits use, study, and distribution subject to its terms. V2Fly’s V2Ray core is licensed under MIT, while the Xray core uses MPL 2.0. GUI clients and their dependencies have their own licenses. When discussing software licensing, distinguish the client, core, and bundled components rather than applying one component’s license to the entire stack.

For everyday users, open-source software can make a project’s origins and implementation easier to understand, but it does not replace checking the configuration. The subscription source provides server settings, the service operator determines the service terms, and the client handles local connections and management. These parts work together but have different responsibilities; installing a client does not automatically provide a working subscription or server.

When asking for help, the protocol, system environment, and error message are usually enough. Don’t post full subscription URLs, identifiers, or private connection settings. Configuration examples in guides are for illustration only; they are not ready-to-use services and cannot replace the actual settings provided by your source.

Update in the right order: check compatibility before changing settings

The GUI, core program, subscription contents, and routing data can all change independently. Updating a client does not necessarily change its subscriptions, and updating a subscription does not upgrade the core. If a connection stops working, first note which layer changed recently, then investigate that layer. The interface or file dates alone rarely reveal whether the running core meets the configuration requirements.

Save a working configuration before updating, and review the notes on package format, permissions, and data directories. After the update, test with the same server and mode before enabling new features one by one. If the core fails to start, check startup information and configuration compatibility first. If only one subscription source has problems, inspect its response rather than reinstalling the entire client.

For advanced setups, keep a brief change log of routing rules, DNS strategy, and TUN status. To roll back, undo changes in reverse order to avoid leaving behind system proxy or virtual interface settings. For further troubleshooting, follow the handbook’s sequence—app entry point, DNS resolution, routing match, server connection—instead of repeatedly importing the same subscription.

Configuration Guides

Subscription import, protocols, and proxy modes

After the basics, choose a guide that matches the issue you’re working on. Understand the relevant concepts first, then adjust the corresponding client setting; there’s no need to read every advanced guide at once.