Choosing a V2Ray Client

v2rayN / v2rayNG
vs. v2flyNG

For desktop, start with v2rayN; for Android, start with v2rayNG. Consider v2flyNG if you specifically need a V2Fly setup. Narrow down by operating system, then check protocol support, routing, and how traffic is handled.

Platforms and architecture Xray / V2Fly Subscription groups Traffic routing

Compare platforms, cores, and features

Use this table as a guide, not a guarantee that every package includes the same settings. Interface labels, core capabilities, and permission requirements vary by version. On smaller screens, scroll the table horizontally.

Compare v2rayN, v2rayNG, and v2flyNG by platform, core, maintenance, and use case
Comparison v2rayN v2rayNG v2flyNG
Platforms Windows、macOS、Linux Android Android
Core options Supports Xray; available cores and defaults vary by platform, version, and configuration type Xray V2Fly, also commonly written as v2fly
Maintenance Actively maintained; check differences between the desktop and WPF editions before upgrading Actively maintained; check Android compatibility and core changes before upgrading Community-maintained; check recent release notes and configuration compatibility before use
Getting started Straightforward to import a basic setup; advanced routing and TUN require more know-how Easy to get started; the first connection requires Android VPN permission Similar basic workflow; first confirm that the server settings are compatible with V2Fly
Subscription groups Well suited to managing multiple subscription sources, groups, and updates in one desktop app Manages subscription configurations for easy importing and switching on a phone Manages subscription configurations; check which protocol formats the source provides
Routing interface Visual rule management makes it easy to review rule order and outbound routes Routing settings support split routing by domain, address, and app Routing settings are available; rule support depends on the V2Fly core
TUN and traffic handling Offers TUN mode; availability depends on system permissions and the selected core Handles traffic through the Android VPN interface; the setup differs from desktop TUN Handles traffic through the Android VPN interface and requires system permission
Key strengths Subscription groups, desktop routing, system proxy, and TUN controls Everyday Android connections, per-app routing, and Xray configuration support Works with V2Fly configurations and the related core ecosystem
Best for Desktop beginners, developers, and anyone who manages rules centrally Android beginners and users with Xray-based configurations Android users who specifically need the V2Fly core

Desktop client

v2rayN: manage subscriptions and routing in one place

Top desktop pick

If you mainly use a computer, start with v2rayN. It supports Windows, macOS, and Linux, with a larger interface for reviewing subscription groups, editing routing rules, and checking logs. If you're new to proxy configuration, begin by importing a config, selecting it, choosing an appropriate way to handle traffic, and testing access. There's no need to enable every advanced feature at once.

Choosing between the desktop and classic WPF editions

The Windows download page offers the desktop and classic WPF editions. The desktop edition uses a newer cross-platform interface, while WPF has the classic layout. Both are v2rayN, but menus, workflows, and some settings may differ. If you're new, start with the desktop edition. If you're familiar with WPF and want to keep the same workflow, choose the classic edition. Don't rely on screenshots from the other edition to find a button; look for the setting by name.

Room to add routing rules as you go

If you use multiple subscription sources, keep them in separate groups to avoid mixing imported configs with your own when updating. Start with a few clearly defined routing rules; check their order and outbound routes before expanding them. If a browser works but other desktop apps don't, the issue may not be the server: some apps ignore the system proxy. Configure those apps separately, or consider TUN after understanding its permissions and DNS implications.

v2rayN brings management tools together; it doesn't make every configuration compatible automatically. After switching cores, check the protocol, security settings, and transport. Test the basic connection before enabling TUN so you can distinguish a server-side configuration issue from a system traffic-capture issue.

Android · Xray

v2rayNG: everyday Android connections and per-app routing

Top Android pick

For Android phones, start with v2rayNG. It uses the Xray core and puts subscription import, config selection, and connection controls in a mobile-friendly interface. If your server requires Xray or your configuration uses VLESS and REALITY, check that the bundled core supports the exact parameter combination. That matters more than the protocol names alone.

Grant system permission before connecting

The Android VPN permission prompt is part of the traffic-capture process. Once you grant permission, the client can handle app traffic through the system interface. Android generally allows only one standard VPN service at a time, so check which one is active if another VPN is already running. A VPN icon in the status bar only confirms that the system service is connected; test the actual connection by opening the destination you need.

