Subscriptions · Proxy · Connection Troubleshooting

V2Ray FAQ

Identify the symptom before changing settings. Browse steps for subscription imports, choosing a client, and connection issues by category.

New to setup? Start with Quick Start. For a step-by-step troubleshooting process, see Troubleshooting.

Basics

Understand the client, core, and configuration source before deciding which layer to change.

What’s the difference between V2Ray, Xray, and v2rayN?

First, distinguish the core from the graphical client. V2Ray is part of the Project V ecosystem, and V2Fly continues development of the related core. Xray is another branch of core development. v2rayN provides a desktop GUI for managing subscriptions, generating configurations, and launching the selected core. A client’s ability to import a type of share link does not mean the active core supports every parameter in it. If a protocol or transport error occurs, check both the client and the core actually in use—not just the software name.

Which should you use: v2rayN, v2rayNG, or v2flyNG?

For Windows, macOS, and Linux desktops, start with v2rayN and choose a package that matches your system architecture. On Android, v2rayNG with the Xray core is the usual choice; consider v2flyNG if you need compatibility with the V2Fly core. The two Android clients differ in settings and supported features, so check the node’s protocol, transport, and security requirements before switching. Don’t choose based only on similar names or icons, and don’t assume configurations exported by different clients are interchangeable.

Do you need a subscription or node configuration after installing the client?

Yes. The client reads configuration and forwards requests; installing it does not automatically provide access to a remote service. Import a subscription link or node share link you’re authorized to use, or enter the settings provided by your service. Subscriptions typically fetch and update multiple nodes, while a share link usually contains one node configuration. After importing, select an active node and connect. Subscription URLs may contain access credentials, so store them securely—don’t share them in public screenshots, forums, or online parsing tools.

What do system proxy, routing, and TUN each control?

The system proxy directs requests from apps that honor the OS proxy settings to a local proxy port. Routing determines whether requests entering the core are proxied, sent directly, or blocked. TUN captures more traffic through a virtual network interface, but routing, DNS, and app behavior still apply. These are separate controls, and enabling them does not guarantee that every app uses the proxy. For an initial setup, leave TUN off, confirm the node and standard system proxy work, then expand traffic coverage one step at a time to make conflicts easier to find.

Installation & Setup

Choose the right architecture, then import your configuration. Troubleshoot permissions separately from node issues.

v2rayN subscription import fails or shows an empty list. What should you check first?

First, distinguish a subscription URL from a single share link; use the subscription group or clipboard import option as appropriate. Remove leading or trailing spaces and line breaks, and check whether a messaging app truncated the link. Saving a subscription is not enough—you must update it to fetch the node list. If the update succeeds but no nodes appear, check that the response isn’t a login page or error message and that its format is supported. Also make sure a group filter isn’t hiding the list. Don’t repeatedly delete all your settings: keep the existing group and test the same URL in a new one.

Which Android package should you choose: arm64 or universal?

Check the device’s processor and the app architectures supported by its OS. Most newer Android devices can use the smaller arm64 package; if you’re unsure of the architecture, choose universal, which includes multiple architectures. A 64-bit processor does not guarantee that the installed OS supports 64-bit apps, so don’t rely on the device’s purchase date alone. If installation fails, check the Android version requirement, available storage, and whether the existing app has a matching signature. Export any settings you want to keep before uninstalling the old app.

Which v2rayN version should you choose: Desktop or Classic WPF?

Windows users can choose between the cross-platform Desktop version and the classic WPF version, which uses the Windows desktop interface. If you’re new to v2rayN, try Desktop first; choose WPF if you prefer its classic layout. Check the runtime requirements for the package you download. Don’t extract both versions into the same folder and overwrite files. To migrate, export your subscriptions and essential settings, then import them and test the connection in a separate folder. Verify routing, ports, and core selection before changing the original folder.

TUN reports insufficient permissions. What should you do?

Turn off TUN first and confirm that a standard system proxy connection works, so you don’t mistake a node issue for a permissions problem. On Windows, launch the client as administrator if prompted, and check whether security software is blocking the virtual adapter or related components. On macOS and Linux, grant the permissions requested by the OS. On Android, confirm VPN connection approval and check whether another VPN app is already using the connection. Don’t disable all security protections to troubleshoot; address the specific permission or component named in the error.

