Separate the client interface, core processing, and remote connection. Subscription management organizes server settings, the system proxy directs app traffic to the client, and routing rules choose the outbound path. Check each layer separately to pinpoint connection issues.
v2rayN · Features
Update server settings by group
A subscription URL retrieves server configurations in bulk; it is not the same as a single-server share link. In Subscription Groups, add a group, enter its name and URL, save it, and run an update. Then check the server list in that group. Unlike entering each server manually, a subscription can sync addresses, ports, and transport settings in one place. If an update fails, first make sure the URL is still valid, then check whether updates are set to use a direct connection or the proxy. Subscription URLs may contain access credentials: store them somewhere secure, hide the full URL when showing the interface, and never share screenshots that reveal credentials.
Subscription Groups → Subscription Group Settings
Add Group → Enter Subscription URL → Save
Update Subscription → Check Server List
Choose an outbound route by domain or IP
Split routing takes effect after traffic reaches the core. Rules can match domains, destination IPs, or ports and send traffic direct or through a proxy. Start with the client's presets, then add rules to meet specific needs; this is easier to troubleshoot than adding many custom entries at once. Rules are usually evaluated in order, so put more specific conditions before broader ones. With the domain strategy set to IPIfNonMatch, the core checks the destination IP only if no domain rule matches; this does not force every request to resolve an IP. The snippet below shows the rule fields. Make sure outbound tags match your configuration.
Set system proxy automatically changes the proxy settings provided by the operating system. Only apps that honor those settings will send requests through the client. This is different from choosing global routing or Bypass mainland China: the system proxy determines whether traffic enters the client, while routing determines where it goes next. If a browser works but another app does not, check whether that app reads the system proxy or has its own proxy settings. When configuring a proxy manually, verify the protocol, local address, and actual listening port instead of copying a port from another guide. Clear the system proxy before closing the client to avoid leaving a broken proxy setting behind.
System proxy: Set system proxy automatically
Local address: 127.0.0.1
Port: Use the listening port shown in Parameter Settings
Routing: Select the rules you need separately
Route traffic through a virtual network interface
TUN mode routes traffic through a virtual network interface and can help with apps that do not support a regular system proxy. Unlike changing proxy settings in individual apps, TUN involves system routing, permissions, and DNS. Before enabling it for the first time, verify that the server works through the system proxy. Desktop environments may require elevated permissions; behavior varies by client, core, and operating system. If domains stop resolving or local network devices become unreachable, check DNS and direct-routing rules separately, and temporarily disable other software that modifies network routes. Change one thing at a time: changing both the server and the entire routing setup makes issues harder to diagnose.
Verify first: Access the target site through the system proxy
Then enable: TUN mode and the required system permissions
Finally check: DNS, local network access, and routing rules
Choose a core based on protocol settings
The GUI client edits and manages configurations; the core handles protocols, connections, and routing. v2rayN can manage different cores, but available options and settings depend on the installed client version. Before switching, check the server's protocol, transport, and security settings—protocol names alone do not guarantee compatibility. For configurations using REALITY or XTLS Vision, verify the corresponding Xray requirements. After switching, restart the connection and check the logs. Unsupported fields usually call for a different core or configuration, not repeated changes to the local listening port.
Client: configuration editing and subscription management
Core: protocol handling and traffic forwarding
Choose based on: protocol + transport + security settings
Import a single configuration from the clipboard
A share link encodes the connection settings for one server as text and can be added using the client's clipboard import option. Copy the entire link, without surrounding chat text, quotation marks, or line breaks, then import it and check the type, address, port, and transport security. Unlike a subscription, a share link usually is not updated with a group; if the server settings change, import a new link. VMess, VLESS, Trojan, and Shadowsocks use different share-link formats, and support for some extended fields depends on the core. A successful import only confirms that the link was parsed. Test the connection to verify that the configuration actually works.
vmess://
vless://
trojan://
ss://
Select a feature to view setup notes · Keycaps indicate list indexes; no global shortcuts are registered
Verify the connection before adding rules
For your first setup, use a single working server and one preset routing profile. Once a browser can make real requests, adjust split routing, DNS, or TUN. Change one setting at a time and note its previous value so you can return to a known-good state if something goes wrong.
Use speed tests as one input, not the whole picture
Latency checks, real connection tests, and download speed tests measure different things. A single latency reading cannot confirm that the target site, DNS resolution, and app proxy settings are all working. When comparing servers, use the same test method and consider actual browsing results. Do not mix rankings from different kinds of tests.
Client Choice / PLATFORMS
Download a client for your operating system
Use v2rayN on desktop. For Android, v2rayNG is the usual first choice; consider v2flyNG if you need a V2Fly core. Check your device architecture and the available package format before choosing a download. Version details are listed on the client cards on the download page.
The desktop edition uses a cross-platform interface, while the classic WPF edition retains its familiar layout. If you're installing for the first time, start with the desktop edition. If you already have a classic setup, choose based on your interface preference and compatibility needs. With either edition, import your subscription before configuring the system proxy and routing.
Before installing, check your system architecture and runtime requirements. Keep the app and its configuration in a dedicated folder rather than running it from a temporary directory. Before switching interfaces or updating, export any settings you need to keep and make sure no other software is using the local port.
Check your chip under About This Mac: choose arm64 for Apple Silicon or x64 for Intel. The architecture determines whether the program can run; it has nothing to do with whether your subscription uses VMess or VLESS, or where the server is located.
On first launch, follow the system prompts to grant app permissions. Test a regular proxy connection first, then enable network features that need additional permissions if required. If startup fails, check that the package matches your chip, then review app permissions. Don't mistake a launch problem for a subscription issue.
v2rayNG uses the Xray core and is the first choice for Android. v2flyNG uses the V2Fly core and is an alternative for compatibility needs. Most arm64 devices should use the matching package. If you're unsure of the architecture, check the universal-version notes on the download page rather than relying on the phone brand.
After importing, select a server and approve the VPN connection prompt when you connect. Background restrictions and battery optimization can affect long-running connections. If the connection drops when the app goes into the background, check the system's background-running settings and make sure another app is not using the VPN connection.
Choose deb or rpm to match your distribution's package system, then select x64 or arm64. The GUI client is intended for desktop environments. After installation, check the proxy settings for your desktop session; whether an app uses the system proxy depends on the app and its runtime environment.
Use a graphical package manager to install the app and its dependencies when possible. Before using TUN, check system permissions and existing network management tools to avoid having multiple sets of rules controlling traffic. If the regular proxy works but TUN does not, check local permissions and routing before changing your subscription.
The client and server configuration are separate parts. Installing the app prepares the local tools, but a connection also requires valid server settings. If you have a subscription, follow these steps. If you only have a single share link, import it from the clipboard and go straight to step two.
01
Add a subscription group and update it
Open Subscription Group Settings, add a group, and paste the full URL. Save it, then run an update. Check that servers appear in the list and that their types, ports, and security settings were parsed correctly. A subscription URL retrieves configurations; it does not belong in the server address field. When copying from a web page, watch for leading or trailing spaces and truncated text.
If an update fails, determine whether the URL is unreachable, its access credentials have expired, or the client cannot parse the response. Keep your existing settings and avoid repeatedly deleting and recreating the group. Subscription converters can access your original configurations, so use a trusted service only when you actually need to convert formats.
02
Select a server, then set the proxy and routing separately
Choose a server from the list to make it active. On desktop, enable Set system proxy automatically and choose a routing preset for your needs. On Android, start the connection and approve the system prompt. The system proxy and global routing operate at different layers: choosing global routing does not automatically make every app use the local proxy.
Keep other settings unchanged during your first setup. Adjust the listening address and access controls only if you need to share the connection on your local network; for local use, keep the local listening address. Avoid enabling multiple network-level routing tools at once. First establish a basic connection you can test consistently.
03
Test access and use logs to diagnose problems
Test the connection, then open the target site in the app you want to use. Check DNS resolution, connection establishment, and the app's proxy settings separately. If a latency test succeeds but a page will not load, check for incorrect TLS settings, DNS problems, or an app that bypasses the system proxy instead of simply running more speed tests.
For further troubleshooting, note the test time, selected server, and a summary of the error. Remove subscription URLs, user IDs, and authentication details before sharing logs. After the connection works again, add split-routing rules one at a time. Clear the system proxy before exiting for the day so apps do not keep pointing to a closed listening port.
CORES AND CLIENTS / OPEN SOURCE
Project V, V2Fly, and Xray
V2Ray is not the name of a single app with a fixed interface. Understanding how projects, cores, and GUI clients fit together helps avoid confusion when choosing packages, importing settings, or updating. It also helps you tell whether a setting belongs in the client or needs to be handled on the server.
Project background and core branches
Project V is an open-source ecosystem built around network proxy tools, with V2Ray as one of its key projects. The V2Fly community continues V2Ray's development and maintenance, while Xray has grown from related technical foundations into an independent core. The two share a background, but protocol extensions, configuration fields, and feature development are not identical. Similar names do not mean every configuration is interchangeable.
VMess, VLESS, Trojan, and Shadowsocks are protocol choices; REALITY is a security mechanism, while XTLS Vision involves specific flow-control and forwarding behavior. Server configurations often combine protocol, transport, security, and flow-control settings. To check compatibility, verify the complete set of parameters against the core's capabilities rather than assuming compatibility from one protocol name.
How the GUI and protocol execution fit together
v2rayN, v2rayNG, and v2flyNG are open-source GUI clients. They provide server lists, subscription updates, settings editors, and connection controls; the core reads the generated configuration and handles the connection. On desktop, choose v2rayN. On Android, choose between v2rayNG and v2flyNG based on Xray or V2Fly compatibility needs. Base your choice on the features you need and your device environment, not on an assumed ranking between the names.
Open source means you can review, use, and modify code under each project's license. The V2Fly and Xray cores use the MPL 2.0 license; GUI clients have their own licenses and distribution terms. Open-source status helps explain how software is developed and maintained, but it does not replace checking your subscription source, server permissions, configuration, or device environment. A client is not a server subscription.
Clients and cores are maintained separately
GUI updates may affect subscription parsing, interface behavior, and operating-system compatibility. Core updates may change protocol behavior, routing, or connection handling. These updates address different issues. If a new field is not recognized, check core support first. If the interface will not open or a menu behaves unexpectedly, check the client runtime environment; you usually do not need to change the server configuration.
Before updating, export the settings you need and note your current listening port, routing choice, and DNS settings. After the update, retest with the same server and target app, then restore custom settings one at a time. If connection behavior changes, compare results with the same settings before and after the update. For a structured learning path, follow the full guide from core concepts, installation, and subscriptions through TUN and routine maintenance.
Find the setting behind common problems: check system requirements for installation issues, connection settings and parameters for connection problems, and compare clients by platform and core needs. These three articles are listed from newest to oldest.