At a glance

Start with your operating system, then choose based on your preferences. The Avalonia desktop version supports Windows, macOS, and Linux; the WPF version is for Windows. The interface framework is separate from the proxy core, and switching interfaces won't make your nodes faster. This guide covers platform support, features, and migration checks for anyone choosing a download, moving from the classic interface, or using v2rayN across desktop operating systems.

Know the difference between the interface and the proxy core

Avalonia and WPF power desktop interfaces such as windows, menus, and server lists. WPF is a Windows desktop UI technology; Avalonia supports cross-platform interfaces. Neither is a proxy protocol like VMess or VLESS, nor a proxy core like V2Ray or Xray. An Avalonia download doesn't mean you need a different subscription format.

v2rayN manages server configurations, subscriptions, and runtime settings, then calls the appropriate core to handle connections. Protocol and transport support depends on both the configuration options in your v2rayN version and the capabilities of the selected core. Don't judge protocol compatibility by the interface, or mistake the two interfaces for different network routes.

2
desktop interface frameworks compared in this guide
3
desktop operating systems supported by Avalonia
10808
example listening port used for migration checks

Choose by operating system: Windows, macOS, or Linux

First, check your operating system and processor architecture. On Windows, open “Settings” → “System” → “About” and check “System type” to distinguish x64 from ARM64. On macOS, check the chip information under “About This Mac.” On Linux, run uname -m to check the architecture. Choosing the right framework but the wrong architecture can still prevent installation or startup.

Avalonia desktop version

Recommended

The recommended starting point for cross-platform use. Switch between Windows, macOS, and Linux with a similar approach to managing servers, but download the release for the correct operating system and architecture.

Best for: first-time users, cross-platform workflows, and anyone who prefers a consistent desktop interface.

WPF version

The classic interface option for Windows. If your current workflow is working well, keep using it while you evaluate a migration. The Windows version won't run directly on other desktop operating systems.

Best for: Windows users who prefer the classic layout or need to keep using an existing configuration.

Windows 11 users don't need to rule out WPF just because they're running a newer OS. WPF isn't automatically the best fit for every older system, either: support depends on the specific release, runtime, and core requirements. Check the release notes before downloading, rather than guessing the minimum OS version from the framework name.

On macOS and Linux, choose the Avalonia package for your platform. On Linux, also check the package format and desktop dependencies. Seeing the window launch only confirms that the interface is running; system proxy settings, the tray, and TUN permissions may still need configuration.

Compare the interface, features, and network performance

The two interfaces may differ in list density, settings layout, keyboard shortcuts, and tray behavior. Check high-DPI clarity and button layouts at your system's scaling level in the specific version you're using. Don't attribute a single display issue to the framework as a whole, or assume every control is in the same place in both interfaces.

Check Avalonia desktop version WPF version
Platform availability Choose a package for Windows, macOS, or Linux Choose the package for your Windows architecture
Subscription management Check subscription groups, update controls, and import results Check existing groups and current update settings
Protocol configuration Depends on both client configuration support and core capabilities Check the client and core versions, too
System integration Test proxy settings, tray behavior, and permissions on each OS Test the Windows system proxy and tray controls
Performance Separate interface resource usage from core traffic handling Compare using the same node and test conditions

Subscription imports, server selection, system proxy settings, and split routing are workflows to verify when choosing a version—not a promise that every feature is identical across releases. New options may differ in location, configuration fields, or implementation status. If you can't find a setting, check the current version's settings and documentation before switching versions.

  • Compare interface resource usage: Close the other instance, use the same number of nodes, and check the interface and core processes separately in Windows Task Manager. Don't conflate them into a single metric.
  • Compare network performance: Keep the node, core, routing rules, DNS, and test destination the same. Changes in node load or route can mask interface differences.
  • Check TUN: Verify the required permissions, core, and routing behavior separately. TUN is more than an interface toggle, and an enabled toggle alone doesn't confirm that all traffic is being handled as expected.

Migrate settings: back up first, then verify each one

The goal of migration is to recreate a working configuration, not overwrite the old directory with a new program. Fully exit the old instance, then use the backup or export option in your current version to save your settings. If you use a portable directory, copy it somewhere safe after exiting. Configurations may contain subscription URLs, server credentials, and usage history, so store them securely.

Migration plan: test separately and keep a rollback option

