Client selection and configuration guide

V2Ray Client Download Hub: Download v2rayN

A focused guide to three open-source clients, four platform downloads, and Chinese configuration docs, with clear steps from installation to subscription imports, traffic routing, and log-based troubleshooting.

Subscription import Traffic routing Xray core TUN mode
v2rayN · Main window
Servers Subscription groups Routing Settings Logs
Protocol Profile name Transport
VLESS Daily profile TCP
VMess Backup profile WS
Trojan Work profile gRPC
VLESS Manual profile TCP
Core ready System proxy: enabled Routing: rule mode
Client workflow

From subscription groups to log-based troubleshooting

A client’s core value is not a pile of switches. It is a clear, reviewable workflow for organizing server sources, connection rules, and runtime status.

Subscription groups

Manage subscriptions and manual nodes by source

Subscription groups keep servers from different sources separate. Create a group before adding its link, then set the group’s update source; future refreshes replace only that source instead of mixing every configuration into one list. Keep manually added nodes in a separate group so subscription updates do not affect temporary profiles.

v2rayN’s desktop list is built for bulk filtering, sorting, and switching, while Android clients condense group access for mobile screens. Both organize information around “source → profile → current selection.” When changing devices, re-import the same subscription instead of entering protocol parameters again.

View the subscription import steps →

Organize sources first

Subscriptions, QR codes, and manual profiles are all import methods. Name groups after their source or purpose to make future updates, filtering, and migration clearer. A subscription link is not a protocol; one subscription can contain VLESS, VMess, or Trojan profiles.

Then choose the coverage

System proxy is suitable for ordinary apps that follow system settings. TUN mode covers more traffic but also requires attention to DNS, routing, and the virtual network adapter. There is no need to enable both; choose based on the apps involved and the troubleshooting cost.

Finally, verify with logs

A connect button only means the client has started applying the configuration. Confirm the actual state through core startup messages, matched routes, and access results. When troubleshooting, change one category of setting at a time and keep before-and-after logs; this is usually clearer than changing several switches at once.

Platform downloads

Choose a V2Ray client by device

v2rayN is the main desktop choice, while Android users can choose v2rayNG or v2flyNG based on core preference. Each entry opens the matching platform tab on the download page.

Windows

v2rayN desktop client

Designed for everyday desktop use, it manages multiple subscription groups, bulk server filtering, system proxy switching, and dedicated logs. The download page offers both the new desktop interface and the classic WPF interface: the former has a more consistent layout, while the latter preserves familiar Windows workflows.

For first-time setup, import a subscription, select a profile, and then enable the system proxy. To cover more app traffic, configure TUN mode after understanding how DNS and routing interact.

Download for Windows

macOS

v2rayN desktop client

On macOS, v2rayN uses a cross-platform desktop interface with subscription management, server lists, routing modes, and logs arranged similarly to other desktop systems. Check the device chip before downloading; the download page provides separate entries for Apple Silicon and Intel.

If the system requests network-related permissions after installation, grant them according to the mode you use. Browsers and apps that follow system settings can start with the system proxy; there is no need to change every advanced network option immediately.

Download for macOS

Android

v2rayNG and v2flyNG

v2rayNG is the usual Android choice, with the Xray core and support for common protocol and transport combinations. Choose v2flyNG when you need the V2Fly core. Both import profiles from subscription links, clipboard content, or QR codes, with interfaces suited to touchscreens.

Most newer phones can use an arm64 package; if the processor architecture is uncertain, choose the universal package on the download page. After importing, check the profile name and protocol before starting the connection and reviewing the system status.

Download for Android

Linux

v2rayN desktop client

On Linux desktops, v2rayN can manage subscriptions, routing, and the system proxy. The download page offers deb and rpm packages for common distributions and separates x64 from arm64 builds. Confirm the system’s package format and processor architecture before choosing a file.

If the system proxy does not affect the target app after installation, first check whether the app reads the desktop environment’s proxy settings. Apps that manage network connections independently may need an in-app proxy or TUN mode instead.

Download for Linux
Open source ecosystem

How Project V, V2Fly, and Xray relate

