Configuration & Troubleshooting Index 16 common questions

V2Ray FAQ: Subscription, Proxy, and Connection Troubleshooting

Find answers by workflow stage. Confirm the client, subscription, and active node first, then check the system proxy, routing, DNS, and TUN permissions. Avoid changing several settings at once, or you may lose the evidence needed to identify the cause.

subscription Subscription updates system proxy System proxy routing Split routing TUN Traffic capture

01 / BASICS

Basics

Separate the roles of the client, core, subscription, and proxy mode first. This prevents interface issues from being confused with connection problems during later troubleshooting.

What are V2Ray, the Xray core, and v2rayN?

V2Ray generally refers to the protocol and tooling ecosystem associated with Project V. Xray is a core implementation in that ecosystem, handling protocols, inbounds, outbounds, DNS, and routing. v2rayN is a desktop GUI client for subscription management, server selection, and system proxy settings, while relying on Xray and other cores to process traffic. When troubleshooting, separate client settings from core configuration: subscription list issues usually start with the client, while protocol or routing errors require checking core logs.

Which client should I choose for Windows, macOS, Android, or Linux?

For Windows, macOS, and Linux, v2rayN is a practical first choice because its interface and subscription workflow are consistent. On Android, v2rayNG uses the Xray core; choose v2flyNG when you need the v2fly core. Confirm your operating system and CPU architecture before downloading the matching package. Menus vary by client, but the basic workflow is the same: import a subscription, update servers, select a node, choose a proxy mode, and verify the connection.

What is the difference between a V2Ray subscription link and a single node configuration?

A subscription link is usually issued by a service provider. The client fetches multiple server configurations from it and syncs additions or removals during later updates. A single node configuration describes one connection and can be imported from a link, QR code, or manual fields. Subscriptions are best for long-term use and periodic updates; import a single node directly for a quick test. Treat subscription URLs as sensitive configuration data and keep them out of public documents, screenshots, and shared logs.

What is the difference between a system proxy, routing mode, and TUN mode?

A system proxy writes the proxy address into the operating system settings and mainly affects apps that follow those settings. Routing mode decides whether traffic entering the core uses the direct, proxy, or block outbound, such as when splitting traffic with geosite and geoip rules. TUN mode uses a virtual network interface to capture a broader range of traffic, including from apps that ignore system proxy settings. These operate at different layers and can be combined; for everyday browsing, start with the system proxy and consider TUN when more applications need to be captured.

02 / INSTALLATION

Installation & Setup

During installation, confirm the platform, CPU architecture, and required permissions. After importing a subscription, update it manually so the server list can be generated from the returned content.

How do I import a subscription link into v2rayN or v2rayNG?

Copy the complete subscription URL provided by the service. In v2rayN, open subscription group management, add a group, paste the URL, save it, and update the subscription. In v2rayNG, open subscription groups or subscription settings, add the URL, and run an update. When it finishes, return to the server list, select a configuration, and then enable the system proxy or connect. Do not paste a subscription URL into a single server’s address field; that field expects a server hostname, not a subscription endpoint.

Why can’t I see any servers after a successful subscription update?

First confirm that the recently updated subscription group is selected, and clear any server-name or region keyword filters. Check whether the update result reports valid configurations. An empty response, unsupported format, or expired subscription will not generate servers. Verify the device date, time, and time zone, then update again. With multiple groups, make sure the server list has not switched to another group or been filtered to favorites only.

How should I choose between arm64 and universal Android packages?

Most recent mainstream Android phones use the arm64 architecture, so choose the arm64 package first; it is usually smaller. Use the universal package when the architecture is unknown, the device is older, or the arm64 package is incompatible. Universal packages support multiple CPU architectures and offer broader compatibility, but no extra features. For an existing installation, the update must also match the app’s signing and source; otherwise Android may require uninstalling the older version first.

Why do I get a permission error when enabling TUN mode?

