v2rayN · v2rayNG · v2flyNG Q&A

V2Ray Q&A HubDownload & Setup

Choose an open-source client for your device, then work through subscription imports and routing rules to verify each setting and connection path.

Configuration Q&A

Start with the issue you're facing

Advanced Configuration Guide →

First distinguish between the subscription, client, and core, then change the relevant settings. A client showing “Connected” usually means only that the local proxy is running. Whether a site is reachable also depends on the server settings, how the app uses the proxy, DNS, and routing. The sections below cover common tasks; configuration examples use Xray-style fields, so check the actual format supported by other cores.

What should you check first?

Subscription groups · Workflow
Group nameEveryday use
Subscription URLPaste the full link
After savingUpdate the subscription
Before connectingSelect an active server

Create a subscription group, paste the full URL, and update it. A subscription URL retrieves a server list; it is not the share link for a single server. Selecting the wrong import type may leave the list empty after an update. Once saved, select the group and choose a server to use. If the update fails, check whether the URL has expired, returns a login page, or is reachable from the client. Hide the full subscription URL in screenshots so you don't expose its access credentials.

What should you check first?

How do I import a subscription link?
Subscription groups · Workflow
Create a groupPaste the full URL
Save and updateSelect an active server

Create a subscription group, paste the full URL, and update it. A subscription URL retrieves a server list; it is not the share link for a single server. Selecting the wrong import type may leave the list empty after an update. Once saved, select the group and choose a server to use. If the update fails, check whether the URL has expired, returns a login page, or is reachable from the client. Hide the full subscription URL in screenshots so you don't expose its access credentials.

How do I configure routing rules?
{
  "type": "field",
  "domain": ["geosite:cn"],
  "outboundTag": "direct"
}

Decide which destinations should connect directly, then place specific rules before broader ones. Routing rules are usually evaluated in order, and the first match determines the outbound. Adding a direct rule at the end may not override an earlier proxy rule. The example's direct outbound tag must exist in your configuration, and the core must be able to read the geosite data files. Save and reload the configuration, then check the logs for a new connection. Understanding why a rule matched makes your setup easier to maintain than repeatedly switching global modes.

Where should I check DNS settings?
Check in orderBrowser → system → core
Check the logsLookup path and resolution result

First identify which component resolves the domain, then choose a DNS server. The browser, operating system, and proxy core may each use a different lookup path, so changing one setting won't affect every app. If a domain fails to load but its IP is reachable, check the logs for lookup failures, unexpected results, or an unreachable DNS path. The domain strategy controls whether routing attempts to resolve a domain; it doesn't mean every DNS query goes through the proxy. Change one setting at a time and clear the relevant cache to narrow down the cause.

When should I use TUN?
System proxy worksKeep the basic connection
App ignores proxy settingsConsider TUN mode

Consider TUN only when an app doesn't follow the system proxy. TUN routes traffic through a virtual network interface, which is a different mechanism from a browser reading the system proxy settings. Before enabling it, confirm that a regular proxy connection works and check the required permissions, virtual network adapter support, and conflicts with other network tools. After enabling it, test access to local devices, LAN services, and DNS. TUN won't fix incorrect server settings or guarantee that every app will work. If something breaks, disable it and troubleshoot from the verified basic connection.

What should I check first when a node times out?
LocalNetwork, time, active server
RemoteAddress, port, transport, TLS

Check your local network and system time first, then review the subscription and logs. A timeout means the connection didn't complete in time; it doesn't identify a specific cause. Update the subscription and confirm the active server, then verify that the address, port, transport, and TLS settings all match. DNS failures, connection refusals, and handshake errors in the logs point to different stages and need different fixes. If multiple devices on the same network have the same issue, check the server status next. Don't reinstall the client repeatedly instead of investigating the error.

