Desktop and Android Client Guide

V2Ray Client Guide v2rayN downloads

Start with subscription setup, choose a client for your device, then configure Routing. For connection issues, see Troubleshooting.

  • Free to use
  • Open source
  • Xray · V2Fly
GUI configuration · subscription management Core families · Xray / V2Fly Outbound selection · direct / proxy / block

Five ways to configure v2rayN

The client manages configuration; the core handles connections. First, understand subscriptions, servers, and proxy modes, then move on to routing and rule sets. The guide below covers common settings—choose a topic to see the key steps.

Subscription group
  Note: for everyday use
  URL: get it from your subscription provider
  Action: update the current subscription
Server list
  Action: set as the active server

Importing Subscriptions and Refreshing Servers

A subscription is how you refresh server details; it does not turn the connection on. In v2rayN, add the URL and a note under subscription groups, save, update the group, then choose an active server from the server list. In v2rayNG, add the subscription and update it as well. A QR code works for sharing a single server temporarily; subscription groups are easier to maintain over time. If an update fails, check the URL, subscription validity, and network access before creating another group. Hide the full subscription URL in screenshots—it may contain access credentials.

After updating a subscription, make sure an active server is selected.

Keep one working connection path during initial setup

When you first open the client, there is no need to change subscriptions, routing, DNS, and TUN all at once. Import a known-working server, set it as active, and test a browser connection using the system proxy. Once that path works, adjust the routing rules. Then you can link each change to the setting you just modified. If you change several options at once, it is much harder to tell which layer caused the problem.

Test the local entry point, remote connection, and destination separately. A successful server test only shows that one test destination responded at that time; it does not prove that every app is using the proxy. Likewise, reaching a destination in your browser does not prove that every domain category in your rules uses the intended outbound. Check the log for the destination, outbound tag, and error type, and record what happened instead of repeatedly reinstalling the client. See the v2rayN setup guide for the full steps, or the troubleshooting guide for symptom-based checks.

Choose a Client for Your Platform

Use v2rayN on desktop and start with v2rayNG on Android. Consider v2flyNG if your setup requires the V2Fly core. Match the installer to your operating system and processor architecture; the download page lists available options and system requirements.

Desktop Interface and Installer Options

On Windows, v2rayN offers a newer cross-platform desktop interface and a classic WPF interface. They suit different interface preferences. Choose one and finish the basic setup; switching back and forth is unlikely to fix connection issues. Before installing, check your processor type in system information. Installers for other architectures are not interchangeable. If the main window does not appear on first launch, check system prompts, runtime requirements, and client logs before changing proxy settings.

On macOS, check your chip in About This Mac first. Apple Silicon and Intel require different downloads. After installation, make sure the client starts normally, then follow any system prompts to grant the required permissions. Treat permission problems, core startup failures, and server connection failures as separate issues. When switching the system proxy, check whether your browser has its own proxy settings; they may override the system settings and change the actual connection path from the mode shown in the client.

Mobile Connections and Distribution Differences

On Android, start with v2rayNG. Most recent devices use the arm64 build; if you are unsure about your processor architecture, look for the universal build. The first time you connect, Android will ask for permission to set up a VPN. The client can handle app traffic only after you grant permission. If the connection drops when the screen locks, check battery optimization and background restrictions. If only certain apps have connection issues, check per-app routing. v2flyNG is an option for configurations that require the V2Fly core. Avoid having two clients compete for the VPN connection during the same test.

The v2rayN Linux packages are organized by distribution package manager. Choose the deb or rpm download that matches your system, then check whether you need x64 or arm64. Installation does not mean every app in your desktop environment will use the system proxy. Test with a browser that supports proxy settings; once the local entry point works, decide whether to enable TUN. For virtual adapter and routing permissions, follow the instructions in the interface rather than reinstalling the client.

View all clients →

How Project V, V2Fly, and the Xray Core Relate

Understand the roles of the client and core before checking configuration compatibility. The interface name, server protocol, and core project are three separate layers and should not be treated as interchangeable.

Project V

Proxy Tool Ecosystem and Configuration Basics

  • inbound
  • routing
  • outbound

V2Fly / V2Ray

Continues the V2Ray technical approach, with proxy protocols, transports, and routing capabilities. v2flyNG is an Android GUI client option for this core line.

Xray

Developed within a related technical ecosystem, with its own evolving protocols and transport capabilities. v2rayNG primarily uses the Xray core; check the actual core to confirm parameter support.

v2rayN

