Subscription and Connection Troubleshooting

V2Ray FAQ

First identify where the problem occurs: installation, import, update, or accessing a website. Expand the relevant section, change one setting at a time, and check the logs to confirm the result.

Getting Started

Understand clients, subscriptions, and proxy modes

Know what each layer does to avoid repeatedly changing unrelated settings.

What’s the difference between v2rayN, v2rayNG, and the V2Ray core?

First, distinguish the user interface from the components that handle connections. v2rayN is a desktop GUI client for managing subscriptions, selecting servers, and setting routing rules. v2rayNG is an Android client that commonly uses the Xray core; v2flyNG is an Android alternative built around the V2Fly core. The core handles protocols, transport, and outbound connections, while the client generates configuration and runs the core. When an error occurs, check whether it came from a subscription update, a client action, or the core log, then troubleshoot that layer. Switching clients is not a fix for every connection problem.

What’s the difference between a subscription link, a server share link, and a provider’s website?

A subscription link typically returns a set of server configurations that can be updated, making it suitable for a subscription group. A server share link usually contains a single configuration and is intended for options such as importing from the clipboard. A provider’s website is for signing in, checking your account, or retrieving a subscription URL; it cannot be imported as a subscription. Check where you copied the link from and what the client says—don’t judge by whether the URL starts with https. Subscription links may contain access credentials. Even if a link opens in your browser, never post the full URL publicly or upload it to an unfamiliar online conversion tool.

Your subscription includes VMess, VLESS, and REALITY. Which should you choose?

Use a configuration explicitly supported by your provider and recognized by your client’s current core. VMess and VLESS are proxy protocols, while REALITY is a connection security mechanism; they are not options at the same level and should not be compared directly. Don’t try another protocol by changing only the protocol name in a server entry: the address, port, identity, transport, and security settings must all match the server. If you have a working subscription, import it as provided and keep its original settings, then choose a server based on how it performs. A protocol name alone doesn’t guarantee speed or availability.

Are system proxy, global routing, and TUN the same thing?

No. The system proxy tells apps that honor system proxy settings to send requests to the client’s local listening port. Global routing determines which outbound route traffic takes after entering the core. TUN uses a virtual network interface to capture eligible system traffic. Switching to global routing does not mean every app’s traffic will pass through the client. First confirm that the app’s traffic is being captured, then check how it is routed. If your browser works but a desktop app doesn’t, check whether that app supports the system proxy before considering TUN—instead of repeatedly changing the global routing mode.

Installation and Setup

Choose an installer and import your first configuration

Set up a working configuration before enabling the system proxy or TUN.

v2rayN subscription import failed. What should you check first?

Open the subscription group settings, create a group, paste the full subscription URL into the address field, add a note, and save. Then run an update. Saving a group alone usually won’t populate the server list. If the URL is reported as invalid, check that you didn’t copy a sign-in page or QR code image URL, or include quotation marks, spaces, or line breaks. If parsing fails, confirm that your provider supplies a subscription format supported by your client. A configuration file for another tool is not necessarily a universal subscription. If it still fails, keep the exact error message and troubleshoot it as an update failure.

Which Android APK should you choose: arm64 or universal?

Check your device’s processor architecture before choosing an APK. Most mainstream Android phones released after 2015 are likely to use arm64, but release date alone doesn’t confirm the architecture; some devices may use a different app runtime. If you’re unsure, choose the universal build. It typically includes multiple architectures, so the file is larger. If installation fails or Android can’t parse the package, also check the required OS version, available storage, and whether the installed version has a signature conflict. Before uninstalling and reinstalling, back up or export your settings in the client and keep your subscription URL secure.

Why is the server list empty the first time I open v2rayN?

The client manages configurations and connections; installing it doesn’t provide server settings. Get a working subscription URL or server share link, then import it using the appropriate option. If you’ve already added a subscription group, check that updates are enabled and run one manually. Then clear any server-list search filter and make sure the correct group is selected. If the update reports success but the list is still empty, check whether the response was empty, your account has expired, or the provider has stopped supplying configurations. Turning on the system proxy without a valid configuration won’t get you online.

TUN reports insufficient permissions. What should you do?

Turn off TUN and exit the client, then grant the permissions required by your operating system. On Windows, you’ll usually need to run the client as an administrator. On macOS and Linux, you may need to authorize a network component, create a virtual network interface, or grant permissions requested by the client; follow the prompts for your version. On Android, the first connection triggers a system VPN permission dialog, which you must approve to connect. Don’t disable all system security protections to bypass the error. If it still fails after authorization, check whether another VPN or virtual network interface app is already controlling network traffic, and look for the first virtual interface creation error in the logs.

Usage Tips

Manage updates, split tunneling, and shutdown settings