Test the new version
  • Use a separate program directory and make sure it isn't sharing the same active configuration.
  • Import one known-good node first, then add your subscription groups.
  • Check listening ports, core selection, routing, and DNS.
  • Test the standard system proxy first, then try TUN if needed.
Keep the old version for rollback
  • Keep a backup of the configuration and the original program directory after exiting.
  • Disable startup for the old instance during testing.
  • Don't let both clients change the system proxy at the same time.
  • Before rolling back, exit the new instance and restore the original proxy settings.

Separate program directories don't necessarily mean separate data directories. If both versions share a user configuration location, test them one at a time and keep a backup before switching.

  1. Record your current settings. Check the local listening port under “Settings” → “Parameter Settings.” Note the active server, routing choice, and system proxy status. If menu names differ, look for the corresponding settings.
  2. Set up the subscription again. Go to “Subscription Groups” → “Subscription Group Settings,” add the original subscription URL, save, and update. A subscription provides server data; it doesn't automatically migrate local DNS, shortcuts, or routing settings.
  3. Check for port conflicts. If the old instance listens on 10808, exit it before testing the new one. If you need to run both for diagnostics, assign the new instance an unused port, such as 10818, and update any proxy addresses entered manually in other apps.
  4. Recreate your actual workflow. Select the active server and set the required option from the “System Proxy” menu. Test browsers, development tools, and other apps individually; don't rely on node latency tests alone.
  5. Enable startup last. Once connection, resume from sleep, and restart tests pass, enable startup for the new instance. This prevents the old instance from taking over the proxy at your next sign-in.

Don't assume the two interfaces' databases or configuration files are interchangeable. Use a full migration only when the current version explicitly supports the import or restore method. If restoring across versions fails, rebuild a minimal working setup from your subscription and nodes, then restore local rules one by one.

Troubleshoot connection problems after switching versions

If your nodes are still listed but websites won't load after switching versions, check the proxy setup before changing frameworks. First make sure the client has started its core, then check the system proxy and any manually configured app proxies. The system proxy only affects apps that honor that setting; it doesn't mean every program is being routed through the client.

On Windows, use the command below to find the process listening on the example port. If there's no output, check the actual port and startup logs in the client. If there is output, confirm that the PID belongs to the expected instance. Only consider closing a process after confirming what it's for.

netstat -ano | findstr LISTENING | findstr :10808
tasklist /FI "PID eq 4321"
  • Browser works, but other apps don't: Check whether the target app uses the system proxy. For apps that support manual proxy settings, enter the actual address and port. Consider TUN for other routing needs.
  • Domains fail, but direct connections behave differently: Check DNS and routing in the new instance, including the different resolution paths for direct and proxied connections. Don't mask the problem by disabling security checks.
  • Connection drops when you close the window: Check whether closing the window exits the client, then see if the system proxy still points to a local port that is no longer running.

For help comparing modes, see the system proxy mode guide. For system-wide traffic routing, check permissions and routing in the TUN settings. Test these separately to avoid changing too many settings at once and making the cause harder to find.

Frequently asked questions about choosing a version

Which interface should I choose for my first time using v2rayN on Windows 11?

Start with the Avalonia desktop version and download the package for your system architecture. Then import your subscription and verify the system proxy. If you're already comfortable with the classic interface, you can choose WPF instead. Check that the features you need are available; there's no need to switch back and forth just for the framework name.

Do I need to buy a new subscription to switch from WPF to Avalonia?

Switching interfaces doesn't require a new subscription. Go to “Subscription Groups” → “Subscription Group Settings” and import the valid URL provided by your service. Check your subscription account rules for device limits and simultaneous connections.

Will switching interfaces make the same node faster?

You can't tell from the interface framework alone. Test with the same node, core, and routing, and compare DNS and proxy modes in both versions. If the configurations differ, you can't attribute the results directly to Avalonia or WPF.

Can I keep both versions on the same computer?

You can keep one for rollback, but first check where the data is stored and back it up. Run only one version for everyday use. During testing, avoid sharing a listening port and make sure only one instance controls the system proxy and TUN. Check startup settings when you're done.

What if menus on macOS or Linux don't match the tutorial?

First, confirm which interface and version the tutorial covers. Look for features such as “Subscription Groups,” “Parameter Settings,” “System Proxy,” and “Routing Settings” instead of following Windows-specific steps. Tray support and how the proxy takes effect can also vary by desktop environment.

Download v2rayN for Windows

Choose a download for your operating system and architecture, then follow the guide to import your subscription and verify the proxy.