v2rayNDesktop client · subscriptions and routing

V2Ray Resource HubClient downloads and setup guides

v2rayN for desktop and v2rayNG for Android. Follow the steps from importing subscriptions to setting up routing.

Free foreverOpen sourceSetup guides

Common v2rayN settings
Subscriptions, routing, and connection modes

Manage connection details first, then decide how traffic should be routed. Choose a settings category to browse the steps and tips.

Update subscription groups

A subscription URL fetches a set of connection configurations; it is not the same as a share link for a single server. In v2rayN, open the subscription group settings, enter a name and URL, save, then update the group and check the server list for new entries. When routes change, you can usually update the group instead of deleting and recreating it. If an update fails, first check that the URL is complete and the service is still active. Then try an update method suited to your network rather than mistaking a subscription issue for a core problem.

Subscription Groups → Subscription Group Settings
Subscription Groups → Update Current Subscription

Organize groups by source

Give subscriptions from different sources separate names to keep updates, filtering, and troubleshooting focused. Use descriptive names rather than cryptic abbreviations. Before replacing a subscription URL, make sure you have the right group selected, then save the new URL and check the update results. Manage manually added connections separately from subscription entries to avoid mixing them up when organizing a list. Groups are easier to maintain than individual entries when you keep multiple configurations, but they do not determine how traffic is routed.

Subscription Group Settings
Name / URL / Enable Updates

Import share links separately

When you receive a VMess, VLESS, or Trojan share link, use the Import from Clipboard option instead of saving it as a subscription URL. After importing, check that the protocol, transport, and security settings are present, then set the entry as the active server. A QR code is simply another way to encode the configuration; it does not replace the underlying parameters. If a provider offers both a subscription and individual links, use the subscription for routine updates. Import a single link for a quick test or to keep a specific connection.

Servers → Import from Clipboard
Servers → Scan QR Code

Test the connection after updating

A successful update only means the client fetched and parsed the subscription; it does not guarantee that every server will work. Select an entry, run a connection test, then verify access to a site you actually use. Results depend on your network, the destination service, and the test method, so do not judge a connection by a single number. If entries disappear after an update, check whether the provider changed the configuration before restoring an old list. Stale parameters are unlikely to fix connection problems.

Select a Server → Set as Active Server
Check Logs → Test Website Access

Interface labels may vary slightly across platforms and releases. For full steps, start with the subscription import guide. If the connection fails, follow the Troubleshooting steps to narrow down the cause.

V2Ray client downloads
Choose a platform

Use v2rayN on desktop and v2rayNG on Android. On the download page, choose a file that matches your processor architecture and preferred installer format.

Windows

v2rayN comes in a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while the classic WPF edition keeps a familiar desktop workflow. Choose the one that suits your preferences; there is no need to install both to get connected.

Check your operating system and make sure the installer architecture matches your device before downloading. After the first launch, import a subscription, select an active server, and enable the system proxy. If the app says a runtime is missing, install the required components as prompted. Do not copy files from untrusted sources.

Go to downloads Windows client

macOS

v2rayN desktop downloads are available for Apple Silicon and Intel. Check About This Mac for your chip or processor name, then choose the matching file. Whether an installer runs depends first on the architecture, not the file size.

When you open the app for the first time, review any system permission prompts and confirm the app source and required permissions in system settings. After importing a subscription, test browser access using the standard system proxy first. If you need TUN mode, check permissions, routing, and DNS separately rather than changing several settings at once.

Go to downloads macOS client

Android

Start with v2rayNG, which uses the Xray core. v2flyNG uses the V2Fly core and is an alternative when you have a specific compatibility need. Most arm64 devices should use the matching package. If you are unsure of the architecture, check your device specifications or choose a universal build.

After installing, import a subscription, select a server, and allow the system to establish a VPN connection. If connections often drop when the app moves to the background, check battery optimization and background activity restrictions. Subscription updates and VPN connections are separate functions, so test them separately instead of repeatedly importing the same configuration.

Go to downloads Android client

Linux

v2rayN offers graphical subscription and routing management for desktop Linux. Choose deb or rpm to match your distribution's package system, then check whether you need x64 or arm64. Both the package format and processor architecture must match; the file extension alone is not enough.

Desktop environments vary in how they handle system proxy settings. First check whether your browser follows them, then configure apps that use their own proxy settings. Before enabling TUN, consider its permissions and how it will interact with other network tools. If the device already uses a VPN or virtual network interface, note the current settings before making changes.

Go to downloads Linux client

Browse all clients → Not sure which core and platform to use? See the three-client comparison and choose based on your current configuration and needs.

Get started with v2rayN
From importing a subscription to testing access

Get one connection working before adding custom rules. Test after each step to make issues easier to pinpoint.

Step 1 · Import

Add a subscription group

