What should you do if v2rayNG won’t connect? This guide troubleshoots issues in the order of “phone environment, node subscription, app settings, and log messages” to fix problems such as no internet access after connecting, node tests timing out, or web pages failing to load. Don’t repeatedly uninstall the app or change node parameters at random. Test the connection again after each step.
1. Check your phone’s network and operating environment
- Close v2rayNG and try opening a website you can normally access directly. If it won’t open either, first resolve any Wi-Fi sign-in requirements, unpaid mobile data charges, or router connectivity issues.
- Switch between Wi-Fi and mobile data once. If the same node only fails on one network, the issue may be related to network restrictions or a DNS resolution problem, rather than a damaged client.
- Turn on automatic date, time, and time zone in your system settings. An incorrect time can cause TLS certificate verification to fail.
- Turn off other VPNs, accelerators, and ad blockers that use a local VPN. Android usually cannot run two VPN services at the same time, and conflicts may cause the connection to drop as soon as it starts.
- Allow the VPN connection request the first time you launch the app. If the connection drops after you lock the screen, check battery optimization and background activity permissions. Settings menus may vary between phones.
2. Make sure your subscription is up to date and the node is working
Go to subscription management and check that the subscription URL is complete, then update it. Button names may vary by version, so follow the labels in your app. If the update fails, first check whether the link has expired, whether you need to sign in to get a new URL, and whether your current network can access the subscription source.
A successful import doesn’t mean the node is currently working. Make sure a specific node is selected, then run the connection or latency test provided by the client. If possible, compare the results with another node. A test timeout is only a clue; you’ll still need to verify the connection in a browser. Free nodes on this site may also stop working or change, so check the latest information on the source page.
If you pasted a link manually, check that it includes the protocol prefix and doesn’t contain extra spaces or line breaks. If you get an import error, copy the full link again rather than guessing and changing the port, UUID, transport path, or TLS parameters.
3. The app says it’s connected, but web pages still won’t load
- Make sure you’re in VPN mode, not local proxy mode, which is intended for manual use by other apps. Then check whether the VPN icon appears in the system status bar.
- Check your per-app proxy settings. If your browser is excluded, its traffic won’t go through the proxy as expected. Temporarily turn off custom per-app rules to compare.
- Temporarily switch to a routing mode that sends traffic through the proxy. If access is restored, check your original routing rules. Avoid relying on repeated mode switches to mask the problem long term.
- If the logs mainly show DNS resolution failures, check the client’s DNS settings and your system’s “Private DNS” setting. You can first restore the previous defaults and test again. Don’t change multiple options at once.
4. Decide what to try next based on the logs
Open the logs, clear the old entries, and reconnect once. A timeout often indicates that the destination can’t be reached or that the connection path has a problem. “Connection refused” may mean that no service is available on the destination port. Certificate errors call for checking the time, client version, and node parameters. Don’t enable “Skip certificate verification” just to get rid of an error; ask the node provider to confirm the configuration.
If the problem persists, check for updates through the project’s official release channels, and save your subscription and any necessary settings before updating. When asking for help, include your phone’s operating system, client version, network type, and error message. Hide credentials such as subscription URLs, UUIDs, and passwords. Change one setting at a time to make it easier to identify the cause.