v2rayN / v2rayNG / v2flyNG

V2Ray FAQ

Subscription setup, proxy settings and connection troubleshooting. Identify which layer is causing the issue before changing its settings.

Menu names may vary by client version. Keep working configurations before troubleshooting, and change one setting at a time.

Select a question to expand its answer. For your first setup, start with the user guide; for protocol field definitions, see the technical reference.

Basics

Tell clients, cores and server configurations apart so you can troubleshoot the right layer.

What are V2Ray, Xray and v2rayN?

V2Ray is part of the Project V proxy ecosystem. V2Fly continues community maintenance of the V2Ray core, while Xray is a separate core fork developed from related code. v2rayN is a desktop GUI client for managing servers, subscriptions and proxy settings; the selected core handles the actual connection. When troubleshooting, note the client name and version as well as the core name—“V2Ray error” alone is not specific enough. With VLESS and REALITY, make sure the core in use supports that combination; seeing the protocol in the interface does not guarantee compatibility.

Which should you use: v2rayN, v2rayNG or v2flyNG?

Use v2rayN on Windows, macOS and Linux desktops. On Android, v2rayNG with the Xray core is usually the first choice; consider v2flyNG when you need compatibility with a V2Fly core configuration. The client and server must match on protocol, transport and security settings—similar names do not mean identical features. If you already have a subscription, check with its provider which clients are supported before choosing an installer. Don’t overwrite one client’s data folder with another client’s configuration files. Use a share link or subscription format supported by both instead.

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

Yes. A client manages configuration and connections; installing it does not provide a working remote server. You’ll need at least a server address, port and protocol-specific credentials. TLS or REALITY also requires matching security parameters. A subscription lets you retrieve and update server configurations in bulk; it is not a client account. Values such as example.com and your-uuid in tutorials are examples only and won’t work for a real connection. Get your settings from a source you’re authorized to use, and keep your subscription URL private—it may contain access credentials.

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

No. A system proxy tells applications that honor system settings to send requests to a local proxy. Routing rules decide whether traffic that reaches the core is proxied, sent direct or blocked. TUN uses a virtual network interface to capture traffic covered by its configuration. Setting routing to global proxy does not make every application use the system proxy. Likewise, enabling TUN does not mean all traffic goes through a remote server; routing and exclusion rules still apply. Start by testing browser traffic with the system proxy. Configure TUN separately only if you need to capture traffic from other applications, and avoid changing several layers at once.

Installation & Setup

Check the installer architecture and subscription details first; then address any system permissions.

Which Android APK should you choose: arm64 or universal?

Check your device’s processor architecture, not just its Android version. Most recent phones can use the arm64 APK. The universal APK usually includes multiple architectures and is larger, making it a practical choice if you’re unsure—but it must still meet the client’s minimum Android version. If installation fails, check available storage, permission to install from that source, and whether an app with the same name but a different signing key is already installed. Don’t uninstall the existing version right away: export your settings or note your subscriptions first, then check for a signing conflict. APK architecture issues and server connection failures are separate problems; troubleshoot them separately.

Where do I add a subscription URL, and why does pasting it fail?

In v2rayN, add a group and enter the subscription URL under “Subscription Group Settings,” then update it from the “Subscription Group” menu. In v2rayNG, open “Subscription Group Settings,” add the subscription, then return to the list and update it. Menu locations may vary by version. If no servers appear after pasting, make sure you copied the full subscription URL—not an introduction page, login page or message with extra text. Check for leading or trailing spaces, line breaks and an expired link. If you have a single protocol share link, import it from the clipboard configuration menu instead of entering it as a subscription URL.

Which fields should you check after importing VLESS and REALITY?

Check the address, port and user ID first, then verify flow control, transport protocol, transport security, SNI, Fingerprint, PublicKey and ShortId. REALITY is a security layer, not a standalone proxy protocol alongside VLESS. If the server requires xtls-rprx-vision, set the matching flow control rather than guessing from the option name. Enter fields exactly as provided, and don’t mistake the public key needed by the client for a private key. After importing, confirm which core is actually in use. Switching cores won’t convert incompatible fields automatically, and enabling Mux at random won’t fix incorrect parameters.

What should I do if TUN lacks permissions or fails to create a virtual network interface?

Turn off TUN first and confirm that a regular system proxy connection works. Then check virtual network interface permissions. On Windows, you’ll usually need to run the client as an administrator. On macOS and Linux, follow the client’s prompts for permissions or helper components rather than applying Windows steps. Check whether another VPN, virtual network tool or security application is blocking interface creation. On Android, grant the system VPN permission; typically, only one VPN service can take control in the same user profile. Close conflicting apps and try again. Don’t leave system security protections disabled while troubleshooting.

Usage Tips

