// TROUBLESHOOTING INDEX

V2Ray FAQ and Troubleshooting

Organized into fundamentals, installation and configuration, usage tips, and troubleshooting. First identify whether the issue is in the client interface, core startup, local network, or remote node, then change settings one at a time.

// 01 · BASICS

Fundamentals

Start by distinguishing the client, core, subscription, and proxy mode. Once the concepts are clear, installation and log-based troubleshooting become more straightforward.

How should you choose between v2rayN, v2rayNG, and v2flyNG?

For Windows, macOS, and Linux desktops, v2rayN is the usual choice, with full access to server lists, subscription groups, system proxy, routing, and TUN settings. On Android, v2rayNG, which uses the Xray core, is generally preferred; choose v2flyNG when you specifically need the V2Fly core ecosystem. Their configuration interfaces differ, and whether a subscription can be imported still depends on the protocols and fields provided by the server.

How are V2Ray, V2Fly, Xray, and graphical clients related?

V2Ray generally refers to the protocol and tool ecosystem built around Project V. V2Fly and Xray are common core families responsible for low-level connection, transport, routing, and DNS tasks. v2rayN, v2rayNG, and v2flyNG are graphical clients that save configurations, invoke a core, and provide controls such as the system proxy. When troubleshooting, distinguish between interface settings, core startup, and remote nodes.

What is the difference between a subscription link and a single share link?

A subscription link usually returns a set of server configurations that the client can save in groups and update regularly. A single share link describes one node, typically including its address, port, identifier, transport, and security parameters. Use the subscription management entry for subscriptions, and the clipboard import or scan entry for a single link. Using the wrong entry commonly results in an empty list or an unrecognized-format error.

What is the difference between system proxy mode and TUN mode?

A system proxy passes traffic from proxy-aware apps to the client through the operating system's proxy settings. It is simple to configure and works well with browsers and desktop apps that follow system proxy settings. TUN mode creates a virtual network interface and can capture more apps that ignore system proxy settings, but it requires additional permissions and is more sensitive to the local firewall, virtual adapters, and DNS configuration. For a first setup, verify the system proxy before enabling TUN if needed.

// 02 · INSTALLATION

Installation & Configuration

During installation, verify the operating system, processor architecture, app permissions, and first-import order. Do not use node switching to address an app launch problem.

Which v2rayN desktop version should you choose on Windows: the desktop edition or the classic WPF edition?

The desktop edition uses a newer cross-platform interface and suits users who want a similar workflow across desktop systems. The classic WPF edition targets Windows, with menus closer to those used in established tutorials. Both support subscriptions, server selection, and system proxy settings. There is no need to migrate a stable setup just because the interface changed; for a new installation, try the desktop edition first and use the WPF edition if compatibility issues arise.

Which macOS package should you choose: Apple Silicon or Intel?

Open the system's About This Mac page and check the chip or processor field. If it shows an Apple M-series chip, choose Apple Silicon, which is the arm64 package. If it shows an Intel processor, choose the x64 package. The wrong architecture may prevent the app from starting or require additional translation. Confirm the chip type before installing; it is more reliable than judging by the device's appearance or purchase year.

Which Android package should you choose: arm64 or universal?

Most mainstream Android phones released after 2015 can use arm64, which usually has a smaller package. If you cannot confirm the processor architecture, the device is older, or arm64 reports an incompatibility during installation, use the universal package instead. The universal build supports more architectures, so it is usually larger, but it does not add client features. Do not rely solely on a 64-bit label shown by the system; the installation result is the direct test.

What should you do if the system blocks the client on first launch?

First confirm that the package matches the operating system and processor architecture, then check the system security notice for the specific reason it was blocked. On Windows, review the app protection prompt; on macOS, confirm the launch in Privacy & Security; on Linux, check the package format, file permissions, and missing dependencies. Do not keep switching nodes to address a launch block: the core has not started yet, so the problem occurs while the app is loading.

What is the correct order for importing a subscription for the first time?

Copy the complete subscription URL, create a subscription group in the client, paste the URL, and run an update. Once the server list appears, select an active server, start the core, and enable the system proxy. Finally, use a browser to verify the connection by visiting a familiar site. The subscription name is only a local label and does not affect updates; the URL must remain complete, so avoid omitting its beginning, parameters, or trailing characters when copying it.

Do you need to download the V2Ray or Xray core separately after installation?

Usually, start with the core bundled with or managed by the client; there is no need to add a separate core file during the initial installation. If the logs explicitly say that the core is missing, cannot start, or is incompatible, check the client's core settings and update entry. If you place a core manually, it must match the operating system and processor architecture, and the configured core path must match the file's actual location.

// 03 · OPERATION

Usage Tips

Daily operation centers on subscription updates, active servers, proxy modes, and routing rules. Change one variable at a time so the logs remain comparable.