A desktop GUI client manages servers, subscriptions, and routing configuration, then calls a compatible core to handle connections. It is not the name of a particular proxy protocol.

Related Projects Do Not Guarantee Identical Features

Project V provides important background for understanding these tools. The V2Ray configuration model divides traffic handling into an inbound, routing, and an outbound: the inbound accepts connections from local apps, routing selects how to handle them based on conditions, and the outbound connects directly, uses a proxy, or blocks traffic. The V2Fly community continues work on related projects, while Xray has developed its own implementation based on related technology. This relationship helps explain why configurations may look similar, but does not mean any configuration can be moved directly between the two core lines.

VMess, VLESS, Trojan, and Shadowsocks are protocol names. TLS and REALITY relate to connection security or handshakes, while routing rules determine how traffic is handled. Check subscription parameters layer by layer. A client displaying a server does not mean its current core supports every transport and security option that server requires. If you see a compatibility warning, confirm the required parameters and choose a suitable client and core. Do not bypass the issue by disabling security checks.

Open-Source Licenses and the Role of GUI Clients

v2rayN, v2rayNG, and v2flyNG are all open-source GUI client projects. v2rayN and v2rayNG are licensed under GPL-3.0, as is v2flyNG; the V2Fly and Xray core projects use the MPL-2.0 license. Open-source licenses define the terms for using, modifying, and redistributing code; they do not guarantee the quality of any server service. The client is free to use, but that does not mean a subscription provider's service is free. Their maintainers and terms of use are separate.

GUI clients bring subscription updates, active server selection, routing presets, and logs together in clear, accessible controls. Desktop v2rayN is suited to managing multiple configurations over time. Android v2rayNG uses the system VPN interface to handle mobile app traffic, while v2flyNG offers another option for the V2Fly core line. There is no need to install every client: choose one that supports your server parameters, fits how you use your device, and provides logs that help you troubleshoot.

Record Your Configuration Before Updating; Verify in Stages Afterwards

Client, core, subscription, and rule data updates solve different problems. A client update may change the interface or how configuration is generated; a core update may change protocol support; a subscription update refreshes remote server details; and a rule data update changes domain or address categories. Doing these separately makes it easier to narrow down problems. If you have a working configuration, keep a local backup of what you need. Backups may contain sensitive parameters, so do not upload them to public forums.

After updating, first make sure the core starts, then test a known destination, and finally check common apps and routing scenarios. For certificate errors, check the system time, server name, and security parameters. For domain resolution errors, check the DNS path. If only one app fails, check whether it uses the system proxy. Our guides are organized by task and symptom. Button names may change with client updates, so understanding the connection path is more useful than memorizing where a control appeared in a screenshot.

Subscription Sync and Connection Troubleshooting

Start with a specific configuration question: how to share servers between a computer and phone, how REALITY works with Vision, or where to begin when a TLS handshake fails.

Key Concepts Before You Configure

Subscription updated, but your browser still cannot connect?

A subscription update only fetches server details. You still need to select an active server, make sure the core starts, and point your browser to the right proxy entry point. Check the selected server in the client, then the system proxy mode, and finally the error in the log. If name resolution fails, check DNS first; if the connection times out, check the remote parameters and network path. See Key Concepts for the difference between subscriptions, servers, and outbounds.

Do “Global” in system proxy settings and “Global” in routing mean the same thing?

Not necessarily. The system proxy setting determines whether an app sends connections to the local client; routing mode determines which outbound handles traffic that reaches the core. Even when an app uses the system proxy, routing rules may send some destinations directly. Conversely, choosing a proxy route does not make apps that ignore the system proxy use it. When troubleshooting, check the entry point first, then the outbound. See System Proxy and Routing Concepts for related terms.

Can I use the same subscription on my computer and phone?

Whether multiple devices are allowed depends on your subscription provider; the client does not override those limits. If the parameters are compatible, you can import the subscription on both devices, but configure proxy entry points and per-app routing separately. Sharing a QR code usually transfers a server, not your desktop routing preferences. When asking for help publicly, share only the error type and essential redacted parameters. See Subscription and Server Terms for how subscriptions relate to servers.

What do geosite and geoip match?

geosite primarily refers to domain categories, while geoip primarily refers to address categories. Domain rules are useful for grouping sites; address rules are useful for local networks or known IP ranges. They are not interchangeable, and the domain resolution strategy can affect when address rules are evaluated. First make sure the data includes the category you use, then check rule order and outbound tags. This helps avoid mistaking a rule mismatch for a server problem. See Routing and Traffic Splitting: Key Concepts for details.

Download v2rayN