From desktop setup with v2rayN to importing configs into v2rayNG on Android, choose a client for your device and configure subscriptions, routing, and cores step by step.
ServersSubscription GroupsSettingsCheck for Updates
Server List
TypeAliasAddressPortTransportSecurity
+ Import share link from clipboardYou can also add a subscription URL in Subscription Groups
System proxy: Set system proxy automaticallyRouting: Rule setXray
▰
≡v2rayNG+ ⋮
Tap + to import a config
DisconnectedV
VLESSREALITYTrojanVMess
routing.json · Config excerpt
{
"routing": {
"domainStrategy": "AsIs"
}
}
CONFIGURATION
Subscription, Routing, and Core Settings
A GUI client turns configuration into controls you can work with. Start by importing a valid config, then check which outbound handles your traffic. Only consider switching cores if you run into compatibility issues. Here are four common setup tasks. The interface cards illustrate typical settings; menus vary by client.
Subscription Group Settings
NotesCustom group name
Address (URL)Enter the full subscription URL provided by your configuration provider
Enable updates
IMPORT
Import a Subscription
A subscription URL and an individual share link are different types of input. In v2rayN, create a subscription group, enter the full URL, and run an update. In v2rayNG, add a subscription from the menu and refresh the list. Subscriptions make it easier to manage server settings in one place than entering each server by hand. Before importing, check that the content format is supported by your client. After updating, verify the protocol and transport settings. If the list is empty, check the update result; saving the URL successfully does not mean the import is complete. Subscription URLs may contain access credentials, so redact them before sharing screenshots.
Available strategiesAsIs / IPIfNonMatch / IPOnDemand
Match criteriaDomain / IP
OutboundDirect / Proxy / Block
ROUTING
Configure Routing
Routing rules determine whether requests go direct, through a proxy, or get blocked. System proxy settings determine which apps send requests to the client; treat these as separate settings. For a first setup, start with an existing rule set, confirm basic access works, then add your own domain rules. Unlike routing all traffic through one outbound, split routing preserves direct access to local networks and selected services. Rules are usually evaluated in order, so broad conditions placed too early can override more specific rules. Domain strategy also affects when addresses are resolved. Check your DNS settings alongside it to avoid changing one setting and making the cause harder to trace.
Check your configProtocol → Transport → TLS / REALITY → Core support
CORE
Switch Cores
Similar-looking client interfaces do not guarantee the same underlying capabilities. Before importing a VLESS or REALITY config, confirm which core the client actually uses and what it supports. v2rayN can manage settings for different cores, though the available options depend on the release package. On Android, choose v2rayNG with Xray or v2flyNG built around V2Fly, depending on your needs. Rather than switching clients at random, check the protocol fields first to find compatibility gaps. After switching cores, review the generated config and runtime logs. Being able to save an old config does not mean the new core can parse it fully.
Set these separatelySystem proxy, app proxy, routing rules, DNS
MULTI-DEVICE
Sync Settings Across Devices
Syncing settings across devices usually means subscribing to the same source on each device, not copying the desktop client's entire config folder to your phone. This keeps server settings up to date through subscription refreshes while preserving local, device-specific settings. Unlike a full backup migration, subscriptions are better suited to sharing connection details across clients, but generally do not transfer app proxy settings, system proxy settings, or custom routing rules. Recreate these settings after migration, and check whether your subscription allows multiple devices. If you need to sync custom rules, first make sure the target client supports the same syntax, then import only the relevant config content.
For desktop, start with v2rayN; for Android, start with v2rayNG. Choose an installer that matches your processor architecture and package format—don't rely on the file extension alone. The links below open the relevant platform section of the download page, where installers and system requirements are listed.
Use it to manage subscriptions, edit routing rules, and inspect core logs on a desktop. The download page offers the Desktop edition and the classic WPF edition: the Desktop edition uses a cross-platform interface, while WPF keeps the familiar desktop layout. Before installing, check system requirements and processor architecture. If you already have a config, back it up before switching to a different interface.
After launch, import a config before setting the system proxy. Whether your browser uses the system proxy and whether the client has a working outbound are two separate things to check. If you only want specific apps to use a proxy, you can configure a local proxy in those apps instead of changing network settings system-wide.
Check your chip type under “About This Mac,” then choose the installer for Apple Silicon or Intel. Packages for the two architectures are listed separately; choose the one that matches your device natively. The Desktop edition covers the essentials: subscription management, config editing, and routing selection. When migrating, start with a known-good share link.
Check both system proxy settings and your browser's own settings. If apps behave differently, first see whether each one follows the system proxy, then check the client logs. Avoid changing DNS and protocol fields at the same time. Review first-launch permission prompts against the app's source and the operating system's guidance.
v2rayNG is suited to Android devices that need Xray-related protocol support; v2flyNG is an alternative for the V2Fly core. For most recent mainstream phones, start by checking the arm64 package. If you're unsure of your architecture, see the download page's notes on universal packages. The two clients are maintained separately, so similar names do not guarantee full config compatibility.
After importing a subscription, you'll usually need to approve the system VPN permission on first connect. If the connection drops in the background, check battery optimization, background activity, and the apps covered by the proxy. A connected status only indicates that the local service has started; access also depends on the config, server status, and network path.
Choose deb or rpm to match your distribution's package system, then check whether your device is x64 or arm64. In a desktop environment, v2rayN can manage subscriptions and routing settings. Installing the package does not mean the system proxy is automatically applied to every app; desktop environments and apps differ in how they read proxy settings.
Start with a limited test in your browser, then configure other apps. Before routing more traffic through the client, understand the permissions and routing changes involved. Keep a way to revert your settings, and avoid enabling several features that can alter network paths before confirming the basic connection works.
V2Ray is often used as an umbrella term for a range of tools, but GUI clients, proxy cores, and protocols are different layers. Separating them makes it easier to choose and configure the right tools: the interface manages settings, the core handles execution, and the protocol defines how communication works.
CLIENT → CORE → CONFIGURATION
v2rayNManage settings for cores such as Xray and V2Fly
v2rayNGAndroid · Xray core
v2flyNGAndroid · V2Fly core
Support depends on the client release, core capabilities, and import format.
Identify the core before checking protocol support
A config importing successfully only means the client parsed it. To connect, the core must also support the protocol, transport, and security fields, and the server must use matching settings. Seeing an option in the interface is no substitute for confirming which core is actually running.
Project V Origins: From Proxy Cores to GUI Clients
Project V brings together composable proxy tools, with V2Ray as one of its widely used core projects. Modules for inbound and outbound connections, routing, and DNS let you configure different network tasks separately. Everyday clients such as v2rayN and v2rayNG don't simply rename the core; they add subscription management, config editing, mode switching, and log viewing. A GUI makes these tasks more accessible, but the underlying software still handles the connection.
That is why “open the client” and “start the core” can refer to different steps in a guide. The interface may appear to work while the core exits because of an invalid config field. Conversely, a disabled system proxy option in the interface does not mean the core isn't listening on a local inbound. When troubleshooting, first identify which layer the problem is on; that is usually more useful than reinstalling repeatedly.
V2Fly and Xray: Shared Roots Don't Mean Full Compatibility
The V2Fly community continues development of the V2Ray project, while Xray has developed its own implementation based on related code. The two share many concepts and config conventions, but their features have evolved separately. Check Xray's support when using features such as REALITY, and verify each field in an existing V2Fly config. Simply swapping the executable does not guarantee identical behavior.
v2rayN centralizes common desktop settings; v2rayNG provides an Android interface for the Xray route; and v2flyNG suits users who specifically need V2Fly behavior and config conventions. All three are open-source clients, but their release schedules, interfaces, and core combinations differ. Choose based on what your existing config needs, not on the client name as a checklist of supported protocols.
VLESS, VMess, and REALITY: Understand the Fields Together
VMess, VLESS, Trojan, and Shadowsocks are proxy protocol options; REALITY is a security-layer approach often used with VLESS. “VLESS + REALITY” does not mean two interchangeable protocol types. Transport, server address, port, user ID, and security settings must all match. A missing or mistyped field can cause the handshake to fail.
Protocol names aren't a speed ranking. The same protocol can perform very differently depending on the server, network path, and transport combination. On mobile, battery use also depends on reconnect frequency, background settings, and actual traffic. If your current config works, keep its existing combination. To compare alternatives, hold the device and network conditions constant and test one change at a time. The protocol guide explains the trade-offs and limits of each option.
Open-Source Licenses and Community Maintenance: Software vs. Connection Services
v2rayN, v2rayNG, and v2flyNG are released as open-source software, generally under GPL-family licenses. The V2Fly and Xray cores use MPL-family licenses. Check the license files included with each project for the exact terms. Source code, release notes, and issue reports all contribute to community maintenance. Open source defines how code may be used and distributed; it does not mean every third-party config source is safe to import.
A client is not a connection service. After installing the software, you still need server settings or a subscription you are authorized to use. Providers maintain the server settings in their subscriptions, and connectivity depends on both the server and your network. V2Ray Open Source Hub curates client downloads and Chinese-language guides; it does not list ready-to-use servers on the homepage or treat a running client as proof that a service is available.
Updates: Check the Client, Core, and Subscription Separately
Client updates mainly affect the interface, config generation, and integrations. Core updates affect protocol implementation, feature support, and runtime behavior. Subscription updates usually replace server entries and connection settings. These updates may happen at different times. If a subscription update fails, check the URL, response content, and import format first. If the core fails to start, check the logs for field errors or unsupported features rather than overwriting all your local settings.
Before updating, back up subscription groups, custom routing rules, and other local settings. After updating, test basic access with a known-good config, then restore additional rules gradually. If you switch clients or cores, check whether they support your existing config. The download page collects installer links; refer to it for current version details, and don't mistake differences from a tutorial screenshot for an installation problem.
Common First-Time Setup Questions
The subscription updated successfully. Why can't I connect?
A successful update only means the client received parseable content. You still need to select a working config, start the core, and make sure the app is using the proxy. See the setup guide for troubleshooting steps.
Do I need to enable both the system proxy and TUN mode?
They route traffic in different ways. Start with one to verify the basic setup, then adjust for your apps. See the FAQ for details on how they differ.
Can I copy my desktop config folder directly to a new phone?
A safer starting point is to import a compatible subscription or share link, then set up app proxy and background behavior separately on your phone. Before migrating, check client compatibility.
If a test passes, does that mean every website will load?
An individual test only covers part of the connection path. Browser proxy settings, DNS, and routing can still affect access. Check the actual request and logs together. See the networking basics guide for definitions.
TECHNICAL NOTES
V2Ray Technical Notes
Explore the Project V ecosystem, DNS, and core runtime logs, organized around specific questions. Before changing settings, check the prerequisites in the relevant article. The same message can have different causes; keeping the original config and a complete record of what you did is more useful than sharing a single error line.
From Project V's origins to the V2Fly community and the Xray fork, this guide explains core feature differences, config compatibility, and the core choices in v2rayN, v2rayNG, and v2flyNG.
Learn what causes DNS leaks and how to interpret online tests, with setup steps for disabling system DNS fallback, enabling FakeDNS, and adding routing safeguards on desktop and Android.
Breaks down log messages such as failed to dial, context canceled, invalid user, and TLS handshake; explains log levels and how to trace config issues from errors.