Get a valid subscription URL, open Subscription Group Settings, and enter a recognizable name and the complete URL. Save and update the group, then confirm that connection entries appear in the list. The client does not provide remote servers; installing the app and getting connection details are separate steps.

Subscription URLs often contain personal access credentials, so do not post them in public forums. When copying, check for spaces, line breaks, or extra text at either end. If you have a single share link, import it from the clipboard instead. Identifying what you have first can save time when a subscription update fails.

See how to import a subscription →
Step 2 · Configure

Choose a server and mode

Set a configuration as the active server, enable automatic system proxy configuration, and start with a built-in routing profile. The system proxy sends traffic from supported apps to the client; routing rules decide where that traffic goes. Check each setting separately. “Global” does not mean every app is being captured.

For your first setup, leave TUN and complex DNS rules alone. Once a standard proxy works reliably, expand traffic capture if your apps need it. On Android with v2rayNG, allow the VPN connection when prompted and check whether another VPN service is already running.

Read about connection modes →
Step 3 · Test

Test websites and apps

Visit a site you use regularly and test the apps that need the proxy. Results in the server list are only a guide; they do not replace a real request. If the browser works but another app does not, check that app's proxy settings. If nothing works, check the core logs, connection parameters, and local network.

Change one variable at a time while troubleshooting—for example, switch servers without also changing DNS. Recording error terms and results before and after a change makes it easier to narrow down the cause than reinstalling repeatedly. When you're done, exit normally and check that the system proxy has been cleared if needed.

Find a fix by symptom →

Read the full guide → Need to route traffic from apps that ignore the system proxy? Read about TUN mode and permissions before enabling it.

The Project V open-source ecosystem
How clients and cores work together

Understand how the interface, core, and server fit together to choose the right client and make connection errors easier to interpret.

Project VV2FlyXray

Project V is an ecosystem, not a single unified interface

V2Ray grew out of Project V, a modular suite of networking tools. The core handles protocol processing, transport, routing, and related capabilities. V2Fly continues V2Ray's community development, while Xray grew from related code into a separate core branch. They share some technical roots, but differ in protocol support, configuration fields, and development direction, so the names are not interchangeable.

v2rayN, v2rayNG, and v2flyNG are the graphical clients people use day to day. A client turns subscriptions and interface settings into a core configuration, then starts the core to establish a connection. Servers provide connection endpoints, while subscriptions distribute the parameters. These layers work together, but any one layer working does not prove the whole connection is usable.

Open-source status of the three clients

v2rayN is an open-source desktop client for managing subscriptions, routing, and proxy settings across desktop systems. v2rayNG is an open-source Android client that uses the Xray core; v2flyNG uses the V2Fly core and offers another mobile option. Choose a client based on your operating system first, then check the protocol and core features your connection requires.

Differences in the graphical interface mainly affect how you use the client; core support determines whether a configuration works. If your parameters use a specific security mechanism, check the protocol, transport, and core together. Copying every advanced setting just because two clients have similar names can lead to unsupported fields or inconsistent behavior.

Open-source licenses and practical limits

Open-source licenses define how code may be used, modified, and distributed. The V2Ray and Xray cores mainly use MPL 2.0, while the three client projects use GPL-family licenses. For redistribution, refer to the license texts and dependency notices included with the relevant release rather than relying on the software's name alone.

The clients are free to use, but remote servers, subscription services, and network resources may be provided by other parties. Open-source code does not make every subscription source trustworthy or guarantee the quality of remote connections. Understanding this distinction helps separate client software issues from subscription status and server-side problems.

Community updates and configuration compatibility

Community-maintained projects continue to refine their interfaces, fix bugs, and add core capabilities. Updating the client and updating a subscription solve different problems: the former changes local software, while the latter refreshes remote connection parameters. If a subscription update fails, check the URL and service status first. If the core reports an unsupported field, check whether the local software supports the configuration.

Back up subscriptions and custom routing rules before upgrading, then retest with the same settings afterward. Avoid replacing the client, switching cores, and rewriting rules in one go. Keeping before-and-after settings comparable helps show whether a change actually fixed the problem and gives you a clear way to roll back.

Sensitive information in configurations and logs

Subscription URLs, user IDs, and connection credentials may appear in configurations or logs. When asking for help, share only the relevant error terms and setting names, and remove identifying URL parameters and personal credentials first. Use descriptive subscription group names too, rather than putting personal account details in screenshots.

For a TLS handshake error, check the system clock and the name required by the server. For a connection timeout, investigate the network, server status, and routing. Different errors call for different checks. Follow the complete Troubleshooting guide or look up terms in the glossary.

Choosing servers and troubleshooting connections
Recent technical guides

Clear up the parts of everyday use that are easy to mix up, from choosing a route and understanding cores to fixing sites that won't load.

Browse all articles →