Clients, cores, and protocols belong to different layers. Understanding each role is more useful for choosing and troubleshooting than memorizing a software name.

Project V is an ecosystem foundation, not a single GUI program

Project V developed an open-source ecosystem around proxy protocols, transports, routing capabilities, and configuration formats. v2rayN, v2rayNG, and v2flyNG are GUI clients: they provide subscription imports, server selection, system proxy controls, routing rules, and log views. The core usually handles protocol connections, transport layers, and routing logic.

Separating the client from the core explains many common behaviors. The same subscription may be organized differently after import into different clients; the same protocol may expose different transport options and parameter names with different core combinations. Usability depends not only on a GUI switch, but also on compatible protocol fields, core capabilities, DNS settings, and routing rules.

V2Fly and Xray are core families within the same ecosystem

V2Fly continues V2Ray’s core capabilities with ongoing work on protocol implementations, routing, DNS, and transport components. Xray remains compatible with common configuration approaches while extending protocol and transport support. They are not a simple ranking of three clients, but core choices following different maintenance paths and feature sets.

v2rayN can manage these core features in a desktop environment; v2rayNG primarily uses the Xray core on Android, while v2flyNG follows the V2Fly core path. Most users do not need to edit a complete core configuration manually. Choose a client compatible with the subscription, then adjust advanced DNS, outbound chains, or routing one item at a time when needed.

Open-source protocols keep feature boundaries reviewable

All three clients and the related cores are maintained as open source. Here, open source means community developers can read and discuss implementation logic, configuration formats, and changes, while different clients can build compatibility around shared protocols. It does not replace judgment about configuration sources, network permissions, or the runtime environment, but it keeps technical issues describable and reproducible.

Client updates usually cover interface changes, core capabilities, protocol compatibility, and bug fixes. Because GUI clients and cores may follow different release schedules, the download page lists currently available entry points, while guides favor stable feature names and workflows. If the interface moves, relocate functions by concepts such as “subscription groups, server list, system proxy, routing, and logs” rather than relying on one fixed screenshot.

Choose the platform first, then the core requirements

For Windows, macOS, and Linux desktops, v2rayN is the main choice because it offers comprehensive list management, route editing, and log views for maintaining multiple subscriptions or manual profiles. For everyday Android use, choose v2rayNG. If a profile explicitly requires the V2Fly core or you want to stay on that core path, choose v2flyNG.

Do not choose a client by protocol name alone. Compatibility for VMess, VLESS, Trojan, and Shadowsocks also depends on the transport layer, TLS, REALITY, server parameters, and core capabilities. The safest approach is to confirm the subscription’s configuration format, choose a client on the target platform that supports that combination, and verify through logs that the profile was recognized correctly.

Common decisions

Featured FAQs

Should I change routing or import a subscription first?

Import the subscription first and confirm that the server list appears correctly. Select a profile and connect using the default routing mode. Once the basic connection works, adjust bypass rules, custom domains, or TUN mode as needed. This keeps subscription-format issues separate from routing issues.

How should I choose between system proxy and TUN mode?

System proxy is simple and suits browsers and apps that follow system network settings. TUN mode covers more traffic and involves the virtual network adapter, DNS, and system routes. Start with the system proxy for everyday desktop use; enable TUN only when an app ignores system settings or you need broader coverage, after reviewing the advanced guide.

What if a new profile is missing after a subscription update?

First confirm that the correct group was updated, then check whether name, protocol, or keyword filters are hiding the entry. If the list still has not changed, review the update logs to confirm that the subscription content parsed successfully. Avoid deleting groups and changing routes at the same time, or the source of the problem may become unclear.

The connection looks normal, but an app cannot connect. What should I check first?

Check in order whether the app uses the system proxy, which routing rule matches the current domain, whether DNS returns a usable result, and whether the logs show an outbound connection. This sequence distinguishes an app that is not using the proxy, a misrouted request, a resolution problem, and a failed remote connection.

Latest guides

Recent client guides and protocol explainers

From interface entry points and configuration sync to protocol differences, each article focuses on one question so you can find the relevant steps quickly during setup.