Frequently Asked Questions about v2rayNG
Troubleshoot subscription imports, proxy modes, and connection problems. Pinpoint the failing step before changing settings.
Getting Started
Start by distinguishing the client, node configuration, and traffic-capture method.
v2rayN, v2rayNG, or v2flyNG: Which Client Should You Choose?
For desktop use on Windows, macOS, or Linux, choose v2rayN. On Android, v2rayNG with the Xray core is usually the first option to try. v2flyNG, which uses the V2Fly core, is an alternative whose compatibility depends on the protocols and transports supported by your subscription. Don’t judge compatibility by the app name alone: check your node requirements against the fields the client supports. If your current setup works, keep it and test the alternative separately. Settings backups from different clients may not be interchangeable.
What do you need to connect after installing a client?
A client reads configuration, runs a core, and forwards traffic; installing it doesn’t provide a service to connect to. You’ll also need a valid subscription URL, a node share link, or the full connection details for your server. Verify the source and that you’re authorized to use it, then import a node and select it as the active configuration. Subscriptions may contain personal access credentials, so don’t post their URLs in public forums. When asking for help, you can share the protocol, transport, and error type, but redact tokens, user IDs, and other credentials in the URL.
How do protocols, transports, and cores differ?
A protocol defines how the client and server exchange proxy data, such as VMess or VLESS. A transport defines how that data is carried, such as over TCP or WebSocket. The core is the software that parses the configuration and establishes the connection. REALITY is a security-related transport mechanism, not a universal setting that replaces all other node parameters. The same protocol can use different transports and security settings. After importing a node, check the protocol, port, transport, security options, and server name together. Changing only the protocol name won’t make a connection work.
Are system proxy, routing, and TUN the same setting?
They serve different purposes. The system proxy provides a proxy endpoint for apps that follow the system settings. Routing decides which outbound connection handles traffic that reaches the core. TUN receives traffic through a virtual network interface and can cover more traffic than the system proxy, but still depends on routing rules, permissions, and app settings. Enabling the system proxy doesn’t make every app use it, and enabling TUN doesn’t send every connection through a proxy outbound. When setting things up, test one traffic-capture method first, then adjust routing and TUN as needed.
Setup
Saving a subscription group and updating its nodes are separate steps. First identify where the process fails.
Which Android package should you choose: arm64 or universal?
Most newer Android phones can use the arm64 package, but check the device’s supported app architecture rather than relying on its purchase date. The universal package includes multiple architectures and is usually larger; try it if you’re unsure which architecture your device supports. It won’t bypass the minimum Android version requirement. If installation reports a parsing or compatibility error, make sure the file downloaded completely and your system meets the requirements, then check the architecture. If the app won’t install over an existing version, verify the package name and signing source. Back up your settings before uninstalling to avoid losing subscription groups and custom rules.
Subscription URL won’t import? Here’s what to check
First, check whether you have a subscription URL or a single node share link. Save a subscription URL to a subscription group; import a node link using the client’s node import option. Remove leading or trailing spaces, line breaks, and punctuation added by messaging apps. Don’t use a webpage’s information URL as the subscription URL. After saving the group, update the subscription to populate the node list. If the format isn’t recognized, confirm that the source provides a format supported by your client. A URL opening in a browser doesn’t guarantee it returns node configuration; it may show a login or error page instead.
Subscription update failed, but existing nodes still connect. What should you do?
Subscription updates and node connections access different destinations, so working nodes don’t prove that the subscription URL is reachable. Keep your existing nodes and don’t clear the group yet. Check whether the URL has changed, credentials have expired, or the client log shows an HTTP status code or parsing error. Some clients let you update directly or through the proxy; compare both options if you already have a working connection. For an authentication error, confirm access with the subscription provider. If the response is a webpage, check whether the URL redirects to a login page instead of repeatedly importing it.
Not enough permission to enable TUN or Android VPN mode?
Desktop TUN creates a virtual network interface and changes routing, so grant the permissions requested by the client. On Windows, check whether administrator access or a supporting service is required; follow the relevant authorization steps on other desktop systems. The first time Android creates a local VPN tunnel, confirm the system connection request. If another VPN app is using the tunnel, stop that connection and try again. Don’t force changes to device policies that restrict access. If it still fails after authorization, check for virtual interface or service startup errors instead of repeatedly switching nodes.
Usage Tips
Check whether an app’s traffic reaches the proxy, then choose its outbound route.
Why do some apps bypass the proxy even when system proxy is enabled?
The system proxy mainly affects apps that actively read the system setting. Some apps use their own network settings, and some connection types don’t automatically use the system proxy. First, test the proxy endpoint in a browser, then check whether the app needs its proxy address entered separately. Get the address and port from the client’s current local listener settings; don’t copy values from another device. Also check whether the app expects an HTTP or SOCKS proxy. If you need to capture traffic from more apps, consider TUN and check that routing rules aren’t sending the target traffic directly.
Global proxy or bypass mainland China: which should you use?
First, check whether the menu controls system proxy behavior or a routing preset in the core; they aren’t the same thing. A global proxy routing preset generally sends more connections that reach the core through a proxy outbound. A bypass-mainland-China preset generally routes destinations associated with mainland China directly, based on domain or IP rules; check the preset to see exactly what it does. Neither can capture traffic that never reaches the client. For everyday use, choose a routing preset that fits your needs. To troubleshoot one site, temporarily compare it against a global rule, then restore your original settings. Avoid changing DNS and multiple routes at the same time.
Added a rule, but the site still uses the wrong outbound. Why?
Check that your custom rule comes before broader matching rules and that the outbound tag it references actually exists. Routing rules are usually matched in order; once an earlier rule matches, later rules won’t handle that connection. Then check whether the client sees a domain name or an IP address. Domain rules can’t always match connections identified only by IP, and where DNS resolution happens can affect IP-based matching. Apply the configuration and close existing connections in the target app before testing again. Some long-lived connections keep using the old route, so they don’t show that a new rule has failed.
What should you back up before switching clients or updating?
Back up subscription groups, manually added nodes, custom routing rules, DNS settings, and per-app routing choices. Make a note of the proxy mode you’re using. If the client can export its configuration, use its backup feature; backups may contain credentials, so store them securely and don’t upload them publicly. After an update, make sure the existing configuration loads before removing old files. When moving to another client, reimport using a compatible subscription or share link and rebuild local settings one at a time. Don’t overwrite the entire configuration directory, as differences in fields can prevent the client from starting.
Troubleshooting
Use request logs to pinpoint errors; don’t rely on connection status as proof that access works.
v2rayNG node timed out? Troubleshoot in this order
First, make sure the device’s internet connection works and that the system date and time are set to sync automatically. Then update the subscription and check that the node details haven’t expired or changed. Test one node and compare it on the same network with another known-working configuration; don’t assume every problem is caused by the client. Next, check the protocol, port, server name, and security transport settings. Finally, look in the logs for DNS errors, connection timeouts, or handshake failures. One failed latency test doesn’t prove a node is unusable; test an actual request too. If all nodes fail at once, check the local network and traffic-capture settings first.
Client says connected, but webpages won’t load. What should you check?
Connected may only mean that the local service or VPN tunnel has started; it doesn’t mean a request reached its destination. First, make sure the right node is active, then check whether browser traffic is reaching the client. Look for a matching request in the logs. If there’s no entry, check the system proxy, the app’s own proxy settings, or TUN coverage. If there is an entry with a name-resolution error, check DNS. For a handshake or remote connection error, check the node details and server availability. Change one setting at a time and repeat the test against the same destination so settings don’t mask one another.
v2rayN set up the system proxy, but it still doesn’t work. What should you check?
Make sure the core started successfully and that no other program is using its local listening port. Then check whether the operating system’s proxy settings point to the current client address and port. Browser extensions, other proxy clients, or device management policies may override those settings; rule them out one at a time instead of letting several programs manage the proxy. Restart the browser and test again, while checking whether the client receives a request. If the internet stops working after you quit the client, look for system proxy settings still pointing to a closed port. Use the client’s clear system proxy option or restore the original settings in your system preferences.
DNS error or TLS handshake failure in the logs: what should you check?
For DNS errors, check the basic network connection, whether the resolver is reachable, and whether DNS requests go direct or through the proxy. If only certain domains fail, check their routing rules. For a TLS handshake failure, first verify the system time, server name, certificate settings, and the node’s security transport parameters; don’t assume it’s a DNS problem. Disabling certificate verification isn’t a general fix. Before sharing logs for help, include the error type and relevant surrounding lines, but redact subscription URLs, credentials, and personal domains. Remove sensitive information from the full configuration before sharing it too.