CLIENT / CONFIGURATION / DIAGNOSIS

V2Ray FAQ
Subscriptions, Connections & Proxy Troubleshooting

Start by distinguishing the installer, subscription data, traffic capture, and routing rules, then troubleshoot based on what you observe. These steps cover v2rayNG on Android and v2rayN on desktop; setting names may vary slightly by version.

Basics

Start by understanding the roles of the client, core, and configuration.

How to choose between v2rayNG, v2rayN, and v2flyNG?

For Android, v2rayNG is the usual choice and primarily uses the Xray core; consider v2flyNG when you need a V2Fly core configuration. For Windows, macOS, and Linux desktops, choose v2rayN. The client imports, edits, and starts configurations, while the core handles connections and routing—they serve different roles. Choose based on your operating system, then check the server’s required protocol, transport, and security layer. Similar names do not mean configurations are interchangeable. Find client downloads on the download page, and see the protocol handbook for core capabilities and protocol differences.

Why is there no usable connection configuration after installing the client?

The client installer includes the interface and components needed to run the app; it does not create a remote server address or access credentials. First obtain a subscription URL, individual share link, or complete configuration that you are authorized to use, then import it into the appropriate client. Check that the address, port, protocol, and security layer are all present, select a configuration, and start the connection. A configuration appearing in the app only means it was parsed successfully—not that the remote server is reachable. This site provides client downloads and setup instructions; contact your configuration provider about service availability.

What’s the difference between a V2Ray subscription URL and an individual share link?

A subscription URL is usually an HTTPS address that a client requests to retrieve a list of configurations; the client requests it again when updating. An individual share link usually starts with vmess://, vless://, trojan://, or ss:// and describes one connection. A Base64 subscription often encodes a collection of share links; it is not a separate proxy protocol. Add subscription URLs in the subscription group settings, and import individual links through an option such as clipboard import. Pasting a subscription URL as a regular share link may result in an unsupported-format error. Don’t mistake a browser login page URL for a subscription URL.

Are system proxy, global routing, and Android VPN mode the same thing?

No. The system proxy directs requests from apps that honor the setting to a local proxy. Global routing determines which outbound route the core uses for traffic it receives. Android VPN mode uses the system VPN interface to capture traffic. Switching routing to global does not automatically make every desktop app use the system proxy. Enabling Android VPN does not guarantee that every request goes through the remote proxy; routing rules and per-app settings still apply. To troubleshoot, first check whether app traffic reaches the client, then see where the rules send it. Desktop TUN is another way to capture traffic and should not be confused with a routing preset.

Installation & Setup

Start by checking APK architecture, import options, and system permissions.

Which Android APK should I choose: arm64 or universal?

Most newer Android phones can use arm64, but the deciding factor is the app ABI supported by the operating system—not the processor’s marketing name or the device’s age. Check the device specifications first. If you’re still unsure, choose universal: it includes components for multiple architectures, so the APK is usually larger. Some devices have 64-bit processors but run an operating system that supports only 32-bit apps, so an arm64 APK may not install. If the installer reports an incompatibility, check the architecture and minimum OS requirements. If it reports a signature conflict, check where the existing app came from rather than repeatedly trying different architectures.

Where do I enter a subscription URL in v2rayNG?

Open the v2rayNG navigation drawer and go to the subscription group settings. Use the add option to enter a label and subscription URL, then save. Return to the configuration list and select Update subscription from the menu. The option names may vary slightly by version, but the sequence is the same: save the group first, then fetch its contents. Before pasting, check for spaces, line breaks, or punctuation added by a messaging app, and keep the URL’s original parameters intact. After the update, select a configuration from the group and connect. Don’t paste an entire webpage into the URL field or post subscription credentials publicly. For detailed steps, see Getting Started.

What should I check first if import reports an invalid or unsupported format?

First identify whether you have a subscription URL, an individual share link, or a complete configuration file, then use the matching import option. Clipboard import in v2rayNG and v2rayN is mainly for recognizable share links; it is not a converter for every subscription format. When copying, remove code fences and explanatory text, and keep all link parameters intact. For QR codes, check that the image isn’t cropped or blurry. A login page, error page, or configuration from another system may download successfully but still be unreadable in the selected format. Once the format is confirmed, check that the client and core support its protocol and transport combination. Don’t mass-edit link prefixes.

What should I do if VPN or TUN reports insufficient permissions?

When starting VPN mode in v2rayNG on Android, approve the system’s VPN connection prompt. If you denied it, try connecting again and grant permission. Also check whether another VPN or an always-on VPN policy is already using the interface. v2rayN’s desktop TUN mode uses a virtual interface and system routes; permissions depend on the operating system, installation method, and version, and may require administrator access or a companion service. Check the specific error in the log first, then follow the client’s permission prompts. Running the app with elevated privileges at all times is not a general fix, and you should not disable system security features without good reason.

