v2rayN
Import subscriptions, manage nodes, and configure the system proxy on Windows, macOS, and Linux.
Download v2rayN Explore all features →Choose an open-source client, import a subscription, then set the proxy mode that fits your apps.
Import subscriptions, manage nodes, and configure the system proxy on Windows, macOS, and Linux.
Download v2rayN Explore all features →Choose the Xray or v2fly core, manage subscriptions, and route traffic through the system VPN.
View Android clients See the import steps →Subscriptions and proxy settings
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.
Start with the system proxy to check whether your browser can connect, then decide whether you need TUN. The system proxy provides an entry point for apps that follow system settings. TUN routes traffic through a virtual network interface and can cover more apps, but still depends on routing, DNS, and permissions. Neither is a speed setting, and neither guarantees that all traffic uses the same exit. Before enabling TUN on desktop, check support in your current build and any authorization requirements. Android typically routes connections through system VPN authorization, with a different setup flow from desktop.
Use domains, addresses, and rule sets to send requests direct, through a proxy, or block them. Rules are usually matched in order, so place LAN traffic and explicit exceptions appropriately before setting the default route for unmatched traffic. Start with a rule set provided by the client, then test common websites and local devices before making changes. Global proxy is a routing choice, not the same as TUN: routing determines where traffic goes, while TUN determines how it enters the client. Troubleshooting these as separate layers is more useful than repeatedly switching nodes.
The GUI manages subscriptions and settings; the core handles protocols and connections. The cores available in v2rayN depend on the current build and configuration interface. On Android, v2rayNG uses the Xray core, while v2flyNG offers a v2fly core option. Don’t assume a transport option is supported based on the client’s name alone; check the subscription requirements against the core’s capabilities. If a field isn’t recognized, note the error and check compatibility instead of deleting the parameter. Matching the core to the server configuration matters more than having more toggles.
Choose by device
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.
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 clientChoose 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 clientStart 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 clientChoose 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 clientQuick start
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.
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.
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.
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
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
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 →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.
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.
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.
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.
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.
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.
Configuration and troubleshooting articles
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.
Learn what ICMP ping, TCPing, real connection latency, and download speed tests each measure, why their results can differ, and how to use them to choose a node.
Read the speed test guide →Build a split-routing setup with geosite, geoip, and domain rules, then learn rule order and review configuration snippets you can adapt.
Read the routing guide →Trace the story from Project V to the V2Fly community and the Xray branch, and see how cores, protocols, and GUI clients fit together to choose the right setup for your device.
Read the client and core guide →