Client Selection / Platforms and Cores

V2Ray Client Comparisonv2rayN, v2rayNG, and v2flyNG

Choose a client for your device first, then check that its core supports your protocol. v2rayN is our top desktop pick, v2rayNG is our top Android pick, and v2flyNG is worth considering if you already use a V2Fly configuration.

How do the three clients differ?

The key differences are platform support and core—not any guarantee of faster connections. Performance also depends on your network route, server configuration, protocol settings, and routing rules. Switching interfaces won't remove those constraints.

Compare v2rayN, v2rayNG, and v2flyNG by platform, core, and how they work
What to compare v2rayN v2rayNG v2flyNG
Platform support Windows、macOS、Linux Android Android
Core options Usually Xray; V2Fly may also be available. Integration and switching options depend on the release package. Xray V2Fly
Maintenance Actively maintained; distinguish the cross-platform interface from the classic WPF interface. Actively maintained; features vary with client and core updates. Check the project's latest release notes, and confirm system and protocol compatibility before choosing.
Learning curve Basic imports are straightforward; desktop proxy modes take some additional learning. Core features are easy to find; Android requires VPN permission for the first connection. Similar to other Android clients, but check V2Fly compatibility first.
Subscription management Organize servers into groups and update them by subscription. Manage multiple subscription sources for easy updates and switching on your phone. Manage subscription sources; imported fields must be supported by the selected core.
Routing interface A full-featured interface for editing and ordering rules in one place. Routing settings are available, but complex rules require an understanding of matching and outbound tags. Routing settings are available, but Xray-specific fields can't be copied over as-is.
TUN / traffic routing TUN mode is supported; check permissions, dependencies, and platform-specific behavior. Routes traffic through Android's VPN interface; this isn't the same as a desktop TUN toggle. Routes traffic through Android's VPN interface and is subject to background restrictions.
Best for Everyday desktop use, subscription management, traffic routing, and users on multiple platforms. Everyday Android use, per-app routing, and users who need Xray protocols. Android users with existing V2Fly configurations who need to check V2Fly behavior.

The table describes general feature support; older release packages may differ. Maintenance and compatibility change over time, so read the documentation for your chosen package before installing.

v2rayN: Desktop Subscriptions and Routing

Top desktop pick

Why choose it for desktop?

v2rayN is a solid first choice for desktop users. Its GUI brings server lists, subscription groups, routing settings, and logs together, so you can review settings and monitor connection results in one place. If you manage several subscription sources, organize them into groups and troubleshoot specific rules instead of repeatedly editing the entire configuration.

Choose a package that matches your platform. On Windows, the cross-platform desktop edition and classic WPF edition are different interface and runtime options—not different proxy protocols. On macOS and Linux, choose a release built for your platform and processor architecture. Button labels and permission prompts may also differ between platforms.

What will you need to learn?

Start by distinguishing system proxy settings, routing rules, and TUN. A system proxy affects only apps that honor those settings. Routing rules determine how connections are handled once they reach the core. TUN captures a wider range of traffic. These work at different levels, so enabling the system proxy doesn't mean every app is routed through the core.

Get a basic connection working before trying TUN. If you change DNS, rules, and traffic capture all at once, it's hard to pinpoint what went wrong. When switching between V2Fly and Xray, keep the original configuration and check which core actually starts. Being able to select different cores doesn't mean they support all the same extension fields.

Routing, DNS, and TUN configuration guides

v2rayNG: Everyday Android Connections and Per-App Routing

Top Android pick

Why choose it for your phone?

v2rayNG is a solid first choice for Android users. It runs on the Xray core and brings subscription imports, server selection, and connection controls together in a mobile-friendly interface. The first time you connect, Android asks for VPN permission. This creates a local traffic-routing tunnel; it doesn't confirm that the remote server has connected successfully.

On Android, routing depends on both the apps included and the destination address. Choosing which apps use the tunnel is different from routing connections by domain or IP address. If an app behaves unexpectedly, first check whether it's included in traffic capture, then review the core's routing rules. Don't change domain rules without checking app exclusions.

How can you assess background reliability?

Check system restrictions before blaming the client. Battery optimization, background app cleanup, and other active VPN apps can all interrupt connections. If the connection drops only when the screen is locked, check background permissions first. If it also fails in the foreground, investigate logs, subscription settings, and network connectivity instead of loosening battery restrictions further.

If you need a specific Xray feature, check that the client's built-in core supports the required settings. Being able to enter a value in the interface doesn't guarantee the server-side configuration is valid. If you're new to this, start with the complete settings from your subscription and establish a working baseline before adding custom routing or DNS settings.

Android client options

v2flyNG: An Android Alternative for V2Fly Configurations

Choose v2flyNG when you have a specific need for the V2Fly core. It's suited to users with existing V2Fly configurations who need to check routing or protocol behavior. The two Android clients may feel similar, but a familiar interface doesn't erase differences between cores—especially when it comes to Xray-specific extensions that V2Fly may not support.

If your subscription only provides a link and doesn't specify a required core, first check its protocol and transport settings. Names like VMess and VLESS are just a starting point; the transport, security layer, and other fields also affect the connection. For everyday use, if you don't specifically need V2Fly, v2rayNG makes it easier to troubleshoot using the same Xray settings.

Before installing, read the latest release notes and system requirements. Don't infer maintenance activity from the app's name, or assume a different core will work better on an older device. If you're switching clients to troubleshoot compatibility, keep your original settings, change one thing at a time, and compare the specific errors in the logs. A one-off successful connection isn't enough to decide which client is right for you.

Which client fits your use case?

Start with the scenario closest to what you need. More features don't necessarily make setup easier. A configuration you can understand and maintain is usually the better choice for long-term use.

What should you check before downloading?

  1. Check your device and package format. On Windows, choose between the desktop and WPF editions. For macOS, check whether you need Apple Silicon or Intel. On Linux, choose deb or rpm for your distribution. On Android, select an arm64 or universal package for your device. The package must also meet the specific system requirements.
  2. Make sure you have a working subscription. A client is a configuration and connection tool; installing it won't provide servers. Check that your subscription source is trustworthy, and never post a link containing access credentials in a public forum.
  3. Check protocol requirements. Start with the core features required by the server, then check whether the client provides the necessary settings. If an import drops fields or a connection fails, keep the error type from the logs—but remove subscription URLs, server addresses, and credentials before sharing them.
  4. Check how traffic is routed. Desktop system proxy and TUN modes aren't identical to Android's VPN interface. Test the target apps and DNS behavior separately. If a website loads in your browser, that only confirms that the browser's current route works.
Will switching clients fix every timeout?

No. Switching interfaces usually won't help if the server is unreachable, the subscription has expired, or TLS settings don't match. First check your device's clock, refresh the subscription, and review the core logs. Then see whether the issue is specific to a particular core. Switch clients as a targeted test only when implementation differences could be the cause.

Can I use the same routing rules in all three clients?

Not necessarily. You may be able to reuse the logic, but clients can differ in how they store rules, name outbound tags, represent core fields, and locate resource files. Recreate the rules in the target client, confirm that direct, proxy, and block outbounds are available, and test a specific domain to see which rule matches.

Picked a client? What next?

Go to the client downloads page and choose a package for your platform. v2rayN is our top desktop pick, and v2rayNG is our top Android pick. Choose v2flyNG if you need the V2Fly core. After installing, follow the quick-start guide to import your configuration, connect, and verify the setup.