From downloading v2rayN to importing subscriptions and setting up split routing, choose a client for your device and configure your connection step by step.
The client manages settings; the core handles connections. Protocols, transports, and routing determine how traffic behaves.
V2Ray Client Setup
From subscription imports to multi-core settings
Start with a basic configuration that connects, then fine-tune routing and traffic coverage. The settings shown below illustrate concepts; they are not a live client interface. Menu names vary by platform and client.
Subscription groupEveryday use
Update methodManualScheduled
Server listGrouped by subscription source
A subscription URL retrieves server configurations in bulk; it is not the same as a share link for a single server. Create a group in your client, paste the full URL, and update it. Then check that servers appear in the list. Groups let you keep configurations from different sources separate, making updates and troubleshooting easier. Updating a subscription usually replaces the entries in that group, so save a copy before making personal changes. Subscription URLs may contain access credentials: don’t share them in public screenshots or chat logs. If an update fails, check the error message, then verify that the URL is still valid and your network is working.
Routing presetBypass mainland China
Local network addressesPrivate addresses→Direct
Other trafficMatch subsequent rules
Split routing determines which outbound route the core uses for each request. Start with a preset provided by your client, then add rules for specific domains instead of changing many conditions at once. Cores commonly check rules in order, so a broad rule placed too early can override more specific rules below it. The system proxy passes app requests to the local proxy entry point; routing determines where they go from there. Check both separately. The preset shown is a common option, not a recommendation for every region, network, or destination.
Local DNS1.1.1.1
Domain strategySet according to routing needs
Resolution pathCheck resolver reachability
DNS translates domain names into IP addresses and can affect how address-based rules match. When troubleshooting, distinguish between system DNS, browser-based DNS, and DNS handled by the core; changing one field does not mean every request follows the same path. The address shown is an example of the field format, not a universal recommendation. Check whether the resolver is reachable and whether it needs to be accessed through a proxy on your current network. If a domain fails to load but its IP address works, check DNS logs and domain strategy before changing remote resolution or address-family preferences.
Enable TUNShown as enabled
Traffic capture methodVirtual network interface
Before enablingCheck permissions and route exclusions
TUN mode captures traffic through a virtual network interface, which is useful for apps that ignore system proxy settings. Before enabling it, make sure a regular proxy connection works, then check the client’s required permissions, virtual interface, and default route. TUN changes how traffic enters the proxy; it won’t fix a broken server or incorrect protocol settings. Running other virtual network software at the same time can cause route-priority conflicts. If you lose connectivity, turn off TUN to restore the basic connection, then check LAN exclusions, DNS routing, and interface settings one at a time.
Core familyXrayV2Fly
What to considerProtocol and transport support
After switchingCheck the startup logs again
The client provides the configuration interface; the core handles protocols, connections, and routing. They are separate components. Within its supported configuration range, v2rayN can use different cores. On Android, v2rayNG follows the Xray route, while v2flyNG follows the V2Fly route. Before switching, check the node’s protocol, transport, and extensions against the core you plan to use. Core names alone don’t indicate speed. If the client won’t start after a switch, check for incompatible configuration fields before trying different servers. Exact capabilities depend on the current client and core implementation.
Setup order: connect first, then fine-tune
After importing a configuration, select a server and check the local listening port and system proxy status. Then try a website you actually need to access. Once the basic connection works, add custom rules, remote DNS, or TUN capture. Change one setting at a time and note the result to tell whether the issue is with the server, DNS, or local setup. A client showing as running usually means only that its process has started; it doesn’t guarantee every site is reachable.
Latency tests are just one way to assess a connection. The test method, destination, and current network load all affect the result, so a low number doesn’t necessarily mean faster sustained downloads. For everyday browsing, check that pages load fully; for remote work, focus on connection stability; for video, observe throughput over time. See the user guide for step-by-step instructions, and the advanced reference for routing, DNS, and custom outbounds.
v2rayN download / v2rayNG for Android
Choose a client for your platform
For desktop devices, start with v2rayN. On Android, consider v2rayNG first, then look at v2flyNG if you need its core. Platform links go to the relevant section of the download center, where you can check package architectures and system requirements before downloading.
Choose between the v2rayN desktop edition and the classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the classic desktop experience. Base your choice on system requirements, interface preference, and the features you need—not on assumptions that interface differences mean protocol differences.
After installing, make sure the app starts normally before importing a subscription. If your browser still isn’t using the proxy, check that the system proxy setting took effect and that no other app has changed it. Before upgrading, save your configuration in the client; the server list alone isn’t a full backup.
v2rayN provides downloads for Apple Silicon and Intel Macs. Check your Mac’s chip type in system settings before choosing a package. Processor architecture and node protocol are separate concerns; switching devices doesn’t mean you need to choose a different protocol.
After installation, follow the system prompts for first-launch permissions and check your network proxy settings. If you need TUN, check its permissions and network interface separately. If the system proxy works but a particular app doesn’t, first check whether that app uses the system proxy.
Start with v2rayNG, which uses the Xray core. Consider v2flyNG if you need compatibility with V2Fly core configurations. Most newer phones use arm64; if you’re unsure of your device’s architecture, check the universal build details. Confirm that your configuration is supported by whichever client you choose.
The first connection usually requires you to approve the system’s VPN connection request. Once connected, check per-app proxy settings, background activity, and battery management. If the connection drops when the screen locks, first check whether the system restricts background activity; there’s no need to immediately change server settings or reimport the subscription.
v2rayN offers deb and rpm packages for desktop Linux, with separate x64 and arm64 builds. Ubuntu and Debian usually use deb; Fedora typically uses rpm. Check your distribution’s package management guidance to confirm.
Once the graphical interface starts, check whether your desktop environment’s proxy settings are being used by the apps you need. Support for system proxies varies, so a working browser doesn’t mean every app is covered. If you configure the client to start at login, distinguish launching the app from automatically establishing a proxy connection.
V2Ray generally refers to the core project in the Project V proxy ecosystem. As the project evolved, V2Fly continued community development of the V2Ray core, while Xray developed into a separate core based on related technology. In everyday searches, “V2Ray client” is often used as a broad term. The graphical client you install may use different cores, so the name alone doesn’t tell you whether a configuration will work.
The core handles incoming traffic, protocols and transports, routing, and outbound connections. The graphical client organizes those capabilities into server lists, subscription groups, and settings pages. Understanding this division makes troubleshooting clearer: an interface that won’t open points to a client issue; a core that won’t start may indicate an invalid configuration field; and a site that won’t load may involve the server or DNS path.
Protocols, transports, and security layers are separate concepts. VLESS, VMess, Trojan, and Shadowsocks are common protocol names; REALITY isn’t a universal switch that can be added to any protocol. Match the fields in the client to the combination supported by the server. Choose protocols based on compatibility at both ends and your needs, not simply by which name sounds newer.
An open-source desktop client for Windows, macOS, and Linux that brings subscriptions, servers, and proxy settings together. Available cores and features depend on the interface and configuration support you choose.
v2rayNG
An open-source Android client built around the Xray core, for importing subscriptions, choosing servers, and managing app traffic on your phone.
v2flyNG
An open-source alternative for Android built around the V2Fly core. Choose it when you specifically need support for V2Fly core configurations; it isn’t a universal replacement for every setup.
This comparison covers platforms, interfaces, and core capabilities—not a single ranking of connection speeds. Real-world performance on the same device also depends on server load, network quality, protocol combinations, and app behavior.
All three clients are released as open source, but each client project and the cores it uses have their own licenses and maintenance scope. Open source means the code can be viewed, used, and modified under the applicable license; redistribution may still have conditions. Before deploying or redistributing software, read its license and check the requirements for copyright notices, modifications, and other obligations.
Public development and community maintenance make it easier to trace configuration capabilities, bug fixes, and implementation differences, but open-source status doesn’t replace careful judgment. A client doesn’t determine how a subscription provider operates or change how a destination service handles data. To protect account information, also consider how subscription credentials are stored, system permissions, and the app’s own encrypted connections.
Check the client and core separately when updating
Client updates may change menus, fix interface issues, or improve core compatibility. Core updates may change protocol support, configuration fields, or default behavior. These changes don’t always happen together. Before upgrading, save a working configuration and read the release notes. Then check that your custom routing, DNS, and outbound settings still match the current configuration format.
After upgrading, test a basic connection using the same server and check the logs for startup errors before enabling advanced features again. If only one extension stops working, check field compatibility first. If all requests fail, start with core startup, the local proxy entry point, and system proxy settings. Changing the client, core, and server all at once makes it harder to find the cause.
Configuration guides and platform setup
Recent V2Ray guides
Start with the basic guide to make your first connection; use in-depth articles to understand your options and platform-specific details. When choosing a server, distinguish latency from throughput. When exploring the core ecosystem, separate the graphical client from the component that handles connections. For desktop setup, check how your operating system manages proxies and startup.
Learn what latency tests, traffic multipliers, server locations, and protocol types mean, with tips for choosing servers for browsing, video, and remote work. Decide what you need first, then test real-world access instead of sorting by benchmark numbers alone.
Trace the evolution of Project V, compare the V2Fly and Xray core paths, and see how v2rayN, v2rayNG, and v2flyNG fit in. Once you understand how the components work together, you can choose the client and core capabilities your configuration needs.
For desktop distributions such as Ubuntu, Debian, and Fedora, follow the steps to install the package, launch the app for the first time, configure the system proxy, and set up automatic startup at login. Check how much traffic the desktop environment actually routes, and distinguish launching the app from connecting to a proxy.