HELP REFERENCE
V2Ray FAQs and Troubleshooting
From terminology and installation to connection logs, check each layer where the problem may occur. Confirm the client and its configuration entry points first, then examine the subscription, node, system proxy, or DNS. Avoid changing multiple parameters at once.
QUESTION INDEX
Find the right category
Choose the category closest to what you are seeing. Each answer follows an actionable sequence. Complete one step, test again, and then move to the next.
BASIC CONCEPTS
Core Concepts
Start by separating the client, core, subscription, and node. Their names may be similar, but they operate at different layers.
What are V2Ray, v2rayN, v2rayNG, and v2flyNG?
V2Ray generally refers to the Project V technology ecosystem and its configuration system. v2rayN is a desktop client for Windows, macOS, and Linux; v2rayNG is an Android client powered by the Xray core; and v2flyNG is an Android client powered by the V2Fly core. The client handles the user interface, subscription management, and system proxy, while the core parses protocols and establishes connections.
Which client should I choose for my first setup?
For desktop devices, v2rayN is the usual choice, bringing subscriptions, nodes, routing, system proxy settings, and logs together in one place. On Android, v2rayNG is generally recommended. Choose v2flyNG only when the node details specifically require the V2Fly core or you need to compare compatibility across cores. Do not choose by name alone—confirm the device platform and node protocol first.
What is the difference between a subscription link and a single-node link?
A subscription link is an updateable collection of nodes. After saving the address, the client can fetch the server list again. A single-node link usually uses a format such as vmess://, vless://, or trojan:// and describes only one node. Imported subscriptions still need to be updated; importing a single node writes it directly to the local list and does not automatically receive later changes to the same group.
How are nodes, protocols, and transport methods related?
A node is a complete set of connection parameters, while the protocol is only one part of it. A VLESS node, for example, may also include the server address, port, user ID, security layer, transport method, and path. The protocol, transport, and security settings in the client must match the node details field by field. Matching only the server address or protocol may still result in a failed connection if other fields differ.
Which arm64 or universal Android package should I choose?
Most current Android phones use 64-bit ARM processors, so arm64 is usually the best starting point and keeps the download smaller. Use the universal package if you cannot confirm the processor architecture, have an older device, or the arm64 package reports incompatibility. The main difference is the range of processor architectures included; the client features and configuration screens are essentially the same.
INSTALLATION AND IMPORT
Installation and Configuration
Put the subscription address in the correct field. Importing, updating, and selecting a node are three separate steps.
How do I import a subscription link into v2rayN?
Open v2rayN’s subscription group settings, create a group, and paste the complete subscription address. Save it, then select Update all subscriptions. When the update finishes, choose a node from the server list and set the system proxy or enable the required mode. If the list does not change, return to the group settings, check for extra spaces at either end of the address, and confirm that the group is enabled.
How do I import and update a subscription in v2rayNG?
In v2rayNG, open the subscription group settings, use the Add option in the top-right corner to enter a label and subscription address, save it, and return to the main screen to update the subscription. Once the nodes appear, select a configuration and tap Connect. When the server list changes later, update it again; simply restarting the client does not replace a full subscription fetch.
What should I do if pasting a subscription link returns a format error?
First, make sure you copied the subscription address rather than a web page URL, order number, or truncated text. Check that the link and its parameters are complete, remove line breaks and extra spaces, and add it again. If the provider gave you a single vmess://, vless://, or trojan:// link, use the import-node-from-clipboard option instead of placing it in the subscription address field.
Why is the node list empty after a successful subscription update?
A successful update only means the request completed; it does not guarantee that the response contained recognizable nodes. Check the client log for empty content, parsing failures, or unsupported formats, then use the subscription group’s update time to confirm that new data was actually received. Also make sure filters are not hiding every node; clear the current keyword filter if necessary and review the list again.
How should I troubleshoot a failed or stalled subscription update?
First exit the active proxy mode and update again through a connection that currently has normal internet access, avoiding a loop through the old proxy. Then check the system time, the complete subscription address, and the client log. If only one subscription fails, update that group separately. If several fail at once, check the local network, DNS, and leftover system proxy settings before changing nodes one by one.
DAILY USAGE
Usage Tips
Connection status, system proxy settings, and routing rules belong to different layers and must be checked separately.
What is the difference between system proxy, global mode, and rule-based routing?
A system proxy writes the client’s listening address into the operating system proxy settings, allowing programs that follow those settings to send requests through the client. Global mode generally routes all traffic entering the client through the current node, while rule-based routing chooses direct or proxied access according to domains, IP addresses, or rules. For an initial test, use a simpler mode to verify the node, then restore the routing rules suited to daily use.
How can I tell whether a node really works instead of merely showing low latency?
Basic latency only indicates that the test target may have responded; it does not fully represent a successful protocol handshake or web request. Use the client’s real-connection test or an actual browsing test, then connect through the node and open a familiar website. If latency looks normal but the real connection fails, check the protocol, security layer, and transport fields instead of judging the node from a single ping result.
Why do routing changes not take effect immediately?
Routing rules are usually loaded when the core starts. After editing them, save the configuration and restart the current connection; if needed, stop the core completely and start it again. Check the rule order as well: a broader rule placed first may match the request before a more specific rule gets a chance to run. During testing, inspect the log for the target domain, target IP, and final outbound tag.
Will updating the client erase my subscriptions and local settings?
A normal upgrade usually keeps the existing data directory, but its location can vary by installation type. Before updating, use the client’s backup or export feature to save subscription groups, routing settings, and local nodes. Do not overwrite the entire directory while the client is running. Exit the program first, update it according to its installation type, and verify after the first launch that the data directory still points to the original location.
Why does the browser use the proxy while other programs do not?
A browser may read the system proxy or use its own proxy settings; other programs may not follow the same path. First confirm that the client has enabled the system proxy, then check whether the target program uses a direct connection, a fixed proxy, or its own network stack. If it supports only HTTP proxying, enter the local HTTP port shown by the client. To handle traffic from more applications, consider using TUN mode.
TROUBLESHOOTING
Troubleshooting
Check the log first, then compare results. Change one variable at a time to identify the layer where the problem occurs.
What order should I follow when troubleshooting a node connection timeout?
First confirm that the device’s network works and synchronize the system time. Then update the subscription again to rule out changed node details. Check the server address, port, protocol, user ID, security layer, and transport method. Compare the result with other nodes in the same subscription. If every node times out, check the local firewall, leftover proxy settings, and DNS; if only one node times out, that node is more likely to be having problems.
What should I do when the client says it is connected but websites will not open?
Connected only means that the client has entered its running state; it does not confirm a successful remote handshake. Open the log and look for connection refusals, timeouts, certificate name mismatches, or DNS errors, then run a real-connection test. Check that the system proxy points to the current client port, and temporarily disable complex routing rules for comparison to determine whether the issue is with the node, DNS, or routing layer.
What should I do if an app connects directly even though the system proxy is enabled?
In the operating system proxy settings, first confirm that the address is the local loopback address and that the port matches the client’s current HTTP listening port. If you have switched between several clients, an old port may still be saved. Save the settings and restart the target app because some programs read the system proxy only at startup. If it still connects directly, check whether the app ignores the system proxy or has custom network settings enabled.
What should I do if TUN mode reports insufficient permissions or fails to start?
TUN mode creates a virtual network interface and changes routing, so it requires more permission than a standard system proxy. On desktop, grant administrator privileges when prompted by the client; on Android, accept the system connection authorization request. If the virtual interface cannot be created, exit other networking tools that use TUN or virtual network adapters, then restart the client. After an upgrade, first-time use may also require authorization again.
Why can an inaccurate system clock prevent a node from connecting?
Some protocols and security handshakes use time information to determine whether a request is valid. If the device clock is significantly off, the remote end may reject it. Enable automatic date, time, and time-zone settings, let the device synchronize, and restart the client before testing again. If the log shows a handshake failure and the node parameters have not recently changed, correcting the clock should be an early troubleshooting step—not repeatedly changing local ports.
How should I handle DNS errors when some websites open and others do not?
First distinguish a domain-resolution failure from a node connection failure by visiting different domains directly and checking DNS messages in the log. Temporarily restore the client’s default DNS and routing settings, restart the connection, and test again. If the defaults work, the problem is likely related to custom DNS, domain rules, or the resolution path. Change only one setting at a time and keep a restorable configuration backup.