HELP / CLIENT CONFIGURATION

v2rayN FAQ & Connection Troubleshooting

Find help with subscription imports, system proxy, and TUN settings by issue.

First identify whether the issue involves fetching configuration, local traffic routing, or the remote connection, then check the relevant settings. These steps cover common use cases for v2rayN, v2rayNG, and v2flyNG. Menu names and available options vary by client version.

CONCEPTS

Getting Started

Clients, cores, and proxy entry points operate at different layers. Understand what each one does before deciding which setting to change.

What do V2Ray, Xray, and v2rayN each do?

V2Ray is part of the Project V proxy ecosystem. V2Fly and Xray are related core projects, while v2rayN is a graphical client for managing server configurations, subscriptions, and proxy modes. The interface creates and manages configurations; the core handles traffic. So, being able to import a link does not mean the selected core supports every option in it. If a protocol or transport setting causes an error, check which core is selected in the client settings, then compare the configuration fields with that core’s supported options. Don’t assume compatibility based on the client’s name alone.

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

Use v2rayN on Windows, macOS, or Linux, choosing a package that matches your operating system and processor architecture. On Android, v2rayNG with the Xray core is usually the first choice; v2flyNG is an alternative when an existing configuration relies on V2Fly behavior. The three clients differ in menus, configuration storage, and core support, so don’t copy an entire app data directory between them. When migrating, use your existing subscription URL or a compatible share link, then check routing, DNS, and local listening settings individually.

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

A client manages local settings and connections; installing it does not provide a remote server. To connect, you also need authorized server details, including an address, port, protocol, and authentication parameters. A subscription lets you retrieve and update these configurations in one place. After importing, check that the list contains a valid entry, then select one to test the connection. A client launching successfully does not prove that a remote service is available. If you don’t have a configuration yet, ask its provider how to get one, how long it remains valid, and which clients it supports instead of repeatedly changing the local proxy port.

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

A system proxy directs apps that honor system proxy settings to a local proxy endpoint. Routing mode decides whether requests that reach the core are proxied, sent directly, or blocked. TUN uses a virtual network interface to capture traffic that meets its routing conditions. These are separate layers and can’t replace one another. Global routing won’t automatically send every app through the proxy, and enabling TUN doesn’t guarantee that the server configuration is correct. For an initial check, turn off TUN and test browser access through the system proxy. Then enable TUN separately so you can identify where a problem occurs.

See the glossary for protocols, cores, and routing →

INSTALLATION / IMPORT

Installation & Setup

Check package architecture, subscription format, and system permissions separately. Back up existing configuration before migrating or reinstalling.

Which Android package should you choose: arm64 or universal?

If your device has an ARM64 processor and the operating system supports the matching app architecture, choose the arm64 package. Most newer Android phones meet these requirements. If you’re unsure of the architecture, choose the universal package, which includes components for multiple architectures but is usually larger. If installation fails or reports incompatibility, also check the required Android version, available storage, and whether the download completed; don’t assume architecture is the cause. If you’re migrating from another source and encounter a signature conflict, back up your configuration before deciding whether to uninstall the old app.

Subscription link won’t import? Check these things first

First, distinguish a subscription URL from a single-server share link. Enter a subscription URL in the subscription group’s address field; use an import option such as Import from clipboard for a single-server link. Remove leading and trailing spaces, line breaks, and any extra text added by a messaging app, then make sure the URL is complete. After adding a subscription, you may also need to update it before entries appear in the list. If the format is unsupported, ask the provider whether the returned content works with your client. Re-pasting the same URL won’t help if it returns a login page, an error page, or an incompatible configuration format.

v2rayN won’t start, or its core fails to launch. What should you do?

First, make sure the package matches your operating system and processor architecture. If you’re using an archive, extract it completely before running the app; don’t launch it from the archive preview. Make sure the extracted folder is readable and writable by your user account. Then check system notifications and client logs to distinguish missing runtime libraries, insufficient execution permissions, unavailable core files, and local port conflicts. Follow the runtime requirements for the specific release package; don’t assume dependencies for one interface version apply to all releases. If the system blocks the app, verify its source and the reason for the warning before deciding whether to authorize it through the system’s normal process.

TUN mode reports insufficient permissions. How do you fix it?

Turn off TUN first and confirm that a regular proxy connection works. Then address the permissions required for the virtual interface. Desktop systems may require administrator approval, a helper service, or a virtual network component, depending on the client version and operating system. Follow the prompts rather than leaving system security protections disabled. On Android, approve the system VPN request the first time you enable TUN, and check whether another app is already using that connection. If it still fails, check errors for interface creation or route setup, then close other VPN tools and try again to avoid competing traffic-capture rules.

See packages and system requirements for each platform → · Read the first-time setup guide →

PROXY / ROUTING / SUBSCRIPTION

Tips & Usage

