Client Help

V2Ray FAQs

From subscription imports to connection troubleshooting. Check settings by symptom, change one thing at a time, and verify the result.

  • v2rayN
  • v2rayNG
  • v2flyNG

Understand how the client and configuration work together

Choosing

Understand the client, core, protocol, and traffic entry point separately to make setup issues easier to pinpoint.

v2rayN, v2rayNG, or v2flyNG: Which Should You Choose?

For desktop use on Windows, macOS, or Linux, start with v2rayN, then choose an installer that matches your processor architecture and operating system. On Android, v2rayNG with the Xray core is usually the best fit. If your existing configuration specifically targets V2Fly, consider v2flyNG as an alternative. All three are GUI clients for importing configurations, selecting servers, and managing connections. Protocol support depends on the bundled core and its version, not just the app's name. Before migrating, check which protocols and security layers your server supports.

Why do I need a subscription or server configuration after installing the client?

A client manages connections, but installing it does not give you a server to connect to. You also need a server address, authentication details, port, protocol, and transport settings, usually supplied through a subscription URL, share link, or configuration file. Subscriptions fetch and update entries; they do not provide a service. Get configurations only from trusted sources you are authorized to use. Don't post someone else's full configuration in a public forum or repeatedly import subscriptions from unknown sources for testing.

Are VMess, VLESS, Trojan, and REALITY the same kind of option?

VMess, VLESS, Trojan, and Shadowsocks are proxy protocols. REALITY is a security layer that can be used with protocols such as VLESS; it is not a universal replacement for protocol settings. Imports may also include transport, TLS, SNI, and flow-control options, each describing a different layer of the connection. Use the complete set of parameters provided by the server. Don't switch VLESS to VMess or TLS to REALITY just to troubleshoot. If an option is missing from the interface, first check whether your client and core support it.

What's the difference between system proxy, routing, and TUN mode?

The system proxy provides a proxy endpoint for apps that follow the operating system's proxy settings, but not every program uses it. TUN routes matching traffic through a virtual network interface. It usually needs extra permissions and can be affected by other virtual adapters or security software. Routing determines whether requests that reach the core go direct, through the proxy, or are blocked. These are separate controls: setting routing to global proxy won't capture an app that bypasses the proxy endpoint entirely. When troubleshooting, first check whether the request reaches the client, then check its route.

From installation to your first connection

Advanced Setup

Choose the right package and import method first, then handle system permissions. Menu labels vary by version.

Which Android package should I choose: arm64 or universal?

Most mainstream Android phones released after 2015 are likely to support arm64, but check the architecture supported by your specific device. A universal package bundles components for multiple architectures, making it a good choice when you're unsure or need compatibility across devices; it is usually larger. If the arm64 package is marked incompatible, check your device's processor and system architecture, then try the universal version. Don't rely on the phone's brand or purchase year alone. If an app update fails, also check that the package signatures match.

Subscription import failed: should I check the URL or its contents?

First check whether you're importing a subscription URL or a single share link, then use the matching import option. When copying a subscription URL, remove leading or trailing spaces, line breaks, and any extra explanatory text. A web page URL isn't necessarily the actual subscription URL. If the client fetches content but can't recognize it, the response may be a login page or error page, or the format may not be supported by your version. Ask the configuration provider which formats the client supports; don't judge by the URL suffix alone. Subscription URLs often contain access credentials, so don't paste them into public conversion sites or screenshots while troubleshooting.

How do I make a working connection with a fresh v2rayN setup?

Add a valid URL to a subscription group and update it, or import a single share link through the appropriate option. Once an entry appears in the list, set it as the active server. Start the core, then choose the option to set up the system proxy automatically from the system proxy menu. Use a browser that follows the system proxy settings to visit a site you want to test. Check the logs for the request instead of relying on the app icon alone. Menu labels can vary by version; the key steps are to import a configuration, select a server, start the core, set the traffic entry point, and verify that the site loads.

TUN reports insufficient permissions. What should I do?

Check the logs first to see whether the error involves creating a virtual adapter, adding routes, or starting a background service. On Windows, your version may require administrator privileges or a companion service; on macOS and Linux, follow the app's prompts for the necessary system permissions. Android manages these connections through system VPN authorization, so check the permission prompt and make sure another app isn't already using a VPN connection. Don't disable all security protections just to test. If TUN still fails after granting permissions, check for virtual adapter conflicts. Switching temporarily to the system proxy can help narrow down the issue.

