socks:127.0.0.1:10808 | http:127.0.0.1:10809Routing: Bypass mainland China (Whitelist)
Configuration Preview
v2rayNG+ ⋮
Disconnected
V
Routing Settings×
Routing Presets
Bypass mainland China (Whitelist)
Blacklist
Global
Enable TUN Mode
geosite:cn → direct
Start by distinguishing three layers: the client manages configuration, the core handles connections, and routing determines where traffic goes.
Setup Overview
Common v2rayN Features
A successful subscription update only means the server configuration was imported. Whether apps use the proxy also depends on the active server, routing preset and traffic-entry method. Use the sections on the left to review each setting: confirm a basic connection first, then add TUN, DNS or custom rules as needed. Menu locations can vary between releases, so follow what you see in your client.
Subscription Groups
Subscription Group SettingsOrganize by source
Update Subscription (without proxy)↻
Update Subscription (through proxy)↻
Subscription Sources & Server Filters
Subscription groups keep servers from different sources separate, which is useful when managing work, test and other configurations side by side. Open “Subscription Group Settings” to add a name and subscription URL, then choose the appropriate update option. After updating, check the selected group filter before assuming an empty list means the import failed. If a direct update fails, try updating through a proxy only if you already have a working connection. Subscription URLs may contain account credentials, so keep them out of screenshots and public logs. Deleting an individual server does not cancel its subscription; it may reappear at the next update.
Routing rules determine whether requests reaching the core are proxied, sent direct or blocked. Choose a preset in Routing Settings first, then add domain, IP or port rules as needed. This is easier to troubleshoot than piling on rules from the start. “Bypass mainland China” relies on the relevant domain and IP data; it does not route traffic by app. “Global” only affects traffic that reaches the core. Custom rules are usually matched in order, so put specific exceptions before broader rules. After making changes, retest the same destination and check the logs to confirm which outbound was used.
TUN routes traffic through a virtual network interface, making it useful for apps that ignore system proxy settings. It should not be the first step when setting up a connection. First confirm that the regular proxy works, then check permissions and look for conflicts with other virtual interfaces or networking tools before enabling TUN mode. Routing rules still determine the outbound path; TUN does not force every connection through the proxy. If you lose network access, turn TUN off first, then check routing, DNS and interface status. Retest after switching networks, and avoid changing several settings at once.
A real connection test attempts to reach a test destination through the server, making it more representative of actual use than a basic round-trip time check. Select a server, run the real connection latency test from the right-click menu, and confirm that it connects before comparing multiple results on the same network. A single timeout could be caused by the test destination, DNS resolution or a temporary network issue; it does not prove the configuration is broken. Latency is not download bandwidth. After selecting an active server, test access in a browser and confirm that the system proxy matches how you intend to connect.
Parameter Settings / Core SettingsMenu names vary by release
Core Switching & Compatibility
The client interface and proxy core are separate layers. v2rayN can manage multiple cores, but the available choices depend on the release and server protocol. Switching cores is not a universal fix. Before changing the selection in Parameter Settings or Core Settings, check the server’s protocol, transport and security options, then confirm that the target core supports them. After switching, reload the configuration and check the startup logs. If you see an unknown field or unsupported transport error, investigate configuration compatibility. The two mobile clients have their own core-selection paths.
Set System Proxy AutomaticallyApply to system settings
Clear System ProxyRestore direct access
Do Not Change System ProxyKeep current settings
System Proxy Is Not a Routing Mode
The system proxy tells apps that follow system settings to send requests to a local proxy port. The routing mode determines what the core does with requests it receives. After selecting an active server, choose “Set System Proxy Automatically” and test the connection in a browser. Apps that ignore system proxy settings need a proxy configured in the app itself, or you can consider using TUN. If access stops working after you exit, check whether the system proxy still points to a local port, then choose “Clear System Proxy.” Running multiple proxy tools can cause them to overwrite each other’s settings, so use just one traffic-entry method while troubleshooting.
Start with v2rayN on desktop and v2rayNG on Android; v2flyNG is an alternative for the V2Fly core. Choose a package that matches your device’s processor architecture. Different package types for the same client do not represent different subscription services. The links below open the relevant platform section on the download page, where you can check available packages, system requirements and installation instructions.
The desktop edition uses a cross-platform interface, while the WPF edition keeps the classic desktop layout. Check your operating system and processor requirements first, then choose the interface you prefer. You do not need to install both before you can configure a connection. If you are new to v2rayN, start by locating “Servers,” “Subscription Groups” and the system proxy controls, then connect after confirming the active server.
When moving from another directory, back up your configuration from within the client first; do not overwrite a program folder that is currently running. If the first launch shows a permissions or runtime warning, follow the package instructions on the download page and check the logs. This helps distinguish a startup issue from a failed subscription import.
Open “About This Mac” to check your chip: choose arm64 for Apple Silicon or x64 for Intel. After installation, import your subscription and verify a basic connection without elevated permissions. If you need TUN, follow the prompts to grant the required permissions. Startup problems caused by an incompatible architecture are unrelated to server configuration.
Which apps use the system proxy depends on whether they follow system settings. If a browser works but another app does not, check that app’s network settings before resetting all routing. If you see a system security warning, verify the installation source and read the warning; do not disable system-wide protections.
v2rayNG uses the Xray core, while v2flyNG offers the V2Fly core. Most recent Android phones use arm64; if you are unsure of your device’s architecture, check its specifications before choosing a universal package. After importing a subscription, select a configuration, tap Connect and allow the VPN connection when prompted.
Android VPN connections and desktop system proxy settings are separate. Connections can be affected by other VPN apps, background restrictions and per-app proxy settings. If the connection drops when the screen locks, check background activity settings first. If only a few apps cannot connect, check the per-app list instead of repeatedly deleting and reinstalling the subscription.
Choose a deb or rpm package based on your distribution, then select x64 or arm64. After installing through the graphical package manager, check that the client starts and the core loads before importing your configuration. Proxy settings vary between desktop environments, so a running client alone does not mean every app is using it.
If you need TUN, check permissions, the virtual network interface and compatibility with existing network management tools separately. Corporate networks, containers and virtual machines may also have additional routing in place, so note the current state before making changes. Verify a basic connection with the system proxy first, then expand the traffic covered so you can easily revert your settings.
The client reads configuration and routes traffic; connection details must be obtained separately. This site provides client downloads and setup guides, not subscription services.
V2Ray originated in Project V, a modular proxy toolkit. To understand how it works, first distinguish the graphical client from the core: the server list, subscription management and menus belong to the client, while protocol handling, routing and outbound connections are mainly handled by the core. The client converts interface selections into configuration the core can read, then starts and manages the relevant processes.
V2Fly continues the community-maintained V2Ray project, while Xray is a separate core project built on related technology. They share some configuration concepts and protocol foundations, but their features, required fields and transport support are not identical. Even when protocol names match, check the security layer, transport and specific options. Changing only the core name does not guarantee that a configuration will work unchanged.
When choosing a client, consider two things: which graphical interface suits your device, and which core capabilities your connection requires. On desktop, check supported options in v2rayN’s core settings. On mobile, choose the appropriate option in v2rayNG or v2flyNG. Core families are not speed rankings; your experience also depends on network conditions, server status, DNS and routing settings.
v2rayN, v2rayNG and v2flyNG are all open-source graphical clients, but they are not different skins for the same program. v2rayN is designed for desktop devices and manages servers, subscriptions and runtime settings. v2rayNG connects the Xray core to Android’s network interface, while v2flyNG is for mobile configurations that need the V2Fly core. You can apply similar operating concepts across clients, but check their menus and configuration fields individually.
Open-source licenses define the terms for using, modifying and distributing code. The client code for v2rayN and v2rayNG is licensed under the GPL family; v2flyNG’s client code is also licensed under the GPL family. The cores and bundled dependencies are distributed under their own licenses. V2Fly’s V2Ray core uses the MIT License, while the Xray core uses licenses in the MPL family. A client’s license does not automatically apply to every component it uses.
Open source does not mean the client needs no configuration or maintenance after installation. A client can only use connection details that are actually provided; it cannot replace server-side configuration or guarantee that every subscription will work. When something goes wrong, identify whether the issue occurs during import, startup, traffic capture or access to the destination, then check the relevant settings. That is more effective than repeatedly switching clients based on their names. The About page explains this site’s scope and editorial principles.
Update the Client, Core and Rule Data Separately
Client updates mainly change the interface, configuration management and application fixes. Core updates affect protocol implementation and connection behavior. Updates to GeoIP, GeoSite and other rule data change which IP addresses or domains match. These components do not need to update on the same schedule. Downloading a new client does not guarantee that its rule data is up to date, and updating a subscription only fetches server configuration; it will not fix a local listening port that is already in use.
Before updating, use the client’s backup or export feature to save your configuration. Note the active server, routing preset, system proxy status and custom rules. After updating, retest a connection that worked before, then check routing and DNS. If the client fails to start, look for the earliest error in the logs. Port conflicts, insufficient permissions and incompatible configuration fields require different fixes; they should not all be blamed on network instability. For rule database updates, see the GeoIP and GeoSite Update Guide.
Troubleshoot by Symptom, Not by Resetting Everything
“Connected” usually means the local proxy or network interface has started; it does not guarantee that every destination is reachable. If a browser cannot connect, check the active server and real connection test first, then confirm that the app is using the system proxy. If only some domains fail, check DNS, rule order and the selected outbound. If ordinary websites remain inaccessible after exiting the desktop client, check whether the system still has a proxy pointing to a local port.
On mobile, a connection dropping when the screen locks may be related to background activity restrictions. If a test also fails while the app is open, first check the connection details and look for conflicts with other VPN apps. Record when the issue occurred, what changed before and after, and any relevant error messages. Hide subscription URLs and account details. For a full troubleshooting flow, visit the FAQ. If terms like routing, outbound and transport are unfamiliar, start with the Glossary, then use the Quick Start Guide to restore a basic configuration you can test.
Latest Guides
Connection Checks & Troubleshooting
Here are the three latest guides. If you have imported a subscription but are unsure whether the proxy is working, start with the first connection guide. Startup errors and background disconnections are covered separately, with guidance on local ports and mobile background settings. Choose the article that matches where the problem occurs and follow its steps instead of treating every issue as the same connection failure.
Learn how to choose a server after importing a subscription, compare availability with real connection tests, and verify proxy traffic in your browser and system proxy settings.
Explore common causes of high battery usage in v2rayNG on Android, plus how to manage battery optimization, background restrictions and per-app proxy settings.
Use startup errors to identify a local port conflict, find the process using 10808 or 10809 with system commands, then choose a free port in v2rayN’s parameter settings.