Client Review NotesSubscriptions · Routing · TUN

V2Ray Reviewv2rayN Review

Clear guidance on importing subscriptions, traffic routing, TUN mode, and system proxy settings.

Open SourceGUI ConfigurationXray / V2Fly Ecosystem

v2rayN for desktop · v2rayNG recommended for Android

Review Checklist

v2rayN Settings and Limitations

Whether a configuration works depends on the imported content, traffic entry point, and outbound rules lining up. Understand what each layer does before changing individual settings.

Group first, then update

A subscription link is not a complete client configuration

Subscription groups in v2rayN help keep connection settings from different sources separate. Add a group, enter its subscription URL, and update that group to avoid mixing unknown content into an existing list. Subscriptions typically provide server connection parameters, but do not necessarily include desktop system proxy, TUN, or custom routing settings. After an update, check the protocol, transport, and security parameters—not just whether entries appeared in the list. Group subscriptions are easier to maintain than pasting share links one by one, but updates may overwrite manually edited entries. Keep a separate record of important changes.

v2rayN · Subscription Group Settings
Subscription URLhttps://example.com/subscription
Update scopeCurrent subscription group

Check the source and format before updating the server list.

When reading the settings window, distinguish parameters from results.

The window above shows how settings relate to each other, not the current runtime status. The port, routing preset, and core selection are configuration inputs; check app requests and logs to determine whether connections are working. Menus may be in different places across desktop environments, so understanding what an option does is more useful than memorizing its location in a screenshot. For a first setup, import a subscription, select a configuration, and set the system proxy. Leave complex routing for later.

Platforms and Downloads

V2Ray Client Downloads

Use v2rayN on desktop. For Android, consider v2rayNG with the Xray core; choose v2flyNG if you need the V2Fly core. Select your operating system, then check the processor architecture.

Windows

v2rayN · Desktop Pick

The desktop version offers a cross-platform interface, while the WPF version retains the classic desktop layout. Check system and runtime requirements for either option; package names alone do not guarantee compatibility. If you already have a configuration, back up your subscription groups and custom routing before switching interface versions.

Start with system proxy mode. After confirming browser access and normal logs, decide whether you need TUN. Installing the client does not enable the proxy automatically; also check the active configuration, local listening port, and whether the app follows system proxy settings.

Go to download Windows client

macOS

v2rayN · Choose by Processor

Choose arm64 for Apple silicon and x64 for Intel. Check your processor in About This Mac. Selecting the correct architecture can prevent startup and dependency issues; do not mistake an architecture mismatch for a subscription or server connection problem.

When opening the app for the first time, check system security prompts and network permissions. System proxy and TUN follow different authorization paths. Verify a basic connection first, then configure virtual network interface settings. If access is blocked, check the app source and system prompt; avoid changing several security settings at once.

Go to download macOS client

Android

v2rayNG / v2flyNG

v2rayNG uses the Xray core and is the recommended Android option; v2flyNG uses the V2Fly core for configurations that need its behavior. Most arm64 devices should use the matching package. If you are unsure about the architecture, check the universal package notes rather than choosing by file size alone.

On Android, a local traffic tunnel is usually created through the system VPN interface. Check system authorization, per-app settings, and background restrictions. Desktop routing presets may not transfer directly to a phone. Sharing a subscription URL does not mean DNS, routing, or traffic capture will behave the same on both devices.

Go to download Android client

Linux

v2rayN · deb / rpm

Debian- and Ubuntu-based distributions generally use deb packages; Fedora-based distributions generally use rpm. Check for x64 or arm64 as well. Package format and processor architecture are separate requirements, and getting one right does not guarantee installation. Check your distribution's dependencies too.

Desktop environments vary in their support for system proxy settings, and some apps still need individual configuration. Autostart does not mean TUN permissions are ready. Verify that the client starts manually before configuring desktop autostart, then check whether the system proxy is restored when you exit.

Go to download Linux client

The installer deploys the client; the subscription provides connection settings. Prepare each separately. Check your device details before downloading. If a connection fails, review the configuration and logs instead of reinstalling repeatedly.

Browse all clients → Compare the three clients →
Quick Start

Three steps from installation to connection testing