Once your configuration works, set up automatic updates and routine maintenance.

How do you set up automatic subscription updates?

Run a manual update first to confirm the subscription URL works. Then enable updates for the subscription group and choose a reasonable interval. Intervals are often measured in minutes, but check the field description for your client version. There’s no need to request an update every minute; overly frequent requests may trigger provider rate limits. Automatic updates usually require the client to be running and the device to be online, so a missed update while the device is asleep doesn’t mean the URL is invalid. After updating, confirm that the currently selected server is still listed. If you have multiple subscription groups, check each group’s update setting and interval; changing one doesn’t update them all.

How can you check split tunneling so mainland China traffic connects directly while other traffic uses the proxy?

Start with an applicable client preset, such as bypassing mainland China, then make sure the required geolocation data is available in the way your client expects. Preset names and matching rules can change between versions, so don’t assume every site will behave as expected based on the name alone. Visit one site that should connect directly and one service that should use the proxy, then check the logs for the target domain and outbound route. If your rules match domains, confirm that the app passes domain names to the core. If only a few domains take the wrong route, check the order and scope of custom rules first—don’t immediately switch all routing to global.

Should you clear the system proxy before closing the client?

If you’re using the system proxy, it’s best to select Clear system proxy in the client before exiting normally. The system proxy may point to a local listening port that stops working when the client closes, leaving apps that follow the system proxy unable to access the network. Some versions restore the setting during a normal exit, but don’t rely on that after force-quitting or an unexpected shutdown. If your browser loses its connection after you exit, check the operating system’s proxy settings for a leftover local proxy address, and distinguish it from any proxy settings required by your organization. If you use TUN, turn it off before exiting as well.

How can you share logs for help without exposing subscription details?

Note the client name and version, operating system, whether you’re using the system proxy or TUN, and the steps that reliably reproduce the issue. Share only a short section of the log from just before and after the error—not your entire configuration or full session history. Before sending it, redact the full subscription URL, access tokens, user IDs, passwords, and any server details that should remain private. Check screenshots for URLs, QR codes, and clipboard pop-ups too. Keep the error type, event order, and outbound route visible so others can identify which layer is failing. Logs may include the sites you visited, so check for private domains before sharing.

Troubleshooting

Troubleshoot by connection stage

Check your local network first, then the traffic capture method, routing, and server response.

A server connection times out. How can you tell whether the problem is local or server-side?

Turn off the proxy and confirm that your current network can access the internet. Then check your system clock and make sure the subscription is still valid. If only one server times out, try another working server in the same subscription to see whether the issue is limited to that server. If all servers time out, test on another trusted network and check the connection target and error stage in the logs. Timeouts can result from DNS resolution problems, an unreachable port, mismatched transport settings, or an unresponsive server. Don’t treat one failed latency test as conclusive, and don’t keep refreshing the subscription instead of checking the connection. Save the exact error message and ask your provider to confirm the server status.

The client says it’s connected, but your browser can’t access the internet. What should you do?

A connected status usually means the core has started or a traffic-capture component is active; it doesn’t guarantee that a particular site is reachable. Open a webpage and check whether the client logs a new request. If nothing appears, check whether the browser follows the system proxy, whether its proxy port matches the client, and whether an extension has its own proxy settings. If the request appears but fails, check whether the error involves DNS resolution, a connection timeout, or a TLS handshake. Restore a working default route and DNS configuration, then change one setting at a time. If only one site fails, check that site and its matching rules. Don’t reinstall the client and change all your network settings at once.

Why is an app connecting directly even though the system proxy is enabled?

First check whether the app uses the system proxy. Some games, command-line tools, and apps with their own network settings ignore it; enabling the system proxy won’t force them to use it. If the app lets you configure a proxy manually, enter the local address and port for the HTTP or SOCKS listener actually provided by the client. Don’t mix up the ports. Restart the app and check the logs to confirm that its requests reach the core. If the app can’t be configured, consider TUN after checking the required permissions and possible network conflicts. Managed devices may also be subject to organization policies, so don’t overwrite existing proxy scripts or network settings.

Subscription update failed with a timeout, authentication error, or parsing error. How do you fix it?

Troubleshoot based on the error. For a timeout, check whether your current network can reach the subscription domain. If the update method supports direct or proxied connections, test each with a working connection to avoid a loop caused by a dead server. For authentication errors or access denied messages, check your account page to confirm the subscription is still active and the URL hasn’t been reset. For parsing errors, check whether the response is a sign-in page, an error page, or an unsupported format. Set a User-Agent only if your provider explicitly requires one. If you’re told that requests are too frequent, wait before trying again. Don’t repeatedly update in quick succession or give your full subscription URL to an unfamiliar website for testing.

Download Clients