System proxy:Auto-configure system proxy ▾Routing:Bypass mainland China ▾Core:Xray ▾
☰v2rayNG⋮
Runtime settings
VPN mode
Proxy-only mode
Bypass LAN and mainland China addresses
Disconnected
Popular protocols supported by the client
VMess
VLESS
Trojan
Shadowsocks
REALITY
Xray
V2Fly
VMess, VLESS, Trojan, and Shadowsocks are proxy protocols; REALITY is a transport security solution, while Xray and V2Fly are core families. Support depends on the core used by the client.
v2rayN is for desktop devices; v2rayNG and v2flyNG are for Android. Check your operating system and processor architecture before choosing a package, then set up subscriptions and routing.
v2rayN offers two interfaces: Desktop and WPF. Desktop uses a newer cross-platform interface, suited to users who want a consistent experience across desktop systems. WPF retains the classic desktop interface for users familiar with its menus and workflows. Choose based on system requirements and your preferences—not on assumptions about protocol support.
After launching v2rayN for the first time, import a valid configuration. The application, runtime environment, and core each serve a different purpose: a successful launch only confirms that the interface is running. You still need to import a subscription, select an active server, and configure the system proxy. Back up your settings before moving between the two interfaces, and avoid using them alternately with the same configuration directory.
v2rayN: Choose a package for your processor. Select arm64 for Apple Silicon and x64 for Intel devices. Check the chip or processor name in About This Mac, then choose the matching download. The same package format can come in different processor architectures, so selecting the right one helps avoid compatibility issues.
v2rayN manages subscriptions and routing on desktop, but system proxy settings only work for apps that honor them. If a browser connects but command-line tools do not, check the tools' own proxy settings instead of repeatedly switching servers. Before enabling TUN, understand the required permissions and how it interacts with existing network extensions, and keep a copy of the original settings so you can restore them.
Start with v2rayNG; consider v2flyNG when you need its core. v2rayNG uses the Xray core and suits existing Xray configurations or setups that require its protocol support. v2flyNG uses the V2Fly core and suits configurations built around V2Fly. Both are graphical clients, but whether an imported configuration works depends on its protocol, transport, and security settings.
Android packages are available for arm64 and as a universal build. For most newer devices, check whether your processor is arm64; if unsure, use your device information to choose the universal package. The first VPN connection requires system permission. After connecting, check background restrictions: aggressive battery settings may stop the app, but high battery use should not automatically be blamed on keeping it active. Check logs and usage patterns to narrow down the cause.
v2rayN: Match the package format and processor architecture. Debian and Ubuntu users typically choose deb; Fedora users typically choose rpm. Then select x64 or arm64. The distribution's package manager determines the package format, while the device determines the processor architecture. Both must match—don't rely on the file extension alone.
v2rayN's desktop interface makes it easy to manage subscriptions, active servers, and routing rules in one place. Before installing, check the desktop environment and runtime requirements. After configuring the system proxy, confirm that apps in your current desktop session use it. TUN requires permissions and changes network routing, so test a regular proxy connection first and enable TUN step by step. This helps distinguish dependency, permission, and server issues.
v2rayN, v2rayNG, and v2flyNG are clients; installing one does not provide a working server. Subscription URLs and share links come from the service configuration you use. Verify their source and that you are authorized to use them before importing. Subscription links may contain access credentials, so remove them before sharing screenshots, logs, or support requests.
Choose a client in this order: platform, architecture, core, configuration. First make sure the app launches, then check the protocol in your subscription, and finally adjust the connection method and routing rules. When troubleshooting, change one setting at a time. Keeping a known-working configuration makes it easier to identify the cause than enabling several advanced options at once.
v2rayN configures server management, traffic routing into the client, and outbound selection separately. The interface below is illustrative and does not show the state of your device; menu locations may vary by client version.
v2rayN · Subscription groups
Subscription group settingsAdd
Update subscriptionWithout proxy
ServersImport share links from clipboard
v2rayN supports subscription groups and share-link imports. A subscription lets you update a group of servers at once; a share link adds a single configuration. They are different types of content. Add the URL under subscription groups and update it, then select an active server. Subscriptions save you from entering each server manually, but you still need to check protocol and transport settings. v2rayNG also supports clipboard imports. If a link isn't recognized, make sure you copied it in full; a webpage URL is not a subscription URL.
v2rayN routing presets determine which outbound route the core uses for traffic that has already entered it. Start with a preset that fits your needs, then add rules for specific domains or addresses. Unlike the system proxy toggle, routing chooses an outbound route; it does not send app traffic into the proxy. Rules are usually checked in order, so a broad rule near the top can override more specific rules below it. After making changes, test apps that should connect directly as well as those that should use the proxy, and check that your DNS policy matches your routing goals.
Server configurationProtocol and transport settings
ReloadApply current configuration
The v2rayN interface generates the configuration; the core handles connections and traffic forwarding. Before choosing a core, check the server's required protocol, transport, and security options rather than judging by name or assumed performance. Xray and V2Fly share some ecosystem roots but have evolved differently. Features such as REALITY require a compatible core. After switching cores, verify that the configuration still works. One key difference between v2rayNG and v2flyNG is their core family; a successful import does not guarantee that every setting is compatible.
Clear system proxyRestore system connection settings
Leave system proxy unchangedKeep current settings
v2rayN's “Auto-configure system proxy” option adds the local proxy address to your system settings. It works for browsers and apps that follow the system proxy. “Clear system proxy” removes these connection settings; “Leave system proxy unchanged” keeps the current settings, but does not stop the core. Unlike global routing, the system proxy controls how traffic enters the client. If an app is unaffected, first check whether it uses the system proxy or needs a proxy address configured directly, then consider changing the routing rules.
v2rayN's TUN mode routes traffic through a virtual network interface, making it useful for apps that ignore the system proxy. It may require additional permissions and DNS settings. v2rayNG's VPN mode uses Android's VPN interface and requires system permission the first time you connect; proxy-only mode requires apps to use the local proxy themselves. Compared with a regular system proxy, these modes can route more traffic but are more likely to conflict with other VPNs or network tools. Confirm that the basic connection works first, then enable options one at a time and test local network access.
Troubleshoot v2rayN by following the connection path: Is the app using the local proxy? Is the active server correct? Can the core connect? Are routing rules sending traffic where expected? If an earlier step fails, changes further down the chain are unlikely to help. For example, changing “Global” or “Bypass mainland China” won't route traffic through the client if the app isn't using the system proxy.
The VPN icon in v2rayNG indicates that Android has set up a traffic-routing interface; it does not prove that the remote server is reachable. Test by opening websites and checking DNS resolution and client logs, rather than relying on the toggle color. Server settings, device time, and local network conditions can all affect connectivity. Keep a known-working configuration so you can compare the effects of each change.
Open-source ecosystem and maintenance
Project V, V2Fly, and Xray
A client isn't a protocol, and a protocol isn't a core. Understanding these three layers helps explain why a configuration may import successfully but still fail to run on your device.
Graphical clientv2rayN · v2rayNG · v2flyNG
Manage subscriptions, choose how traffic enters, and generate runtime configuration
Proxy coreXray · V2Fly
Parse configuration, establish connections, and handle routing and forwarding
Protocols and securityVMess · VLESS · Trojan · REALITY
Define how the client communicates with the server and which connection settings to use
Project V's modular approach
The Project V ecosystem breaks out capabilities such as inbounds, outbounds, routing, and transport into modules that can be combined. V2Ray is the best-known project name in this ecosystem, while the V2Fly community continues to maintain related cores and features. In a client, protocol selection, adding servers, and setting routing rules are ultimately translated into configuration that the core reads at runtime. Understanding what each module does is more useful than memorizing where a menu is.
v2rayN provides a desktop interface for managing configuration, reducing the need to edit config files directly. A graphical interface makes setup more accessible, but it can't override the server's requirements. The address, port, user ID, transport, and security options must all match. Fields that look similar may belong to different protocols and are not interchangeable.
How Xray and V2Fly differ
Xray and V2Fly share a technical background but have since evolved separately. Some core concepts and configuration structures are similar, but supported features, parameter meanings, and release cycles differ. Don't assume an Xray feature is available in V2Fly. And a similar share-link format does not guarantee that every client will preserve the same extension fields.
REALITY is a good example of why these distinctions matter: it is a transport security solution, not a proxy protocol at the same level as VLESS. When choosing a configuration, check the proxy protocol, transport, and core support together. Choose based on the server's actual requirements and your device, not a fixed speed ranking of protocols.
Open-source licensing for the three clients
v2rayN, v2rayNG, and v2flyNG are all open-source clients. v2rayN uses a GPL-family license, and v2rayNG and v2flyNG are maintained under their respective open-source licenses. When redistributing or modifying software, refer to the license included with the project. A graphical client and the core it calls are separate software layers; using an open-source core does not mean they share the same license terms or maintainers.
v2rayNG uses the Xray core for Android configuration management and VPN connectivity; v2flyNG uses the V2Fly core for configurations that need it. v2rayN manages servers and core settings on desktop platforms. This site provides selection and setup guides and is not the author of these clients. Refer to the client interface, release notes, and core in use for specific features.
Client updates and configuration migration
Updates to the v2rayN interface, core, and subscription are three different things. An interface update may change menus and how configuration is generated; a core update may change protocol support or parameter handling; a subscription update mainly changes server configurations. When a connection breaks, first identify which layer changed instead of assuming the installer is responsible.
Before updating v2rayNG or v2flyNG, save important configuration details, especially custom routing, DNS, and app-splitting settings. After migrating, verify that the original basic connection still works before enabling new features. Logs may contain subscription URLs, user IDs, or destinations; redact them before sharing. For support, the error type and conditions are usually enough—don't publish full credentials.
First-time setup FAQs
What do I need after installing v2rayN?
v2rayN needs a valid server configuration or subscription URL. After importing it, select an active server, then configure the system proxy and routing preset. The client manages connections; it doesn't provide a remote service. If nothing appears after importing, check what you copied and the subscription response before reinstalling the app. Follow the Getting Started guide to set up your client →
Why does the system proxy work in some apps but not others?
v2rayN's system proxy setting mainly affects apps that follow it. Some developer tools, games, and background services use their own network settings and may need a proxy configured separately, or TUN after you understand its permissions and routing effects. First check how the app's traffic enters the client, then review outbound rules. “Global mode” does not force every connection on your device through the proxy. Troubleshoot traffic routing and proxy issues →
Which should I choose: v2rayNG or v2flyNG?
Choose v2rayNG for Android configurations that need the Xray core; choose v2flyNG for existing V2Fly configurations and related features. Start with the server's requirements, then check app routing and DNS settings. Being able to import a configuration is only the first step: extension parameters must be preserved and supported by the core. Don't judge compatibility by the client name alone. Learn the difference between cores and clients →
Can't open websites after switching servers? What should I check first?
With v2rayN or v2rayNG, first check the active server, device time, how traffic enters the client, and the error in the logs. DNS resolution failures and connection handshake failures are different problems with different fixes. Keep a known-working configuration for comparison, change one setting at a time, and note whether the issue affects every app or just one. Browse troubleshooting topics →
Configuration guides
DNS, FakeDNS, and Android background activity
Once the basic connection works, look at DNS routing, address mapping, and battery settings for mobile devices. Each guide focuses on one issue to help you avoid changing several network settings at once.
FakeDNS maps domains to virtual addresses, preserving domain information for certain TUN routing setups. This guide explains how address pools, mappings, and DNS resolution work together, and covers app caching and compatibility to help you decide whether your setup needs FakeDNS.
DNS settings in v2rayN and v2rayNG need to be considered alongside traffic routing and rules. This guide traces the path DNS requests actually take, distinguishes remote DNS, direct DNS, and app-specific resolution, and explains how to interpret test results.
v2rayNG battery use depends on the always-on VPN, app traffic, background restrictions, and connection behavior. This guide walks through troubleshooting by when the issue occurs, distinguishes app shutdowns from sustained battery drain, and explains how to balance background activity with power savings.