Client Setup Guide · Start with Subscription Groups

V2Ray Subscription Guide v2rayN Download & Subscription Import

Choose a client for your platform, then set up subscription imports, proxy mode, and routing.

Open-source client Xray / V2Fly cores English setup guide
Setup options

From subscription import to connection settings

Subscriptions, proxy settings, routing, and cores are separate layers. First import the subscription into the client, then decide how traffic should reach the core, and finally check which routing rules apply. Menu labels may change slightly as the interface evolves. If something looks different, find the setting by what it does rather than clicking based on its icon or position.

Save the subscription URL, then update the group

A subscription is a URL that retrieves configuration repeatedly; a node is an individual connection configuration obtained after an update. In v2rayN, open “Subscription Group Settings,” enter a remark and URL, save, then update the subscription. Saving alone does not create nodes. Unlike adding entries one by one, a group makes it easier to refresh configurations from the same source. Updates may also remove entries deleted by the source, so don’t rely on subscription entries to preserve manual changes. Keep access credentials in the URL private, and hide the full link when asking for help. After updating, check the group and protocol type before selecting a configuration to use.

View the Getting Started guide →
Download options

Choose a V2Ray client for your platform

For desktop, start with v2rayN. On Android, consider v2rayNG first, then v2flyNG if you need a V2Fly core. A client is only a configuration tool; you’ll still need a valid subscription or share link after installation. On the download page, check your processor architecture and package type, then follow the platform-specific setup instructions.

Windows

v2rayN

The download page offers a desktop edition and the classic WPF edition. The desktop edition uses a cross-platform interface, while WPF keeps the classic layout. Menus may differ, so match settings by their field names. Check your device’s architecture in system settings before choosing an installer.

If you already have a configuration, back it up before switching editions. Don’t run multiple clients that manage the system proxy at the same time: your browser may still point to another process’s local port, making it look as though the subscription isn’t connecting.

Go to downloads

macOS

v2rayN

Open “About This Mac” to check your chip type, then choose the Apple Silicon or Intel installer. After installation, check that the client launches and review the system proxy settings separately. Opening the app window does not mean system traffic is going through the proxy.

If macOS warns that it can’t open the app, verify its source and review the system’s message before following the security settings provided. Start by testing with the system proxy. Configure virtual network adapter permissions and routing after the basic connection works.

Go to downloads

Android

v2rayNG / v2flyNG

v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core. Choose based on configuration compatibility; similar names don’t make them interchangeable. Most recent phones use arm64 packages. If you’re unsure of your device’s architecture, check its specifications before considering a universal package.

On the first connection, the system will ask for VPN permission. This means the client is requesting permission to handle local traffic; it does not confirm that the subscription works. If the connection drops when the app goes into the background, check battery optimization, background permissions, and whether another network tool is using the same system-level entry point.

Go to downloads

Linux

v2rayN

Choose deb or rpm based on your distribution’s package system, then select x64 or arm64. The download page lists the available options, and a graphical installer can show dependency warnings. Package format and processor architecture are separate requirements, and both must match.

Desktop environments may handle system proxy settings differently, and some apps use their own network settings. Test with an app that clearly supports proxies first. If it works there but not elsewhere, check how the other apps connect before replacing the subscription.

Go to downloads
Quick Start

Subscription setup in three steps

