Client Troubleshooting Index

V2Ray FAQ

From subscription import to connection troubleshooting. Find where the problem occurs, then check the relevant settings.

v2rayN v2rayNG v2flyNG

Clients and Cores

Basics

Understand where profiles come from, which cores support them, and how traffic reaches the client before changing settings.

Which should you choose: v2rayN, v2rayNG, or v2flyNG?

For desktop use on Windows, macOS, or Linux, start with v2rayN. On Android, v2rayNG with the Xray core is usually the first choice; consider v2flyNG if you need the V2Fly core. The client handles subscriptions, controls, and proxy settings, while the core handles connections—they are not the same thing. Before choosing, check which protocols and transports your subscription supports; similar names do not guarantee compatibility. Before switching clients, keep your existing subscription and routing settings. Import them into the new client, select an active profile, and verify access before removing the old setup. This helps prevent port conflicts from multiple proxy apps running at once.

What do you need to connect after installing a client?

The client does not include a usable remote connection profile. You’ll need a subscription URL you’re authorized to use, an individual share link, or complete connection details from the server provider. A subscription URL periodically retrieves a list of profiles, while a share link usually describes one profile. A regular webpage URL cannot be imported as a subscription. Before first use, check that your system clock is correct, import a profile, select it as active, then enable the system proxy or the connection mode required by your app. Subscription URLs may contain credentials, so don’t post them in public comments, screenshots, or online parsing tools. Installing the client does not mean the remote service is ready to use.

What do the system proxy, routing presets, and TUN each control?

The system proxy tells apps that follow system settings to send requests to the local proxy. Routing presets decide whether requests that reach the core are proxied or connected directly. TUN receives traffic through a virtual network interface, which is useful when more apps need to be routed through the client. These operate at different stages: changing routing won’t automatically include apps that ignore the system proxy. If you’re new to this, turn off TUN and use the system proxy to check that your browser can connect. Enable TUN later if your apps need it. Android clients typically use system VPN authorization to create a traffic-capture tunnel. The controls differ from desktop clients, so you don’t need to follow desktop menu steps exactly.

Why does a VLESS or REALITY profile stop working with a different core?

The client and core must both support the protocol, transport, and security layer in use. REALITY is a security mechanism, not a standalone node type that works with any imported address; required server parameters such as the public key and server name must also match. If a profile works in one client but errors with another core, check the subscription details and core type first, then look for unsupported fields or transports in the logs. V2Fly and Xray do not support exactly the same features, and updating the client interface does not necessarily update its core. Don’t remove parameters at random to silence an error. Use a client and core that meet the server’s requirements.

Packages and Subscription Setup

Installation & Setup

Check the package architecture, distinguish subscription URLs from share links, and handle permission issues separately.

Which Android package should you choose: arm64 or universal?

For most Android phones released since 2015, the arm64 package is a good first choice, but the right option depends on the processor and the app architectures supported by the operating system. Some devices have 64-bit processors but still restrict apps to a different architecture, so the processor name alone isn’t enough. If you’re unsure, choose the universal package. It typically includes multiple architectures but takes up more space. If installation reports that the app is incompatible, check the download source and package architecture. A signature conflict is a separate issue. Don’t uninstall the old app right away: back up subscriptions, groups, and custom rules, then check that you have the right client and download source.

Where should you paste a subscription URL in v2rayN?

In v2rayN, open Subscription Groups or Subscription Group Settings and add a group. Give it a recognizable name, paste the full subscription URL into the address field, and save. Then return to the main window, open the subscription menu, and update that group; saving the URL alone won’t populate the profile list. If you have an individual share link, use Import Share Links from Clipboard instead—these are separate import methods. Menu names may vary slightly between versions. Look for a dialog with fields for a subscription URL and group. After updating, check the group filter, select an active profile, and then set the system proxy.

Share link import failed or added no profiles? Check these first

First, make sure the clipboard contains a complete share link—not a subscription management webpage, QR code image, or text truncated by a messaging app. When copying, leave out surrounding quotation marks, explanatory text, and spaces. Import multiple links on separate lines if your client supports that format. If you see an unsupported protocol or field error, note the exact message and check the client version and core compatibility. Don’t keep changing encryption or security settings at random. If there’s no error but no profile appears, clear the search and switch to All Groups. Some import actions add profiles to the currently selected group, so an empty list may be due to filtering rather than lost profiles.

TUN reports insufficient permissions. What should you do?

Turn off TUN first and confirm that the regular system proxy works, then troubleshoot permissions. On Windows, follow the client’s prompt to run as administrator or install the required service. On macOS, check authorization for the relevant network extension, VPN, or helper service in System Settings. On Linux, check that the client has the required network permissions and helper services for your installation method. Implementations vary by version, so don’t copy authorization steps from another platform. On Android, accept the system VPN connection request and check whether another VPN app is already using the tunnel. If it still fails after authorization, check the logs for interface creation or routing errors. Don’t disable system security features as a substitute for troubleshooting.

Proxy Settings and Maintenance

Tips & Usage

