Client FAQ

v2rayN FAQ

Find steps for subscription imports and connection troubleshooting. Desktop instructions focus on v2rayN, while the Android guidance also covers common v2rayNG and v2flyNG use cases.

Identify where the problem occurs, then check one thing at a time. Menu locations may vary between versions, so use the setting names and their functions to find the right options.

Basics

Understand the difference between clients, subscriptions, and connection methods before choosing a setup for your device.

How to choose between v2rayN, v2rayNG, and v2flyNG?

Use v2rayN on Windows, macOS, or Linux. For Android, consider v2rayNG with the Xray core; v2flyNG with the V2Fly core is an alternative. Clients manage configurations, run a core, and provide a proxy entry point; they do not generate a working subscription. Before choosing, check your device platform and confirm that the client supports the protocols and transport methods used by your subscription. The three clients have different configuration directories and interfaces. When switching, import the subscription again rather than overwriting another client's data files.

What else do I need to connect after installing the client?

You also need a subscription URL from a trusted source that is still valid, or a complete server configuration. A subscription typically contains server addresses, ports, protocols, and authentication parameters; the client only reads and uses this information. After installation, import the configuration, select a server, then set up the system proxy or Android VPN connection and test access. Installing the software does not mean a server is ready to use. If you do not have a configuration, ask the provider how to obtain one. Do not use configurations from unknown sources for testing, and never include subscription URLs in public screenshots.

What's the difference between a subscription URL and a single-server share link?

A subscription URL retrieves a set of configurations; updates may add, remove, or change servers. A single-server share link usually contains one server configuration and does not update automatically with the subscription. Before importing, identify whether you have a webpage URL, a subscription URL, or a protocol share link. Enter subscription URLs in the subscription group's URL field; import share links using the client's clipboard import option. An account management page is not a substitute for a subscription URL. When copying, avoid leading or trailing spaces and line breaks. Treat authentication parameters in subscription URLs like account credentials.

Which apps are affected by system proxy and TUN mode?

The system proxy sets a proxy entry in the operating system, typically used by browsers and apps that follow that setting. Apps that make their own connections or use separate proxy settings may not be affected. TUN mode routes traffic through a virtual network interface and can cover more apps, but also involves routing, DNS, and system permissions. Neither mode guarantees that every request uses the proxy; routing rules still determine the final route. When getting started, use the system proxy to confirm the connection first, then enable TUN if needed. Avoid changing several network settings at once, which makes problems harder to isolate.

For protocol and core names, see the glossary.

Platform Setup

Choose the right package for your device architecture, update your subscription, then handle any additional permissions.

Subscription import fails, or no servers appear after saving the URL. What should I do?

First, make sure you copied the full subscription URL, not an account login or payment page, and remove any leading or trailing spaces. Open the subscription group, add and save the URL, then run Update all subscriptions; saving alone does not populate the server list. If the format is unrecognized, check whether the response is a login page, an error page, or a configuration format the client does not support. Repeatedly pasting the same URL will not help. If some configurations are missing, check the logs for parsing messages and ask the provider which formats are supported. When troubleshooting, describe the error type without sharing the full URL or its authentication parameters.

Which Android package should I choose: arm64 or universal?

Most mainstream Android phones released after 2015 can usually use arm64, but check which app architectures your device actually supports. The universal package includes multiple architectures and is typically larger; choose it if you are unsure of your device's architecture or need compatibility across devices. If arm64 is reported as incompatible, check your system and processor details, then try the universal version. Some devices have a 64-bit processor but a system environment with limitations. If package parsing fails, also check whether your Android version meets the requirements; not every installation failure is caused by the architecture choice.

Can I switch directly between the v2rayN desktop and classic WPF versions?

The desktop version has a cross-platform interface, while the classic WPF version is for Windows. Their layouts, dependencies, and some settings may differ. Before switching, use the client's export or backup feature to save your configuration, and note your subscription groups, routing rules, and local ports. Then close the old client before starting the other version to avoid a conflict over the same proxy port. Do not mix or overwrite files between versions, and do not delete the original data until you have confirmed the migration worked. After launching the new version, check the system proxy entry and selected server. Remove the old directory only after confirming the connection works.

TUN reports insufficient permissions. What should I do?

On Windows, exit the client, run it as an administrator, and enable TUN again. Permission steps on macOS and Linux depend on the client version and system environment; follow the prompts in the current interface. Do not loosen permissions for the entire configuration directory. If it still fails, check the logs for virtual interface creation errors, driver issues, or port conflicts, and look for other VPN or TUN programs. Test with only one network-routing tool active at a time. If it fails, turn off TUN and restore normal networking before investigating further.