Subscription updates, routing and speed tests each have a specific role. Check test results against real requests.

Should I delete the existing subscription when an update fails?

Keep the existing group and any working configurations. Check that the subscription URL is complete and current, and that your device clock is accurate. Then check the error in the log: DNS failures, connection timeouts, certificate errors and unrecognized responses require different fixes. Some v2rayN versions can update subscriptions through a proxy; you’ll need a working server first, or you may create a dependency loop. If the response is a login or notice page, ask the configuration provider to verify the URL and subscription status. Once the issue is resolved, update only the affected group so you don’t lose your existing connection options.

For everyday browsing, should you use global proxy or routing rules?

For everyday use, start with routing rules that fit your needs: proxy the destinations that require it and connect directly to the rest. v2rayN presets may include modes such as “Bypass mainland China,” but check the rules in your current version rather than relying on the mode name. Global proxy can help with a short troubleshooting comparison: if it works but rule-based routing doesn’t, check rule matching and DNS. Here, “global” describes how the core handles traffic it receives; it doesn’t mean every app is captured. Restore your previous mode after testing, and make sure local devices and LAN services are still reachable.

Why won’t a website load even though the server speed test succeeds?

A successful speed test only confirms that its specific test method worked; it doesn’t prove that browser requests are going through the proxy. A TCP test usually checks only whether a port accepts a connection. A real connection test covers only its specified test address. Make sure the intended server is selected as the active configuration, then check that the system proxy is enabled, that no browser proxy extension is overriding it, and that routing sends the destination through the expected route. Test a few known websites and check the logs for their requests. Don’t keep switching configurations based on a single latency ranking. Sustained availability, destination compatibility and actual request results matter more than one test number.

What should you know before switching between Xray and V2Fly cores?

Save your current configuration and confirm the server’s requirements first. Then check whether the target core supports the protocol, transport, security and routing fields in use. The cores share history, but have evolved differently and are not fully interchangeable. If a configuration depends on an Xray-specific feature, changing Core to V2Fly alone is unlikely to fix the connection. After switching, restart the connection and check the logs to confirm the target core loaded. Change only the core and keep the original configuration for comparison. If you see an unknown field or unsupported option, switch back to a compatible combination rather than randomly changing authentication parameters.

Troubleshooting

Narrow down the issue by checking traffic entry, DNS, routing and the remote connection—in that order. Avoid resetting everything at once.

A server keeps timing out. What should you check, and in what order?

First confirm that the device can access the internet. Then check the active server’s address, port and credentials, and make sure the subscription hasn’t expired. Verify the system clock and TLS or REALITY settings, then check whether the logs report a DNS failure, connection timeout or authentication failure. A reachable TCP port doesn’t prove the protocol handshake succeeded, so it doesn’t rule out a configuration issue. Compare with another known-working configuration from the same subscription, changing only one variable at a time. If the same server fails on multiple devices and networks, send the configuration provider the error type and time it occurred. Don’t share full credentials.

Connected, but websites won’t load? How to tell whether it’s a proxy, DNS or routing issue

A client showing “running” or “connected” usually means only that its local service started—not that requests to a destination are succeeding. Check that the local listening port matches the system proxy port. Then temporarily disable any browser proxy extension and see whether requests appear in the logs when you visit a site. If no requests appear, check where traffic enters the proxy. If requests appear but DNS resolution fails, investigate DNS. If only certain destinations fail, check routing rules and whether those destinations are reachable. You can temporarily switch to global routing for comparison, then restore the previous setting. Don’t change DNS, ports, cores and servers all at once; even if things start working, you won’t know what fixed the problem.

What if the system proxy doesn’t work, or you lose internet access after closing the client?

In v2rayN, confirm that “Set system proxy” is enabled. Then check your operating system’s network settings to make sure the proxy points to localhost and uses the client’s actual listening port. Browser extensions, enterprise policies and other proxy tools can override this setting. Some apps don’t use the system proxy at all, so they may need separate configuration or TUN. If you lose internet access after closing the client, reopen it and clear the system proxy, or turn off any leftover manual proxy in system settings, then test a direct connection. Don’t treat disabling all network settings as a standard fix, and don’t remove a proxy policy required by your organization without understanding its purpose.

Local port 10808 is in use. Do you need to uninstall the client?

Usually not. Check whether the client is running more than once or another proxy app is using the same port. On Windows, use netstat to check which process owns it; on macOS and Linux, tools such as lsof can help identify the process. If you’re unfamiliar with these commands, start by closing any known conflicting apps normally. You can also change the local listening port in v2rayN’s settings, save the change and restart the local service. Update the port in your browser’s manual proxy settings and any other apps, then reapply the system proxy. 10808 is a common default, not a requirement—use the port shown in your client and don’t terminate unknown processes blindly.