How should you use these examples?Record a working configuration first, then change one thing at a time to address a specific issue. The routing window illustrates how settings relate; it isn't a complete, ready-to-import configuration. Outbound tags must match those generated by the client, and the referenced rule sets must exist. Test changes with a new connection so an existing long-lived connection using the old route doesn't make a working change look ineffective.

If the interface labels differ from the guide, look for the corresponding feature instead of following the menu path mechanically. Desktop and mobile clients don't handle subscription management, logs, and proxy traffic in exactly the same way. If you're new to this, get one basic connection working before adding routing or DNS changes. That makes it easier to tell whether a problem comes from the server connection, app traffic, or an added rule.

Choose a platform

V2Ray client downloads

Browse all clients →

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG if you need compatibility with the V2Fly core. The client manages local settings and connections; you must obtain a subscription or server details separately. Check your operating system, processor architecture, and required protocol before choosing a platform package. Don't install a file just because its name includes a familiar client.

Windows

v2rayN

For desktop, start with v2rayN. The cross-platform desktop edition and classic WPF edition use different UI technologies, so check their runtime requirements separately. Before installing, read the download page and choose the package for your system architecture. If you're upgrading an existing setup, back up subscription groups, custom routing, and DNS settings first.

After launch, check that the core runs correctly, then import a subscription and select an active server. If your browser doesn't follow the system proxy, check browser extensions, its own proxy settings, and the client's system proxy status. Terminals usually need a proxy configured separately; a working browser connection doesn't mean every desktop app is using the proxy.

Go to downloads

macOS

v2rayN

Check your chip in About This Mac, then choose the Apple Silicon or Intel download. The cross-platform v2rayN interface retains the main workflows for managing subscriptions, servers, and routing, but system proxy permissions, network access, and window placement may differ from other desktop systems.

If a system prompt appears on first launch, verify the download source and package type, then follow the operating system's steps for opening the app. Don't disable system security altogether. After connecting, test your browser and the apps you actually use. If you need TUN, grant the required permissions as described by the client and check whether local network access is affected.

Go to downloads

Android

Start with v2rayNG

For Android, start with v2rayNG, which uses the Xray core; v2flyNG, which uses the V2Fly core, is an alternative. Most recent devices can use an arm64 package. If you're unsure of your architecture, check your device details before considering a universal package. Package architecture determines whether it can be installed; protocol and core support determine whether an imported server can actually connect.

Starting the proxy usually prompts you to authorize a system VPN connection. This is how the client routes app traffic on mobile; it doesn't mean the client provides a remote server. If you use another network tool that relies on the same interface, watch for conflicts. If the connection drops in the background, check battery optimization and background activity restrictions. First determine whether the system paused the app or the server connection failed.

Go to downloads

Linux

v2rayN

On a Linux desktop, you can use v2rayN. Choose a deb or rpm package for your distribution, then select x64 or arm64. Installing the client doesn't mean your desktop environment will automatically use the system proxy. Proxy settings work differently across desktops, browsers, and terminals, so test them in the apps you actually use.

If the client starts but apps can't connect, check the local listening port, proxy type, and app settings, then verify system proxy integration. Consider TUN only if you need to capture traffic from apps that ignore proxy settings, and grant the required permissions as instructed by the client. A headless server is a different use case from a graphical desktop; the downloads here are primarily for desktop clients.

Go to downloads

What else should you check before downloading?

Can I connect as soon as the client is installed?You also need a valid server configuration or subscription. The client manages connections; it can't create a working remote service. If you already have a subscription, check that it's still active and supports the protocol you need. See the first-connection guide →

Can I use the same configuration on desktop and mobile?Common share links may import on both, but client backup files, routing templates, and core configurations aren't guaranteed to be compatible. When moving between platforms, import the server first and check the rules separately. Compare client differences →

Should I reinstall if an update fails?First determine whether the client update or subscription update failed. Client updates can depend on the installation environment; subscription updates more often fail because of the URL, network, or response format. Keep your existing configuration and error message before troubleshooting. Visit the help center →

