Basics
Understand the difference between the client, core, and traffic capture before changing settings.
What are V2Ray, v2rayN, and Xray?
V2Ray is part of the Project V proxy ecosystem. V2Fly continues development of related cores, while Xray follows a separate core implementation. v2rayN is a desktop GUI client for managing subscriptions, configuring routing, and starting a core. The client interface and the core that handles connections are separate layers. When troubleshooting, note the client name, selected core, and exact error. Updating only the interface may not help if the core does not support a particular protocol parameter.
Which client should I use on desktop or Android?
Use v2rayN on Windows, macOS, or Linux. On Android, v2rayNG with the Xray core is a common choice; choose v2flyNG if you need the V2Fly core. Pick a client for your operating system first, then choose an installer that matches your processor architecture. A core name is not an installer platform. If you already have a configuration, check that the client supports its protocols and transport settings. This site provides downloads and setup guides; it is not the official development team for these clients.
Do I need a subscription after installing the client?
A client reads configuration and establishes connections; it does not provide a remote service. Before use, obtain a subscription URL, share link, or server details that you are authorized to use, and make sure the service is still active. Subscription URLs usually fetch multiple configurations, while an individual share link represents one configuration; they may have different import options. Do not mistake a service information page or account login page for a subscription URL. Never expose full subscription credentials in public screenshots, logs, or support requests.
What is the difference between system proxy, routing mode, and TUN?
A system proxy directs apps that follow system settings to a local proxy endpoint. Routing rules tell the core whether to send each request directly, through a proxy, or to another outbound. TUN uses a virtual network interface to capture eligible traffic. These work at different layers: switching to global routing does not make every app follow the system proxy. First test a browser with the system proxy and confirm the subscription and core work. Then enable TUN if your apps need it, changing one setting at a time.
Advanced Setup
Choose an installer for your architecture, update subscriptions, then configure traffic capture and permissions.
Which Android installer should I choose: arm64 or universal?
Most mainstream phones released after 2015 are worth checking for arm64 support, but the deciding factor is the app architecture supported by the device. A 64-bit processor does not guarantee that the operating system can run 64-bit apps. Check the device specifications or system information. If you are unsure, choose universal, which supports multiple architectures but usually has a larger download. If installation reports incompatibility, check the Android requirements and supported architecture. For a signature conflict, address the difference between the existing app and its source rather than repeatedly switching architectures.
Should I choose the Desktop or WPF v2rayN download?
The Windows download page offers Desktop and WPF. Desktop uses a newer cross-platform interface; WPF retains the classic Windows desktop interface. Menus and configuration storage may differ, so a tutorial screenshot alone does not prove a feature is missing. For a first install, start with Desktop; consider WPF if you rely on the classic workflow. Before switching, export your configuration and close the old instance before launching the other version to prevent both from competing for the same local port.
Where do I import a copied subscription URL?
In v2rayN, open the settings for “Subscription groups,” add a group, enter a note and subscription URL, then save and update that group. Example URL: https://example.com/sub?token=xxxx. Replace it with your own valid URL. On Android, add the URL in subscription settings, then return to the main screen and update subscriptions; menu names vary by version. Check for spaces, line breaks, or missing parameters when pasting. Saving a group does not fetch server configurations.
TUN reports insufficient permissions. What should I do?
Turn off TUN first and confirm that a regular proxy connection works, then address permissions. On Windows, follow the client prompts to grant administrator access or configure the required service. On macOS and Linux, follow the current client instructions for system authorization; do not leave the entire application directory writable by every user. On Android, approve the system VPN permission when starting a connection and check whether another VPN app is using the interface. If it still fails, inspect virtual-interface creation logs to distinguish permission problems from interface conflicts or route setup failures.
Usage Tips
Keep subscription configurations, manual changes, and platform settings separate to make updates and migration easier to recover from.
Which mode should I use day to day: bypass mainland China, global, or direct?
“Bypass mainland China” typically sends requests matching the relevant domain or IP rules directly and handles other requests according to the configured outbound. “Global” typically sends requests received by the core through the proxy outbound. “Direct” is usually for direct access or temporary troubleshooting. Exact behavior depends on the routing configuration, and these labels do not mean precisely the same rules in every version. Choose a split-routing mode for everyday use; briefly compare with global mode if one site behaves unexpectedly. Note your original settings and restore them after testing.
How can I keep my configuration changes after updating a subscription?
Updating a subscription regenerates the configurations managed by that group, so edits to subscription entries may be overwritten next time. To keep a test configuration, copy it to a separate manual group, add a clear note, and edit that copy. Back up client-level settings such as routing and local ports separately. Before updating, note the active configuration and group name; afterward, confirm your selection. If the provider changes an entry’s name or parameters, the old entry may no longer correspond to the new one.
Why doesn’t a terminal app use the browser’s system proxy?
Many terminal tools ignore the desktop system proxy and use their own settings or environment variables such as HTTP_PROXY, HTTPS_PROXY, and ALL_PROXY. Support for variable capitalization and proxy protocols varies by tool. Confirm the actual listening address, port, and inbound protocol in the client, then configure the current terminal session as documented by the tool. Do not assume an example port is the one your device uses. New sessions may not inherit temporary variables; clear proxy settings you no longer need before closing the client.
Can I copy the entire configuration folder when switching computers or phones?
Use the client’s export, share, and subscription import features instead of copying the entire configuration folder across platforms. Local ports, file paths, system proxy settings, and TUN permissions differ between desktop and Android. Import connection settings first, then recreate routing and traffic capture for the new platform. If an export contains credentials, transfer it through a trusted channel and store it securely. Once the new device connects successfully, remove subscriptions and temporary exports from the old device, taking care not to delete your only backup.
Troubleshooting
Identify whether the problem is subscription access, app traffic capture, DNS, or the remote connection before changing settings.
What should I check first if subscription import or updates fail?
First determine whether the URL is unreachable or its contents cannot be parsed. Check that you copied the full URL, the service has not expired, and the system date is correct. Then check the logs for an HTTP status or parsing error. A login page or regular webpage usually cannot be parsed as a subscription. If the update options include direct or proxied access, compare them using an already working connection; otherwise, you may create a loop by relying on a configuration you have not imported yet. Avoid repeated rapid updates. If the issue persists, tell the provider what kind of error occurred and redact credentials in the URL.
Does a node test timeout mean the server is definitely unavailable?
Not necessarily. The test method and target, DNS, current network, and server parameters can all affect the result; one timeout is not enough to identify the cause. Confirm the device has internet access, then check the address, port, protocol, transport, TLS fields, and system time. Review the core logs to distinguish DNS lookup failures, refused connections, and handshake errors. Compare with a known-good configuration or another network. Do not disable certificate verification just to silence an error; that can hide configuration or server-side problems.
It says connected, but webpages won’t load. How do I troubleshoot?
“Connected” may only mean that the client started a local service or VPN interface; it does not confirm that the remote connection and DNS are working. Check whether a connection log appears when you visit a webpage. No log at all? Check app traffic capture and the local port first. A log with a DNS error points to DNS; a handshake or connection error calls for checking the remote settings. Reproduce the issue in one browser with one configuration, temporarily disabling extensions that may override the proxy. Change one setting at a time and record the result so you can identify the cause.
v2rayN system proxy is on, but the browser still won’t use it. What should I do?
In v2rayN, make sure “Set system proxy automatically” is selected instead of “Do not change system proxy.” Then check the system proxy address and port against the client’s listening settings. Look for a separate proxy configuration or extension in the browser, and rule out other network tools repeatedly changing system settings. Fully quit and reopen the browser, then check the client logs. If stale settings remain, choose “Clear system proxy,” confirm they are reset, and enable the proxy again. Clear system proxy settings you no longer need before closing the client.