Find the installer on the downloads page. For your first import, follow the setup guide.

Advanced

Avoid repeated edits, make sure each app uses the intended proxy entry, and keep routing settings easy to verify.

Will updating a subscription overwrite manually changed server settings?

The provider maintains server details in a subscription, and an update may regenerate them. Do not rely on subscription entries to preserve manual changes. To test a setting, copy the configuration to a separate manual entry and label it clearly so you can distinguish it from the original subscription entry. You can also back up the current configuration before updating, in case you need to undo a change. If you regularly need to edit the same field, check with the provider to see whether the original configuration is wrong instead of patching it after every update. Group-level settings and server fields may be retained differently; check the behavior in your current version.

When should I set, clear, or leave the system proxy unchanged?

Choose Set system proxy automatically when you want browsers and other apps to use the client's proxy entry. Choose Clear system proxy when you are temporarily stopping or about to exit the client. Leave the system proxy unchanged only when another tool manages it. Unchanged does not mean direct connection: it preserves the existing system setting, and an old proxy address may remain active. After switching, check the actual proxy entry in your operating system settings. If a browser still cannot connect after you close the client, check for a leftover proxy pointing to a local port, then clear any entry you no longer use.

The browser works, but terminal tools bypass the proxy. What should I do?

Browsers and terminal tools may use different proxy settings, so a working browser only confirms that its own connection path works. Check whether the terminal tool supports the system proxy. If it does not, follow its documentation to set proxy options or environment variables such as http_proxy and https_proxy. Use the local address and port the client is actually listening on, and select the matching HTTP or SOCKS type; do not copy values from another device. Environment variables often apply only to the current session or newly started processes. Clear temporary settings after testing so the terminal does not keep trying to connect to an old port after the client closes.

How can I route local network addresses directly without changing other routing rules?

Check whether your routing rules include a geoip:private rule that routes traffic to direct, and make sure it comes before any broad rule that could match first. This mainly covers private IP addresses; it does not guarantee that every internal domain is covered. When using an internal domain, also confirm that DNS returns the correct local network address. Save the rules and retest your router's admin page, printer, or internal service. If access still fails, temporarily turn off the proxy to confirm the local network works, then check whether the app has its own proxy setting. Do not remove your entire set of routing rules to fix access to one local service.

Troubleshooting

Narrow down the problem in order: subscription requests, server connections, then app routing. Do not assume every issue means a server is down.

A subscription used to update, but now updates fail. What should I check first?

First, identify whether the problem is a request timeout, authentication failure, or content parsing error. For a timeout, check your local network and whether the subscription domain resolves. Confirm whether the update uses a direct connection or the current proxy; if the current server is down, relying on it to update the subscription may fail. For authentication failures, check whether the subscription has expired or its URL was reset. For parsing errors, check whether the provider changed the format. Avoid repeated rapid retries, as the server may limit requests. If you need a new subscription URL, save it before updating, and send the provider an error report with authentication parameters removed.

A server test timed out. Does that mean all servers are unusable?

A single test timeout means only that the test request did not finish within the time limit; it does not prove that every configuration has failed. Check that your device's clock is correct, then test actual access using another server in the same group. If only one entry fails, check its address, port, and transport settings. If all entries fail, check your local network, subscription validity, core startup logs, and firewall messages first. An unreachable test target can also cause a timeout, so cross-check with another test method supported by the client. Do not leave system protection disabled while troubleshooting.

The client says connected, but webpages won't load or the system proxy has no effect. What should I do?

Connected usually means only that the local service or Android VPN interface has started; it does not guarantee that the remote server is reachable. Turn off TUN first and use only one connection method. Confirm the selected server and local listening port, then check that the system proxy points to that port. If your browser has a separate proxy extension, temporarily disable it and reload the page. If domains fail to load but the network connection is otherwise active, check DNS. If all requests fail, look in the core logs for authentication, handshake, or connection errors. On Android, also check the per-app proxy list to make sure the browser is not excluded.

Android disconnects in the background. How can I tell whether it's a system restriction or a server issue?

First, check whether the disconnect happens only after locking the screen or switching apps. If foreground access works but the connection often stops in the background, check whether the system restricts background activity or battery use for the client. Allow the necessary background activity in your device settings. Confirm that VPN permission is still active and that another VPN app has not replaced the connection. If failures happen only when switching between Wi-Fi and mobile data, reconnect in the client, check the logs, and test another server. Background restrictions and server issues can occur at the same time, so test them separately rather than changing battery, DNS, routing, and server settings all at once.

For more symptom-based troubleshooting, see the complete troubleshooting guide. If the issue only affects a browser or terminal, see System proxy not working: troubleshoot browsers and terminals separately.