Do more modes make it easier to connect?Modes change how traffic enters the proxy and chooses an outbound; they can't fix incorrect authentication or transport settings. Confirm the server works with a simple setup first, then add rules. That makes troubleshooting more focused. Read the advanced configuration guide →

Ecosystem and maintenance

How Project V, V2Fly, and Xray relate

Understanding the difference between a core and a client helps clarify feature support. The core handles network logic such as protocols, routing, and DNS; the client organizes subscriptions, servers, and settings into a runnable configuration. Clients with similar names don't necessarily use the same core, and a server configuration won't necessarily run on every core as-is.

What is the background of Project V?

Project V is an open-source project ecosystem focused on network proxy and communication tools, with V2Ray as one of its best-known core applications. As development and maintenance paths evolved, V2Fly continued work related to V2Ray, while Xray developed its own implementation and feature roadmap from related code. As a result, “V2Ray” in everyday searches may refer either to the broader use case or to a specific core. Use the precise project or core name when looking up configuration syntax.

This doesn't mean installing one app gives you every feature. A graphical client can wrap different core integrations, while each core determines which protocols, transports, and configuration fields it supports. If a server imports but won't start, check which core is selected and read the startup logs to see whether a field is unrecognized. Don't infer compatibility from the client name alone.

V2Fly or Xray: which should you choose?

Start with the protocols and transport requirements provided by your server, then consider the effort of migrating existing settings. The two share some concepts and history, but their feature roadmaps and configuration support aren't identical. For configurations that use REALITY, a particular flow, or similar parameters, verify that the selected core supports them. Renaming a file or copying it into another client doesn't convert the configuration.

For most users, the complete settings provided by a subscription matter more than abstract comparisons of core performance. The address, port, authentication, transport, and TLS options must all match; one missing field can cause a handshake failure. Without repeatable tests in the same environment, don't attribute a difference in connection speed to the core alone. Get a working setup first, then make changes to address a specific issue.

What does each of the three clients do?

v2rayN is for desktop systems and provides interfaces for subscription management, server selection, and proxy settings. v2rayNG is for Android and uses the Xray core; v2flyNG is also for Android and uses the V2Fly core. All three are open-source client projects, but none is developed by this site. Features documented for one client may not apply to the others. Start with v2rayN on desktop, and choose a mobile client based on protocol requirements.

Open source means the code and its license terms are available for review; it doesn't mean the same project provides remote servers. Client projects, core projects, and subscription services are separate parts of the ecosystem. This site organizes download links and Chinese-language guides to help explain how they fit together. Check with the service provider for server authorization, availability, and permitted use.

How should you understand open-source licenses and updates?

Open-source licenses set the terms for using, modifying, and redistributing code. “Source available” doesn't mean you can ignore those terms. Core code associated with V2Fly and Xray uses MPL 2.0, but check the license for each file, dependency, and graphical client separately. Clients, cores, and bundled components may use different licenses; refer to the notices included with the specific release to confirm its terms.

Updates also happen at different levels: client updates affect the interface and configuration generation, core updates affect network behavior, rule-data updates change domain or IP classifications, and subscription updates retrieve the server list from the provider. They don't necessarily happen together. Back up your configuration before making changes, then check the logs and test your usual apps. If a problem starts after an update, note which component changed; resetting everything at once can erase useful clues.

Project VV2FlyXrayOpen-source clients
About this site and its content →

Recent articles

Connection troubleshooting and protocol deep dives

Browse all articles →

Start with the symptoms when troubleshooting configuration issues; turn to protocols and cores to understand how things work. These three articles are listed by publication date, newest first: work through a node timeout one link at a time, troubleshoot system proxy issues separately in browsers and terminals, and learn why REALITY and Vision server settings shouldn't be omitted casually. Keep your own logs in context; different errors don't all have the same cause.