Client selectionDesktop and Android clients

V2Ray ClientsSetup Guide

Choose v2rayN for desktop and start with v2rayNG on Android. Follow the setup steps from installation and subscription import to routing rules.

Open source Subscription groups Configuration guides

V2Ray client downloads

Start by checking your operating system and processor architecture. Use v2rayN on desktop; on Android, choose between v2rayNG and v2flyNG based on your core requirements.

Choosing an installer and initial setup

The client, core, and subscription are three separate components. Installing a client gives you an interface and local proxy capabilities; it does not provide a working server. Before you begin, have a subscription URL or server configuration you’re authorized to use, and confirm the server’s protocol, transport, and security settings. A server name or location label alone is not enough to connect.

A single subscription can include multiple protocols, but whether a client can import it depends on the subscription format and core compatibility. Don’t rely on the file extension alone: share links, aggregated subscriptions, and complete JSON configurations use different import options. For your first setup, import a subscription from a known source, choose one profile, and check that the local proxy starts. This keeps the number of unknowns manageable.

After installation, use the default network settings to make an initial connection. On desktop, check that the system proxy is handling browser traffic; on Android, confirm VPN permission has been granted. Consider TUN mode or per-app proxying only when you need to handle games, command-line tools, or specific apps. Establish a repeatable basic connection before changing routing rules to make troubleshooting easier.

Before upgrading a device with an existing setup, keep your subscription groups, routing rules, and custom DNS settings. Don’t overwrite one client’s entire data directory with another’s: interface settings, core configuration, and rule files each have their own structure. To migrate, reimport your subscription first, then move over only the custom settings you actually use.

Browse all clients →

Subscriptions, routing, and network modes

Learn what the settings in the client actually do. Start with the configuration source, then decide how traffic enters the proxy, which outbound handles it, and where domain names are resolved.

Manage subscriptions and servers by source

Subscription groups make it easier to keep servers from different sources separate. In v2rayN, add a note and subscription URL under Subscription Groups, save, update the relevant group, then select a profile from the server list. v2rayNG also supports managing sources through subscription groups. Unlike pasting share links one at a time, subscriptions can sync addresses and parameters in one place, but an update may replace existing entries. Keep manual configurations you need long term in a separate list. Test filter expressions on a small set first so you don’t hide servers you need.

Subscription groupsNotes / URLs / updates
Server listFilter by subscription group
Before updatingKeep manual configurations

Troubleshooting order: entry, outbound, DNS

If the client says it’s running but apps still can’t connect, first check whether their traffic is reaching the local proxy. Browsers, command-line tools, and background services may use different proxy settings. If a browser works, that only confirms that browser’s current connection path. Next, check the selected server profile, matched routing rules, and connection logs; then investigate DNS. Checking these three stages separately is more effective than changing the port, DNS, and routing all at once.

Latency tests also depend on what’s being tested. A successful address probe doesn’t guarantee that a website will work. A real connection test more closely reflects the proxy path, but results still depend on the test target, network load, and timing. Evaluate servers against your actual needs rather than relying on a single test. For definitions, see the glossary; to edit rules, follow the advanced configuration guide step by step.

Project V, V2Fly, and Xray

The client provides the controls; the core handles connections. Understanding the difference helps you assess configuration migrations, protocol compatibility, and what to check after an update.

Project V

Technical background on the V2Ray project

V2Fly / Xray

Independently developed core projects

v2rayN / v2rayNG / v2flyNG

Graphical clients for end users

Project background and distinct roles

Project V is a useful starting point for understanding the V2Ray ecosystem. V2Ray organizes protocol handling, transport, and routing in a configurable proxy core. Graphical clients turn common tasks into server lists, subscription groups, and settings screens. What people call “installing V2Ray” often means installing a client and its companion components, not editing the entire core configuration by hand.

As a result, options with the same name in different interfaces don’t necessarily work the same way internally. A client may combine several low-level parameters into one toggle or expose only some settings. When troubleshooting, note the client name, core, and operating mode, then consult the relevant documentation. Confusing the client with the core can lead you to mistake an interface issue for a protocol problem.

Core families and configuration compatibility

The V2Fly community continues to maintain V2Ray-related implementations. Xray emerged from a related technical lineage and later developed independently. The projects share some concepts, but protocol support, transport extensions, and configuration requirements change as each evolves. For configurations involving VLESS, VMess, Trojan, or REALITY, check core capabilities and server settings individually rather than assuming support based on a label in the client.

A share link usually contains the information needed for a single server connection. A complete JSON configuration may also include inbounds, outbounds, routing, and DNS, so the two aren’t interchangeable. When moving a full configuration to another core, check field meanings, outbound tags, and rule resources. When importing a link into another client, confirm that optional parameters haven’t been dropped.

Choosing among three open-source clients

v2rayN, v2rayNG, and v2flyNG are released as open-source software, and the client projects use the GPL-3.0 license. Cores and bundled components have their own licenses, which should be reviewed separately when redistributing or modifying them. Open source means the code can be read, studied, and modified under the license terms; it doesn’t mean every release has been independently audited, nor does it remove the need to assess subscription sources and server operators.

For desktop, start with v2rayN: server management, subscription groups, and routing settings fit into a desktop workflow. On Android, start with v2rayNG. Consider v2flyNG if you have a specific need for V2Fly compatibility. These recommendations are based on platform and configuration needs, not made-up performance rankings. For details, see the client selection guide.

What to check before and after an update

A client update may change the interface, how configurations are generated, or the bundled core. Before updating, record a working server profile, system proxy status, and custom rules, and keep a configuration backup. After updating, test the basic connection in the same network environment, then check subscription updates, DNS, and TUN. Avoid rewriting all your routing rules during an upgrade, or it will be hard to tell what caused a change.

Check project release notes and the actual build for maintenance status and specific compatibility details. The homepage focuses on stable selection guidance; download information is on the downloads page. If a setting has moved after an update, confirm your client version and platform, then consult the relevant tutorial instead of hunting for it by following an old screenshot.

Subscription sources and local data

Subscription URLs may contain access credentials and should be treated as sensitive information. Don’t share complete subscription URLs, user IDs, or server authentication details in screenshots, logs, or support requests. When describing an issue, you can include the protocol, field names, and error message while removing anything that identifies your account. Server list exports may contain the same sensitive information.

A client provides local connection and management tools; service quality also depends on your network and server. Switching apps won’t fix an expired subscription or change server-side restrictions. Check that your configuration comes from a valid source and that your account is active before troubleshooting local settings. This can save you from unnecessary reinstalls and repeated imports.

Installation and configuration guides

Find guidance on installation, subscription formats, and server selection. Before following the steps, confirm your client and platform, and don’t mix configuration snippets from different cores.

Browse all articles →