How often should you update a subscription?

The right frequency depends on how often the subscription provider changes its configurations. If node information remains stable, frequent refreshes are unnecessary. Update manually after a configuration notice, widespread node failures, or a change in the subscription contents. Avoid setting an automatic interval that is too short, as frequent requests may trigger limits. Keep the currently working server before updating, then check whether the group and active server were replaced.

How do you choose an active server and tell whether a configuration works?

Update the subscription first, then select an entry in the server list as the active server. The client's test results are useful for filtering, but you should ultimately start the core and visit the target site. If a test fails, first check the logs for DNS resolution, connection refusal, handshake failure, or timeout messages. Do not judge by name or ranking alone, and do not change the protocol, routing, DNS, and proxy mode at the same time, or it will be difficult to identify the source of the change.

How should you use global, rule-based, and direct modes?

Global mode generally sends all capturable traffic through the current server and is useful for temporarily verifying that a node works. Rule mode decides between proxy and direct connections using conditions such as domain, ip, and geosite, making it suitable for daily use. Direct mode is mainly for pausing the proxy path and comparison testing. When configuring a new subscription, verify the connection in global mode first, then switch back to rule mode. If the result changes, check the rule order and final fallback rule.

Why is a custom routing rule not matching?

First confirm that the rule type matches its content: put domain names in a domain condition, address ranges in an ip condition, and use the correct geosite name for predefined categories. Most routing rules are matched from top to bottom, so a broad rule earlier in the list may capture the traffic first. After editing, make the client reload the configuration and use the logs to confirm the actual destination domain, resolution result, and matched outbound. If you change rules without restarting the core, the old configuration may remain active.

How do you enable startup on boot and automatic connection after launch?

Starting with the system, starting the core, and enabling the system proxy are three separate actions. First enable launch at system startup in the client settings, then confirm that the previous server loads at startup, and finally enable setting the system proxy after launch if needed. Reboot once after the initial setup to verify that the client runs, the core starts, and the system proxy is written. Seeing a tray icon alone does not mean the proxy path is working.

// 04 · DIAGNOSIS

Troubleshooting

Start with the first reproducible error: check the subscription request, configuration parsing, core startup, node connection, DNS, routing, and app capture in sequence.

Why are there no servers after importing a subscription link?

First confirm that you used the subscription management entry and run one manual update. If the list is still empty, check whether the URL is complete, contains extra spaces, has expired, and whether the client logs show an HTTP status or parsing error. A subscription URL opening in a browser does not guarantee that the client can parse it; its contents must also use a supported subscription format. Check whether the servers were imported into another group or hidden by filters.

How do you troubleshoot a failed subscription update or a network error?

First verify on the current network that the subscription URL is reachable, then check which proxy method the client uses for subscription updates. If the active node has failed, updating through the proxy can create a dependency loop; temporarily switch to a direct update. If direct access fails, choose a server that still works and try again. Also check the system time, URL parameters, request limits, and certificate or DNS messages in the logs.

What should you check when node tests keep timing out?

Switch to another node in the same subscription first to determine whether one node has failed or the entire configuration is affected. If every node times out, check the local network, system time, firewall, DNS, and core startup logs. If only a few nodes time out, the cause is usually the remote status, port, transport parameters, or network path. The test tool may use a specific target address, so compare its result with actual web access and connection logs.

What should you do when the client says it is connected but the browser cannot access the internet?

Check the active server, core status, system proxy switch, and the browser's proxy source in that order. Run one comparison test in global mode, then inspect the logs for DNS failures, routing to a direct connection, connection refusals, or handshake errors. A separately installed browser proxy extension may bypass system settings; disable it temporarily and try again. After making changes, close and reopen the browser connection to avoid reusing an old session.

What should you do when the system proxy is enabled but some programs are unaffected?

Some programs do not read the operating system proxy or support only specific proxy types, so they may still connect directly even when the system proxy is enabled. First confirm that standard apps such as browsers work, then check whether the target program has its own proxy settings. If more apps need to be captured, consider TUN mode, but record the existing network settings first. Corporate networks, security software, and other proxy tools may also override the system proxy; keep only one control point during troubleshooting.

How do you handle insufficient permissions or startup failure in TUN mode?

TUN needs to create or manage a virtual network interface. On desktop systems, grant administrator or network-extension permission as requested by the client; on Android, confirm the system's VPN connection authorization. If it still fails, check whether another virtual adapter, proxy tool, or security product is using the required capability, and review driver, interface-name, and route-write errors in the logs. Exiting other networking tools and restarting the client is usually more effective than repeatedly switching nodes.

// RELATED DOCUMENTS

Continue to the configuration steps

If you need to start with subscription import, read the usage documentation. For proxy modes, routing, TUN, and routine maintenance, open the system guide.