When setting up for the first time, change one type of setting at a time. First confirm that the subscription loads, then check the proxy entry point, and finally test access. If something goes wrong, you’ll know which step to revisit instead of switching repeatedly between nodes, DNS, and cores.

  1. Step 1 · Import a source

    Save the group and update the subscription

    Copy the full URL provided by your subscription source. In “Subscription Group Settings,” add a group, enter a recognizable remark, and save. Then update the subscription and confirm that connection entries appear in the list. For share links, use the corresponding clipboard import option; don’t treat a share link as a subscription URL that can be refreshed regularly.

    If an update returns no entries, check whether the message indicates a request failure or a parsing failure. For a request failure, first check that the URL is valid and whether the update needs to go through a proxy. For a parsing failure, check the subscription format and protocol support. Repeatedly clicking update won’t fix an expired URL.

  2. Step 2 · Set the entry point

    Choose an active configuration and proxy mode

    Select the configuration you want to use. On desktop, start with “Set up system proxy automatically” and keep the default routing rules that suit your needs. On Android, start the connection and grant system permission. Don’t add complex rules, change DNS, or switch cores before confirming the connection works.

    The system proxy determines whether an app sends requests to the client; routing rules determine which outbound route handles those requests. Check these settings separately. If an app has its own proxy settings, make sure its local port matches the client’s listening port.

  3. Step 3 · Test the connection

    Test real access and check the logs

    Use a familiar app to access a specific destination, then check the client logs for connection errors. A single connection test only reflects the conditions at that moment; it doesn’t replace testing in your browser and apps or checking DNS behavior. Keep your original settings during testing so you can roll back if something goes wrong.

    If only one app fails, check its proxy settings. If everything fails, check the active configuration, system time, and protocol parameters. Before closing the client, clear the system proxy if needed so apps don’t keep sending requests to a local port that is no longer listening.

Open-source ecosystem & choosing a client

How clients, cores, and protocols fit together

V2Ray is often used as a general term for a category of tools. For practical setup, it helps to separate the graphical client, connection core, and protocol parameters into three layers. Understanding the difference makes it easier to choose what to download, know what needs updating, and explain why a subscription behaves differently across devices.

Project V and its core families

Project V provides the broader context for related proxy tools and protocols, with V2Ray as one of its major projects. V2Fly continues V2Ray’s community development, while Xray has developed an independent feature set from related code. They share some history and configuration concepts, but they are not two interface names for the same core. A filename alone does not guarantee that their features are identical.

In this ecosystem, the core establishes connections and handles transport, security, routing, and DNS resolution. The graphical client organizes those capabilities into a settings interface. When an error occurs, first distinguish between “the interface can’t save the settings” and “the core can’t start.” The former may point to input formatting or a client configuration issue; the latter usually calls for checking core logs for unsupported fields or features.

What each of the three clients does

v2rayN, v2rayNG, and v2flyNG are all open-source graphical clients. v2rayN is for desktop platforms and manages subscriptions, routing, and different cores. v2rayNG uses the Xray core on Android, while v2flyNG offers an Android option based on V2Fly. These clients manage configuration and connections; installing one does not provide a working subscription source.

Open source means the project’s code is available under its applicable license. Use, modification, and redistribution must follow each license. A client and its core may use different licenses, so one label cannot describe every component. For everyday setup, focus on software from a clearly identified source, read release notes, and understand the network permissions the app requests.

Protocol names aren’t performance rankings

VMess, VLESS, Trojan, and Shadowsocks describe different protocol designs. REALITY is a security-layer option, so these are not all choices at the same level. Enter the protocol, transport, and security settings as a combination based on the server’s parameters. Simply changing VMess to VLESS or enabling a security option at random won’t create a working configuration.

Connection quality also depends on network path, server load, transport settings, and device resources; protocol names alone can’t predict speed or battery use. On mobile, background operation and traffic handling matter too. Choose for compatibility first, then compare performance under the same network and use conditions. For the reasoning behind each design, read the protocol guide.

Explore protocol and core options →

Handle subscription updates and software updates separately

Updating a subscription fetches configuration from its source again. Updating the client changes its interface and configuration management, and may also update the bundled core. These updates solve different problems: if a URL has expired, check with the subscription provider; if the core doesn’t support a feature, check software and core compatibility. Refreshing a group won’t add missing features, and upgrading the software won’t restore access revoked by the source.

Back up the configuration you need before making changes, and note your original routing mode, DNS, and proxy settings. After updating, test a known configuration before restoring custom settings one by one. If you need help, share the error type and the steps that triggered it. Keep full subscription URLs, share-link QR codes, user identifiers, and access credentials out of public screenshots.

Tips & Guides

Subscription Updates & Connection Troubleshooting

Once the basic connection works, tackle specific issues. These three articles cover subscription updates, beginner essentials, and DNS behavior. When troubleshooting, save the exact error message and note which settings you just changed; this usually narrows down the cause faster than reinstalling everything.