Check background activity and per-app settings

If the connection drops when the screen locks, check battery restrictions, background permissions, and network changes before replacing your subscription. Per-app routing lets you handle work apps separately, but make sure you know whether the setting means “proxy selected apps only” or “bypass selected apps”—they do the opposite. Reconnect after changing the setting, then test the relevant apps.

Subscription updates can bring in changes from the source, but they don't replace local settings management. Check routing, app selection, and background permissions separately on your phone. To get started, keep it simple: use configs from one trusted source, confirm the connection is stable, and then add per-app routing or custom rules.

Browse v2rayNG Android packages →

Android · V2Fly

v2flyNG: for configurations that require V2Fly

Alternative core

v2flyNG is a better fit for Android users who have confirmed they need the V2Fly core—for example, when an existing configuration explicitly targets V2Fly or when they need to reproduce behavior within the same core family. It's not a drop-in alternative ranked by “lighter” or “faster,” nor the default choice for older phones. Actual resource use depends on the transport, rule set, concurrent connections, and background conditions.

Shared protocol names don't guarantee identical parameters

Project V is the starting point for a related proxy technology ecosystem. V2Fly and Xray are separate core projects with their own implementations and development paths. GUI clients organize settings, generate configurations, and run a core. A client recognizing a share link doesn't mean its core supports every extension parameter in that link. When moving from Xray, pay particular attention to security features, transport settings, and what each field means.

Before choosing v2flyNG, confirm that your subscription source provides a configuration format supported by V2Fly. If a configuration explicitly relies on Xray's REALITY implementation, repeatedly changing the import method won't resolve a difference in core capabilities. Instead, use a compatible client or ask the configuration provider for an appropriate option.

All three are part of the open-source GUI client ecosystem, but clients and cores follow different release schedules. Maintenance status can inform your choice, but it can't replace compatibility checks. Before upgrading, read the release notes, keep a backup of your local settings, and test with a few known-good configurations before returning to everyday use.

Explore the v2flyNG Android alternative →

Choose by use case

The same client can work for beginners and experienced users alike. Your device, configuration requirements, and which apps need their traffic handled matter more than the number of feature switches.

What to check before downloading

  1. Choose your platform. Use v2rayN on desktop; choose v2rayNG for Android, or v2flyNG if you specifically need V2Fly.
  2. Check architecture and package type. For macOS, choose Apple Silicon or Intel. On Linux, select deb or rpm for your distribution and check your processor architecture. For Android, choose a package supported by your device.
  3. Check configuration support. Review protocol, security settings, transport, and core requirements. A successful import doesn't guarantee compatibility.
  4. Enable features in stages. Once the basic connection works, configure split routing, TUN, or app selection. Change one type of setting at a time and keep a configuration you can restore.

Bottom line: choose by platform, then check the core

If you don't have special configuration requirements, start with v2rayN on desktop or v2rayNG on Android. Reserve v2flyNG for Android setups that specifically need the V2Fly core. The client downloads page lists packages and selection guidance for each platform.

Choose a package on the downloads page

Common misconceptions when choosing a client

Will switching clients lower latency?

Not necessarily. Latency depends on the network path, remote server load, protocol, and how you test. For a fair comparison, use the same remote configuration, similar test times, and the same method. Rule out routing and DNS differences before attributing a change to the client or core.

Can all three clients use the same subscription?

It depends on the subscription format and protocol parameters. Shared link formats may import successfully, but core-specific extensions, routing files, and local settings aren't guaranteed to work across clients. When migrating, test a small number of configurations first. Don't send subscription URLs containing sensitive connection details to unknown conversion services.

Do you need TUN for everyday use?

No. On desktop, start with the system proxy or enter a proxy address in apps that support it. Consider TUN when you need to handle traffic from apps that ignore the system proxy. On Android, connect through the client's system VPN permission flow; the steps aren't the same as on desktop.

Should you delete your old configuration when switching clients?

Keep a backup, stop the old client from handling traffic, and then test the new one. Don't let two clients change the system proxy at the same time or compete for the VPN service. Once subscriptions, routing, and everyday apps all work, remove settings you no longer need. Keeping a backup gives you a way to roll back.