Establish a repeatable basic connection before adding custom rules. Check one layer at a time to reduce interference between settings.

  1. Install the client and import a subscription group

    Install the client for your operating system and architecture. Open Parameters first and note the local listening port, then add a subscription URL from a trusted source under Subscription Groups. After updating, check the protocol, transport, and security settings of each entry, then select the configuration you want to use. If the update fails, check that the URL is complete, authorization is valid, and the link returns subscription data rather than a webpage error.

    Share links and subscription links serve different purposes: the former usually describe a single connection, while the latter make bulk updates easier. Do not paste URLs containing credentials into public comments, screenshots, or conversion services. If migrating an existing configuration, keep a backup before overwriting or reimporting. After a successful import, select a configuration and confirm that the core starts.

  2. Choose a proxy mode and keep routing simple

    On desktop, start with automatic system proxy configuration and a basic routing preset, with TUN off. This lets you verify that the subscription parameters and outbound connection work. On Android, allow the VPN connection when prompted and check the client's per-app scope. Avoid running multiple tools that capture system traffic at the same time; conflicting proxy settings may be the cause of a problem, not the connection parameters.

    “Global” usually describes the client's outbound policy; it does not mean every app on the system is sending traffic to the client. First confirm that requests reach the proxy, then decide whether they should connect directly or through the proxy. If you need TUN, enable it separately after the basic connection works. Check administrator permissions, DNS, and local network exclusions. If something goes wrong, return to the verified system proxy setup.

  3. Test app requests, then save your everyday setup

    Send a request from an app that needs the proxy and check the logs for core startup, local listening, and the outbound connection. A page loading in a browser only confirms that this particular access path works; it does not prove that terminals, games, or other apps use the same proxy. Likewise, one timed-out connection does not prove the whole client is broken. Distinguish issues with the target service, domain resolution, and outbound handshake.

    Once the basic setup is verified, add custom routing, enable TUN, or adjust DNS one change at a time. Record why you made each change and how to undo it, so multiple simultaneous changes do not leave you without a baseline. Exit the client normally and check that the system proxy is restored. For routine maintenance, focus on subscription sources, configuration backups, and error logs rather than constantly toggling every option.

Read the full guide
Project V / V2Fly / Xray

Clients, Cores, and the Open-Source Ecosystem

The interface manages settings; the core handles execution. Understanding these as separate layers helps explain why the same connection configuration can behave differently across devices.

Project V is a technology ecosystem, not a single installer

Project V is an ecosystem of tools for proxy communications and network configuration, with V2Ray as one of its major projects. As the community evolved, V2Fly continued maintaining V2Ray-related implementations, while Xray developed its own direction from related code and technical foundations. They share some concepts, but they are not interchangeable versions of the same program. “V2Ray client” is often used broadly in searches; before downloading, check which GUI client and core you need.

Understanding these relationships helps separate three questions: where an option appears in the interface, whether the configuration syntax is supported, and whether the server parameters match. An option disappearing from the interface does not necessarily mean the protocol was dropped. A protocol being available in a core does not guarantee the current GUI exposes every advanced field. When something differs, check the client, core, and connection parameters separately rather than comparing product names alone.

Xray and V2Fly differ in specific capabilities

The core handles protocol processing, transport setup, routing matches, and outbound connections. Choose one based on the capabilities your server configuration needs, including VLESS or VMess parameters and compatibility with security settings such as TLS and REALITY. Two cores supporting the same protocol name does not mean you can ignore differences in transport, field values, or configuration conversion. When troubleshooting a failed connection, keeping the original parameter details is often more useful than repeatedly switching cores.

Routing and DNS also need to be checked. Domain lists, IP data resources, and resolution strategies all affect whether a rule matches. The same-looking routing preset can produce different results if its resources or resolution behavior change. Start with the client's basic configuration and understand direct, proxy, and block outbounds before adding detailed rules. Clearly document local network exceptions and fallback outbounds; this is easier to maintain than simply adding more rules.

All three clients are open source, with different strengths

v2rayN is for desktop use, with GUI controls for subscription management, routing, and proxy modes. It suits users who want to review settings in one place. v2rayNG targets Android and uses the Xray core, combining connection settings with system VPN authorization. v2flyNG offers an Android option based on the V2Fly core. Choose based on your device, required core capabilities, and preferred workflow—not a single speed ranking.

Open source means you can inspect, use, and study code under each project's license. Requirements for redistribution and modification depend on the specific license. Clients, cores, and bundled resources may have different terms, so do not assume the whole ecosystem uses one license. Open-source code helps explain implementation and maintenance, but actual connections still depend on servers, network paths, configuration, and device environments; it does not guarantee performance in every use case.

Back up before updating; test under the same conditions afterward

GUI clients, cores, and rule resources each follow their own release schedules. Updates may change the interface, configuration conversion, protocol support, or system integration. If behavior changes, identify which layer changed. Before upgrading, save subscription groups, custom routing, and any important parameter notes. Afterward, reproduce the basic connection with the same app and destination before restoring advanced options. This helps avoid mistaking an environment change for an update effect.

When comparing two configurations, keep the device, network, and destination consistent where possible, and record the status of system proxy, TUN, and DNS. These setup guides provide a reproducible sequence of steps; latency figures without context are not a substitute for conclusions. For new fields, permission changes, or startup errors, read the full handbook and use logs to narrow down the cause. The glossary can help map terms between the client interface and core configuration.

Look up protocol, core, and routing terms →

Recent Setup Notes

Installation Permissions and Startup Logs

Guides cover everything from platform setup to configuration errors. First identify whether the issue involves system permissions, app startup, or a connection request, then choose the relevant article.

Download v2rayN