Handle traffic capture, routing, and profile maintenance separately to make updates easier to track and troubleshoot.

How do you use the three system proxy options in v2rayN?

Set System Proxy to Auto Config to point the system proxy at the client’s local entry point—useful for everyday browser traffic. Clear System Proxy removes the system proxy settings but may leave the core running. Do Not Change System Proxy preserves the current settings, which is useful if you’ve configured a manual proxy. After switching, confirm that the local entry point and active profile are working. The system proxy is not the same as global routing; routing rules still determine which destinations connect directly. During troubleshooting, avoid letting another proxy app change the system settings at the same time. Before exiting the client, clear the system proxy to avoid leaving it pointed at a local port that is no longer open.

How do you organize multiple subscriptions and avoid selecting the wrong profile after an update?

Create a separate group for each subscription and name it by source or purpose. Don’t put access credentials in group names. Before updating, select the group you want to manage and check whether the action updates that group or all subscriptions. When the update finishes, clear the search and review the profile list. Search filters only narrow what’s displayed; they don’t delete or disable profiles. An update may reorder entries or remove old ones, so check that your active profile is still there. Set automatic update intervals according to the provider’s advice rather than refreshing constantly. Back up manual profiles and custom routing separately so they’re easy to distinguish from subscription entries.

When should you use Bypass mainland China or Global Proxy?

Bypass mainland China usually sends requests matching mainland China domain or IP rules directly, while handling other traffic according to the preset. Global Proxy usually routes most traffic that reaches the core through the proxy, but check the rules shown in your client for exact behavior. Neither option guarantees that traffic from apps that don’t reach the client will be captured. Choose a preset that fits your needs for everyday use. To troubleshoot one website, temporarily switch presets and compare results, changing only one setting at a time. If global routing works but rule-based routing doesn’t, check rule order, rule resources, and DNS resolution. Don’t start by deleting all direct-connection rules; local network devices and services may rely on them.

What settings should you save before upgrading the client?

Use the client’s backup, export, or settings option to save your current setup first. Keep subscription groups, custom profiles, routing rules, DNS settings, and local listening ports. Backup files may contain subscription credentials, so store them somewhere secure on your device. Before upgrading, note which client and core you’re using, then exit the app normally. After upgrading, check the active profile and proxy status, then test a website you know works. A GUI client may regenerate config.json, so edits made directly to the generated file may not persist. Prefer custom settings supported by the client interface. Don’t upgrade, switch cores, and change routing all at once, or it will be hard to identify the cause of any issue.

Trace the Problem to Its Source

Troubleshooting

Note the exact error and distinguish subscription retrieval, local traffic capture, and remote connections. Not every failure is a node issue.

Subscription update failed, returned an empty list, or showed a parse error? How can you tell which?

Start with the update message. A connection timeout usually points to network reachability; an authentication or permission error means you should check the subscription status and URL; a parse error means you should confirm that the response is in a format the client supports. Copy the full subscription URL again from the provider’s page, check for extra spaces, and make sure you haven’t copied a management page URL instead. If the client supports updating directly or through a proxy, try each option when you already have a working profile. Without one, using the proxy for updates can create a loop. If the update succeeds but the list is empty, check the group filter, search terms, and subscription expiry. Don’t submit URLs containing credentials to public parsing tools.

Does a node test timeout always mean the server is down?

Not necessarily. Different test options may check port connectivity or the response time of an actual request, so a failed test alone doesn’t prove the server is down. Check that your system clock and network are working, select the profile, and try accessing a real website while checking the logs for DNS failures, connection timeouts, or handshake errors. Compare it with another known-working profile on the same network to help distinguish a local issue from a problem with one profile. Avoid running repeated batch tests in a short time, as they can add unnecessary load. If only one profile fails, check its server settings. If all profiles fail, first check whether the local core is running, whether the network changed, and whether another proxy is causing a conflict.

It says connected, but the browser or other apps can’t access the internet. What should you do?

Connected often means only that the local service or VPN tunnel has started; it doesn’t guarantee that requests to remote servers will succeed. Check the active profile, visit a known-working website in your browser, and see whether the corresponding request appears in the logs. If there’s no request, check whether the system proxy is enabled, whether the browser has its own proxy settings, and whether the app follows system settings. If requests appear but fail, check DNS, routing, and remote handshake errors. If only one app has a problem, check that app’s proxy settings before reinstalling the client. Finally, close other proxy apps and compare results to rule out local port conflicts or multiple apps trying to capture the same traffic.

Websites still won’t load after you exit the client. How do you restore a regular connection?

First, check whether the system proxy still points to the client’s local address and port. Reopen v2rayN, choose Clear System Proxy, exit normally, and test again. You can also check manual proxy settings and automatic configuration scripts in your operating system’s network settings. If you enabled TUN or a VPN, turn it off in the client and check whether the system still has an active connection. On Android, confirm that the VPN is disconnected in the system VPN settings. Work or school devices may have organization-managed proxy settings; don’t remove settings that aren’t from the client. Once regular web access is restored, re-enable client features one at a time to avoid combining old settings with a new proxy tunnel.