Testing methods, routing rules, and subscription updates affect different parts of the connection. Record the original values before changing settings, then keep changes only after verifying the results.

Do you need to change the local listening address or port manually?

If there’s no conflict, keep the client’s current defaults. Don’t change the port just because a tutorial screenshot shows something different. If you need to connect a browser, command-line tool, or other app to the local proxy manually, check the actual listening port and protocol in the client settings; don’t assume a particular port always means HTTP or SOCKS. For local use only, the listening address is usually best left on the loopback interface. After changing listening settings, apply the configuration again and update the system proxy and any app-specific proxy settings. A stale port can leave the client running while apps remain unable to connect.

Does a successful node latency test guarantee that it will work?

Not necessarily. TCP latency usually measures the time to connect to the server port; it doesn’t confirm protocol authentication, encryption negotiation, or access to the target website. A real connection test goes further through the proxy, but results still depend on the test address, DNS, and network conditions at the time. After selecting a node, test the service you actually need and check the logs for handshake or resolution errors. For meaningful comparisons, use the same test method and destination, then consider stability, traffic multipliers, and region. Don’t judge a node by a single lowest-latency result.

When should you use global mode or bypass-mainland-China routing?

Choose global routing when you want requests that have entered the proxy to use the remote connection wherever possible. Choose a split-routing option, such as bypassing mainland China, when you want rules to decide which requests go direct and which use the proxy. “Global” describes routing decisions inside the core; it does not mean every app is automatically captured. After switching modes, check that the system proxy or TUN is still configured as intended, then test the target website. If only certain domains take the wrong route, check rule order, rule resources, and DNS instead of repeatedly switching nodes. An earlier matching rule may already determine where the request goes.

How do you set the subscription auto-update interval and update proxy?

Look for the auto-update option in the subscription group or subscription settings. Check the interval units and set it according to the provider’s update frequency; shorter intervals won’t make connections more stable. Using a proxy for updates affects only how subscription content is fetched; it doesn’t change how nodes connect. If the current network can’t reach the subscription URL directly and you have a working node, try updating through the proxy. If all your nodes are down, this can create a loop that prevents updates; switch back to a direct connection or ask the provider to check the URL. Menu locations vary by version, so follow the options available in your client.

See the JSON guide for inbound, routing, and DNS fields →

DIAGNOSTICS

Troubleshooting

Keep the logs from when the error occurred, then check the basic network, subscription status, traffic entry point, and remote connection in order. Avoid changing multiple settings at once.

Subscription update failed? Tell whether it’s a URL, network, or certificate issue

Start with the specific error in the update log. HTTP 401 or 403 usually points to an authorization issue; 404 may mean the URL is no longer valid. For a connection timeout, check network reachability and whether updates are set to use a proxy. For a certificate error, check the system date, time zone, and certificate updates. A parsing error may mean the service returned a web page or incompatible content; ask the provider which subscription format to use. Don’t routinely disable certificate verification, and don’t post the full subscription URL in a public support forum—it may contain private access credentials.

Node connection timed out? Follow these troubleshooting steps

Turn off the proxy and check that your basic network connection works. Then confirm the subscription is still valid and the selected entry is up to date. Test one node at a time and check the logs to see whether the failure happens during DNS resolution, connection, or handshake. For a resolution failure, check DNS; for a connection timeout, verify the server address, port, and network route; for a handshake failure, check the protocol and transport settings. Trying another configuration you’re authorized to use can help distinguish a server issue from a local one. Don’t change DNS, routing, and the core at the same time. Change one setting at a time and record the result so you can compare tests.

Client says connected, but the browser can’t access the internet. What should you do?

“Connected” may only mean that the local core has started; it doesn’t confirm that requests to websites are succeeding. Make sure you’ve selected a valid node, then check that the browser uses the system proxy and that its address and port match the client’s actual listener. Next, check whether browser requests appear in the logs. If none do, investigate the traffic entry point. If requests appear but DNS resolution fails, check DNS; if there’s a handshake or remote error, check the node settings. If only one website is affected, check that domain’s routing and service status. If all websites fail, temporarily disable other proxy extensions and VPN tools to prevent overlapping settings.

System proxy isn’t working, or you can’t connect after closing the client. What should you do?

Check that the system proxy points to the client’s current local listening port, and confirm that the app you’re testing actually uses the system proxy. Some apps have their own proxy settings, and some connections ignore the system proxy. If a browser extension, another proxy program, or an administrator policy overrides the setting, keep just one clearly defined source of proxy configuration. If the internet still doesn’t work after closing the client, open your system network settings and check for a manual proxy pointing to a stopped port; disable it if it’s no longer needed. Once the connection is restored, start the client again and set up the system proxy. Reinstalling repeatedly won’t remove the need to check for leftover settings.

Step-by-step checks for failed subscription updates →

Find and change a busy local listening port →