TUN mode creates a virtual network interface and changes routing, so it requires system-level permissions. On desktop, start it from the client’s TUN switch and grant administrator, network-extension, or related helper-component permissions when prompted; do not launch only the core file. After granting permission, fully quit and reopen the client. If it still fails, check whether security software is blocking the driver or service, and make sure an older TUN component is not still occupying the interface.

03 / USAGE

Usage Tips

The proxy mode determines which apps hand requests to the client; routing rules then determine which outbound handles that traffic. Change one variable at a time.

Which system proxy mode should I use day to day?

Choose automatic system proxy configuration when you want browsers and most apps that follow system settings to use the proxy. To pause proxy use, choose clear system proxy so the operating system returns to its normal network path. Leave the system proxy unchanged if you already configured a proxy manually or use TUN alone. PAC mode selects proxied requests according to rules, but coverage depends on app support. After switching modes, open the system network settings and confirm that the proxy address and port changed as expected.

How should I choose between global mode and bypass-mainland-China mode?

Global mode sends most captured traffic through the proxy outbound and is useful for quickly checking whether split-routing rules are the problem, but it can create unnecessary proxy traffic. Bypass-mainland-China mode sends common mainland-China domains and addresses through the direct outbound while processing other traffic by rule, making it better for everyday use. If a site fails in bypass mode, switch to global mode for comparison. If global mode works, inspect the geosite, geoip, or custom rule matching that domain.

How can I organize multiple subscriptions into groups without mixing them after updates?

Create a separate group for each subscription and name it by source or purpose. Do not repeatedly add multiple subscription URLs to one group. Select the target group before updating, review additions and removals afterward, then filter servers by region keyword or protocol. Keep manual configurations in a separate local group so subscription updates do not disrupt their order. After switching groups, confirm the active server again because list changes may not automatically replace the selected node.

Why aren’t my custom routing rules taking effect as expected?

Routing rules are generally matched from top to bottom. A broad rule placed first may match early and prevent a later, more specific rule from running. Check whether domain rules use domain, full, keyword, or geosite; whether address rules use ip, geoip, or a CIDR range; and whether the target outbound tag actually exists. Reload the configuration or restart the core after changes. For troubleshooting, temporarily keep only the target rule and use logs to verify the actual domain, address, and final outbound.

04 / TROUBLESHOOTING

Troubleshooting

First identify whether the failure occurs while fetching the subscription, during the node handshake, in the system proxy, or during route resolution. Logs from the affected stage are more useful than repeatedly changing every setting.

How do I fix a failed subscription update or network error?

Check that the subscription URL is complete, including its scheme, path, and parameters. Verify the system time, then try updating once with the system proxy disabled and once with a working node enabled to determine whether the URL must be accessed through a proxy. If the provider requires a specific user agent or update method, follow its instructions. If the update still fails, inspect HTTP status codes and parsing messages in the client log, and ask the provider whether the URL has expired.

What order should I follow when node tests keep timing out?

Switch to another server in the same subscription first to determine whether one node or all configurations are affected. Then check ordinary web access, the device time, and the server address, port, UUID, transport, and TLS fields. The test method also matters: a reachable TCP port does not guarantee a successful protocol handshake. If every node times out, update the subscription, restart the network and client, and inspect the core log for errors at the connection stage.

What should I do when the client says it is connected but websites still won’t open?

Connected only means that the client or core has started; it does not guarantee that the target request succeeds. Confirm that a server is selected, then check that the system proxy is enabled and its port matches the client’s listening port. Run a comparison test in global mode: if global works but split routing does not, focus on routing and DNS; if global also fails, switch nodes and inspect handshake logs. If the browser uses its own proxy, an extension proxy, or secure DNS, temporarily restore it to follow system settings.

v2rayN has system proxy enabled, but some apps still connect directly. What should I do?

Some apps do not read operating system proxy settings, or read them only at startup. Fully quit the app, select automatic system proxy configuration in v2rayN, reopen it, and confirm that the system proxy page contains the local address and port. If the app has its own proxy settings, set it to follow the system or enter the client’s listening port manually. If it still connects directly and needs to be captured, consider enabling TUN mode, then verify that the virtual interface and routing table were created successfully.

Download v2rayN