Keep your setup reproducible

Advanced Setup

Handle groups, routing, background activity, and migration separately to avoid changing too much at once.

How should I organize multiple subscriptions, and why did some servers disappear after an update?

In v2rayN, create separate subscription groups for different sources and add each URL to the appropriate group. Filter entries by group or remark keywords as needed. An update usually syncs the source again, so servers removed, renamed, or changed by the provider may no longer appear where they did before. Local filters can also hide entries temporarily. Clear filters, select the right group, and check the update log. Manage manually maintained entries separately rather than relying on subscription-synced entries to preserve important changes. Exact retention behavior depends on your client version.

Should I change routing or DNS first?

Start with the client's default routing and establish a repeatable result, then adjust domain rules and DNS to suit your needs. If a particular site has problems, note its domain, matched rule, and outbound route in the logs. Check whether it was incorrectly sent direct before investigating DNS results and remote DNS reachability. Don't change the routing template, DNS address, and domain policy all at once, or you won't know which change made a difference. geosite and geoip data can also affect rule matching, so retest after updating them. Sending all requests through one outbound route can be a useful comparison, but it isn't a substitute for diagnosing the cause.

v2rayNG disconnects in the background. Which settings should I check?

First check whether the disconnect happens after the screen locks, the network changes, or the system clears background apps. In Android battery settings, see whether v2rayNG is restricted from running in the background, and allow the background activity it needs using your device's available options. Check that the app still has VPN permission and that another network tool hasn't taken over the connection. Don't disable every battery-saving feature at once; adjust v2rayNG alone and test again. If the app is still running but requests fail, a network change may have interrupted the connection. Check the logs and see what happens after reconnecting.

What should I save before switching clients or devices?

Record your subscription sources, manually added servers, routing changes, and DNS settings. Then use the export options supported by your current client to save what you need. A subscription URL can fetch its entries again, but usually won't restore local group order, edited remarks, or app preferences. A native JSON configuration isn't guaranteed to work across different cores, so check the protocol, security layer, and transport fields after migrating. Exported files and share links may contain credentials; store them somewhere secure, not in public documents. Once the new device connects successfully, remove sensitive copies from the old device.

Use logs to pinpoint the failure

Troubleshooting

Check the local network first, then the core, traffic entry point, routing, and server connection.

v2rayN subscription update failed: what troubleshooting steps should I try, and in what order?

Check the update log first to distinguish DNS resolution failures, connection timeouts, access denied errors, and content parsing failures. Verify that the subscription is still valid and check whether your account page requires a new URL. If the active server is unavailable and subscription updates depend on that proxy, try updating without using the proxy. If the URL itself can't be reached directly, you'll need another working connection. If the content downloads but can't be parsed, check that its format is compatible with your client. Don't keep switching to random DNS servers or deleting groups in bulk. Save the original URL and error details before making changes.

Does a server test timeout mean the configuration is definitely broken?

Not necessarily. A test may only check a port or use the proxy to reach a specific test URL. Results depend on your local network, the test destination, and the protocol handshake. First confirm that your regular network works, compare with a configuration known to work, and try visiting a website. If only one entry fails, check its server address, port, authentication fields, and security settings. If all entries fail, focus on the local firewall, network, and core startup. Repeatedly running the test won't fix a bad configuration; logs from the same time are more useful for finding the cause.

Connected but can't access the internet, or the system proxy isn't working?

A connected status usually means the local service or virtual interface has started; it doesn't confirm a successful server handshake or website access. Check the logs for browser requests. If there are none, check the system proxy switch, browser-specific proxy settings, and whether another tool has changed the proxy endpoint. If requests appear, check the matched route, DNS, and outbound errors. Compare with another configuration and website. Before quitting the client, clear the system proxy from its menu. If regular internet access stops working after an unexpected exit, check whether the system still points to a local proxy port that's no longer running.

Core startup failed or a TLS certificate error appeared. How can I find useful clues?

Keep the full error details around the first failure in the log window. If an address is already in use, check for duplicate clients or another app using the local listening port. If the configuration fields are invalid, check the import format and whether the current core supports it. For TLS certificate errors, sync the system clock first, then check that the server name, SNI, and certificate domain match. Don't treat skipping certificate verification as a permanent fix. Before asking for help, redact subscription URLs, credentials, and personal file paths. Share only the error type, relevant field names, and essential system and client details.