This article addresses the common question, “What should I do if v2rayNG won’t connect?” Follow this checklist to check your phone’s network and system environment, node subscription, client settings, and error logs. It can help you quickly determine whether the problem lies with your local environment, an unavailable node, or an incorrect configuration import.
1. Check your phone and network environment first
Many connection failures aren’t caused by a bad node, but by problems with your phone’s current network or permissions. Start with this checklist:
- Make sure your phone can open domestic websites. If it can’t, switch between Wi-Fi and mobile data.
- Close any other VPNs, network accelerators, or proxy apps to prevent them from competing for the system VPN connection.
- Check that your system clock is accurate. A significant time discrepancy can cause TLS handshakes to fail.
- In Android settings, allow v2rayNG to use mobile data and run in the background, and add it to the battery optimization allowlist.
- If the connection fails on a company, campus, or public Wi-Fi network, try using mobile data instead.
Once you’ve completed these basic checks, you can investigate v2rayNG’s configuration. This avoids repeatedly reinstalling the client right away.
2. Make sure your node or subscription is valid
v2rayNG requires a working node configuration, such as Vmess, VLESS, Trojan, or Shadowsocks. If a node has expired, its domain is no longer valid, or its port is blocked, you may see endless loading, connection timeouts, or no internet access.
- Open v2rayNG, long-press the current node, and select “Test all configurations” or “Test connection.”
- If the latency test fails, try another node instead of focusing on just one.
- If you use a subscription, open the menu in the upper-right corner, select “Update subscription,” and test again.
- Make sure the import link is complete. In particular, don’t include spaces or line breaks when copying the subscription URL.
This site collects free nodes for testing, but their reliability can vary. We recommend testing several nodes against one another.
3. Check common v2rayNG settings
Open the v2rayNG settings and check these options. For routing, most users should start with “Bypass mainland China” or the default rules to avoid routing domestic and international traffic incorrectly. For DNS, start with the system default. If you encounter domain resolution failures, try enabling built-in DNS. If you imported a VLESS Reality, TLS, or WebSocket node, make sure you’re using a recent client version; older versions may not support some parameters.
Also note that after tapping the connect button in the lower-right corner, Android displays a VPN permission prompt. You must tap Allow. If no prompt appears, try clearing v2rayNG’s data and authorizing it again. If the connection succeeds but webpages won’t load, try opening a site by IP address or a different international website in your browser to rule out a problem with a single site.
4. Use the logs to identify the error
v2rayNG’s logs are more useful than simply knowing that it “won’t connect.” Tap the menu in the upper-left corner to open the logs. Common messages mean the following:
- timeout: Usually means the node is unreachable, the network is blocking the connection, or the port is inaccessible. Try another network or node.
- connection refused: The server rejected the connection. This usually points to an incorrect port or protocol, or an unavailable node.
- bad request / handshake failed: Often caused by mismatched TLS, UUID, path, or transport settings.
- no route: The routing rules or local network may be at fault. Restore the default routing settings and try again.
If all nodes fail, suspect your local environment, system VPN permissions, or network restrictions first. If only one node fails, the problem is likely with that node’s configuration or availability.
5. Recommended troubleshooting order
In practice, try these steps in order: switch between Wi-Fi and mobile data, update your subscription, try another node, restart v2rayNG, and then update the client. If it still fails, take a screenshot of the relevant log error and re-import a node that you’ve confirmed is working. This is the most efficient way to troubleshoot and helps avoid making a complex problem worse by changing settings at random.