Tips & Usage

After updating a subscription, changing routes, or adjusting ports, check apps that depend on those settings.

When should you update a subscription through the proxy?

First, confirm the subscription URL is still valid and note whether the error is a connection timeout, access denial, or content parsing failure. If your current network can’t reach the subscription service directly but an existing node works, try the client’s update-through-proxy option; the local proxy must already be running. If no nodes work, changing the update method may not help. A proxy won’t restore an expired URL or authorization, or fix an error page returned by the server. Contact the subscription provider to verify the status and format.

How should you switch between Bypass mainland China, Global, and Direct modes?

Choose a routing mode based on what you’re trying to access. Bypass mainland China generally sends matching mainland China IP addresses or domains direct, while handling other requests according to the rules. Global generally proxies requests that enter the core; Direct generally sends them without a remote node. The actual behavior depends on the rules generated by the client. As a troubleshooting test, switch to Global briefly to see whether routing rules are the issue. This won’t make apps that ignore the system proxy enter the core. Restore the original mode afterward to avoid changing how unrelated apps connect.

Which settings need updating after you change the local listening port?

Check the current listening address, port, and supported proxy types in the settings. Don’t assume different versions use the same default ports. After changing the port and restarting the core, update it in browser manual proxy settings, download tools, and other apps. If the client manages the system proxy automatically, reapply those settings too. HTTP and SOCKS endpoints aren’t interchangeable just because their port numbers are close. Keep the listener bound to the local loopback address unless you specifically need LAN access; don’t expose it more widely than necessary.

Why don’t some apps change after configuring per-app proxy on Android?

First, confirm that you’re using VPN mode; proxy-only mode usually requires each app to configure its own proxy. Then check whether the per-app list means “proxy selected apps” or “bypass selected apps”—the two options do the opposite. After changing the list, stop and restart the connection. If needed, close and reopen the target app. Android settings such as Always-on VPN and Block connections without VPN can also affect the result. Test one app at a time, and avoid changing routing and DNS together so you can tell which setting made a difference.

Troubleshooting

Narrow down the cause step by step: check your local network, client mode, node settings, and server.

How does troubleshooting differ when all nodes time out versus just one?

If all nodes time out, clear the system proxy and turn off TUN. Confirm your local network works, then check that the client core started, the local port isn’t in use, and the subscription is still valid. If only one node times out, check its address, port, protocol, and transport settings against other nodes in the same subscription. A single timed-out speed test doesn’t prove the server is unavailable; the test target itself may be unreachable. Keep a redacted error log and narrow down the cause based on the connection stage.

The client says it’s connected, but websites still won’t load. What should you do?

Connected usually means the client or local service is running; it doesn’t mean the destination website is reachable. Confirm that the intended node is selected, then check whether system proxy or VPN routing is active. Test different websites and apps: if only one app fails, check its own proxy settings; if only domain names fail, focus on DNS; if all requests fail, look for connection errors in the core log. Temporarily rule out conflicts with other proxy or VPN software and browser extensions. Retest after each step instead of resetting everything at once.

The system proxy is on, but the browser or other apps still connect directly. What should you check?

Make sure the client is set to configure the system proxy automatically, rather than leaving it unchanged. Then verify the local proxy address and port in your OS network settings. Some browsers have separate proxy settings, and some apps don’t use the system proxy at all; configure them individually or try TUN after confirming the node works. If the system proxy setting keeps reverting, check for overrides from other proxy software, browser extensions, or organizational policies. Clear the system proxy before quitting the client; otherwise, the OS may keep pointing to a port that is no longer listening and leave you offline.

How can you tell a TLS handshake failure from a certificate error or DNS issue?

Check which stage of the connection appears in the log. If domain name resolution fails, review DNS settings in the OS and client, and confirm the server hostname is valid. For an invalid certificate, x509, or handshake error, first sync the system date, time, and time zone. Then verify the server’s required SNI, transport hostname, and certificate domain. Don’t routinely allow insecure connections as a fix—it skips important validation. If the same configuration fails only on one network, retest on a trusted network and investigate DNS and certificate settings separately.

Download v2rayN