Usage Tips

Check how apps connect before changing how their requests are routed.

Why does the system proxy in v2rayN work in some apps but not others?

The system proxy only affects apps that read that setting. Some apps have their own proxy settings; others connect directly. First check that the core is running in v2rayN, that you’ve enabled Set system proxy, and that the system proxy port matches the client’s local listening port. If your browser has a proxy extension, temporarily disable it or make its settings consistent. Terminal tools usually need proxy environment variables set separately. Don’t change the remote configuration just because one app isn’t using the proxy. If you need to capture traffic from more apps, consider TUN mode and check that its permissions, routing, and DNS settings fit your use case.

How do I use v2rayN’s local proxy from a terminal?

Check the client settings for the actual local HTTP or SOCKS listening address and port, then configure the proxy as described in your terminal tool’s documentation. Common tools read http_proxy, https_proxy, or ALL_PROXY, but support for variable casing and protocols varies. Point the variable to the proxy that is actually listening on your device. For HTTPS requests through an HTTP proxy, the value usually still uses the http:// scheme; don’t switch to https:// just because the destination URL uses HTTPS. Test in the same terminal session after making changes, and clear the variables when you stop using the proxy. Don’t copy someone else’s port or confuse the remote server port with the local proxy port.

With per-app proxy enabled, which apps use the client?

After enabling per-app proxy in v2rayNG settings, read the description of the selected mode and check whether the list means “proxy only selected apps” or “bypass selected apps.” The interface can vary by version, so don’t infer the mode from checkmarks alone. Save the settings and restart the VPN connection to apply the new app scope, then test the app in question. Per-app settings determine which apps’ traffic enters proxy processing; routing rules still determine where those requests go. If the browser works but another app doesn’t, check whether that app is excluded or depends on a service component outside the selected scope.

Should I change routing rules and DNS settings together?

Change them separately, one variable at a time. Routing rules determine where requests go; DNS resolves names; domainStrategy affects when hostname resolution is attempted during route matching. Note your current working settings, confirm the routing preset and rule order, then investigate resolution issues. If a website loads slowly, don’t simultaneously enable local DNS, change the resolver, and reorder rules—you won’t know which change mattered. When using geosite or geoip rules, make sure the required resource files are available. To compare results, test the same app and destination under similar network conditions, and keep a copy of the original settings so you can restore them.

Troubleshooting

Keep working configurations and use logs to pinpoint the failure.

Subscription updates fail, but existing configurations still connect. What should I do?

Subscription updates and connections using existing configurations may take different request paths, so one can work while the other fails. Keep your current configurations and check whether the subscription URL has expired, the access credentials have changed, or the device date and time are incorrect. Use the logs to distinguish DNS resolution failures, connection timeouts, certificate errors, and HTTP status errors. If access is denied or the URL is no longer valid, contact the subscription provider. If the client can update subscriptions through a proxy, first determine whether your current network can reach the URL directly or needs an existing working connection. Don’t delete the subscription group before retrieving its new contents, and never post the full subscription URL in a public log.

Does a node test timeout mean the server is definitely unavailable?

Not necessarily. A test may check a TCP connection, a complete proxy request, or access to a specific URL; each timeout points to a different failure stage. Check what the test measures, try opening a URL known to be accessible, and review the logs from the same time. Verify the server address and port, the device date and time, and whether the current network allows that connection method. If possible, test on another network. A successful TCP connection does not guarantee that authentication, TLS, or transport negotiation will succeed. Don’t treat one test as a permanent verdict or keep shortening its timeout. If the same error occurs on multiple networks, ask your configuration provider to verify the service status and settings.

The client says connected, but webpages won’t load. What should I check, and in what order?

“Connected” usually means the local service or VPN interface has started; it doesn’t confirm that remote access works. First check that you selected the intended configuration, then verify that the target app is using the local proxy. On Android, check the VPN and per-app scope; on desktop, check the system proxy, browser extensions, and any separate terminal settings. Next, review the logs for DNS resolution, authentication, TLS negotiation, or remote connection errors, and check that routing rules send the destination to the expected outbound. Test another app and website to see whether the issue is limited to one site. Change one setting at a time and record the result; don’t replace the subscription, DNS, and routing preset all at once.

What should I do if the connection drops after the screen locks or won’t reconnect when the network returns?

First note whether the issue occurs after the screen locks, when switching between Wi-Fi and mobile data, or after the system clears background apps. On Android, check v2rayNG’s battery settings, background activity, and background data permissions in system app settings. Allow the background activity the device requires; there’s no need to loosen restrictions for every app. Check whether the system VPN is still active, then try stopping and restarting the connection. If the failure follows a network change, capture the log when the connection tries to recover. On desktop, check the network and local core after the device wakes from sleep. Repeatedly restarting the client won’t identify the cause; compare when the issue recurs under different battery settings and network conditions.