This guide is for anyone downloading v2rayN, migrating from WPF, or looking for a consistent workflow across Windows, macOS, and Linux. It breaks down the UI framework, proxy core, and system integration, then compares startup time, memory use, ports, and menu paths to help you choose.
First, Separate Avalonia, WPF, and the Proxy Core
The Avalonia and WPF editions of v2rayN are two desktop UI implementations, not two different proxy protocols. They handle windows, menus, the system tray, configuration editing, and system proxy controls. Connections using VMess, VLESS, and other protocols are established by the Xray or v2fly core invoked by the client. Choosing a UI edition does not automatically change the protocol parameters supported by a node.
WPF is a Windows desktop UI technology that integrates deeply with Windows window management, the system tray, and system settings. Avalonia uses a cross-platform UI framework, allowing the same core UI code to target Windows, macOS, and Linux, which makes it easier to keep the interaction model consistent across all three desktop systems.
| Comparison | Avalonia Edition | WPF Edition |
|---|---|---|
| Primary platforms | Windows、macOS、Linux | Windows |
| UI rendering | Cross-platform controls and rendering layer | Native Windows desktop controls |
| Configuration and subscriptions | Supports node, subscription, routing, and core management | Supports node, subscription, routing, and core management |
| System integration | Adapted to the capabilities of each platform | More mature Windows system tray and system proxy integration |
| Best for | Cross-platform use and a newer UI experience | Stable everyday use on Windows |
Bottom Line: Choose the UI Edition, Not the Protocol Name
When using VLESS, VMess, or REALITY nodes, first confirm that the core and server parameters match. The differences between Avalonia and WPF mainly concern the desktop UI, tray behavior, and how system proxy control is handled.
Why Avalonia Runs on macOS and Linux
Traditional WPF applications depend on the Windows graphics and desktop runtime, with windowing, input, and control behavior designed around Windows. Avalonia adds a cross-platform abstraction layer between application logic and the native window system, then connects separately to each platform’s display, input, clipboard, and notification services. This allows v2rayN to reuse core logic such as subscription management, node lists, and routing settings.
Cross-platform does not mean every system feature behaves identically. System proxy entry points, tray menus, startup options, and permission prompts are still determined by the operating system. Linux, for example, has many desktop environments and network configuration methods, so automatic system proxy setup may depend on the desktop session. On macOS, changing network proxy settings for the first time may trigger a system permission prompt.
- v2rayN manages nodes and subscription data, so similar editing workflows can be used across desktop systems.
- The Xray or v2fly core runs as a separate process. The UI controls the connection by generating configuration, starting the process, and reading its logs.
- The tray, notifications, and startup behavior are platform integration features. Differences in these areas do not mean the node configuration has changed.
- Routing rules still match domains, IP addresses, ports, and inbound tags; they are not determined by the UI rendering framework.
Recommended Approach: Evaluate the UI Separately from the Node Configuration
UI checks
- Is the system supported by this edition?
- Do the tray and system proxy work correctly?
- Are window scaling and fonts clear?
Connection checks
- Does the core version support the node protocol?
- Do the address, port, and transport parameters match?
- Do the routing rules allow the target traffic?
If the UI opens but the node times out, check the core logs and node parameters first instead of repeatedly switching between Avalonia and WPF.
Performance and Usability Differences on Windows
On Windows, both editions can import subscriptions, select nodes, start the core, and configure the system proxy. The practical performance difference is more likely to appear in UI startup time and resident resource usage than in proxy throughput. Proxy traffic is mainly forwarded by the core process, so with the same core, configuration, and network conditions, changing the UI framework usually does not noticeably affect node bandwidth.
The figures below come from a local observation on Windows 11 24H2 with 16 GB of memory and an x64 processor. The client was v2rayN 7.15.0 with 86 nodes, using Xray 25.6.8 throughout. Cold-start times are the median of five runs; memory was measured in Task Manager three minutes after startup. These figures illustrate the scale of the difference and should not be treated as fixed results for every device.
In this sample, WPF started faster and its UI process used less memory. Once the proxy was enabled, however, Xray resource usage was similar under both UIs. Downloading a 1 GB test file over the same local gigabit connection produced an average speed difference of under 3% across five runs. If the gap exceeds 20%, check node load, packet loss, routing, and transport settings first.
Bottom Line: Reduce UI Overhead on Older Devices
On a Windows device with only 4 GB or 8 GB of memory, and no need for a consistent cross-platform UI, start with WPF. With sufficient memory and plans to switch between desktop systems, Avalonia makes it easier to keep the same workflow.
Feature Rollout Timing and System Proxy Behavior
The main proxy features in both editions generally evolve from the same project logic, but UI refactoring, platform adaptation, and system API differences can affect the order in which features arrive. A menu appearing first in one edition does not mean the other edition cannot connect using that protocol. To determine whether a node will work, check the selected core version and generated configuration—not just whether a new shortcut appears in the window.
- Open “Settings” → “Parameter Settings” and check the local listening port, core path, and log level.
- Open the subscription group, update the subscription manually once, and confirm that the node count and group name are correct.
- Select a node and start the service, then check the core log for a successful listening message.
- Enable the system proxy, then test browser access and a local application that bypasses the proxy.
- Only after that, enable convenience features such as startup launch and automatic subscription updates, so multiple settings do not change at once.
Typical local settings use SOCKS port 10808 and HTTP port 10809 as examples. Some versions may support a unified mixed listener, while others retain separate ports. When configuring a proxy manually in a browser, the proxy type and port must match. If the browser uses 10809 with SOCKS selected, the connection will fail immediately.
SOCKS proxy: 127.0.0.1:10808
HTTP proxy: 127.0.0.1:10809
Check here: “Settings” → “Parameter Settings” → Local Listening
Choosing Between Windows, macOS, and Linux
Start with the operating system, then consider resource usage and cross-platform consistency. Windows users have two viable options; macOS and Linux users should start with the Avalonia edition. Do not install a build that does not fit your current system just to reproduce the menus in someone else’s screenshot.
Avalonia Edition
RecommendedSupports Windows, macOS, and Linux, with a largely consistent workflow for nodes, subscriptions, routing, and logs. A good fit for users who work across desktop systems.
Best for: Cross-platform devices, first-time users, and anyone who wants the newer UI
WPF Edition
Focused on the Windows desktop, with mature tray and system proxy behavior and lighter startup on some lower-spec devices.
Best for: Windows-only use, existing configurations, and lower UI overhead
Stay with the Current Edition
If the current edition is stable, subscriptions update normally, and the core supports your current nodes, keep the existing configuration for now and migrate when you need a new feature.
Best for: Production environments, fixed routing rules, and systems you do not plan to change soon
On Windows 10 or Windows 11, if WPF is working without window-scaling, tray, or system proxy issues, there is no need to migrate immediately just for a UI change. New installations can start with Avalonia; if high-DPI scaling, input methods, or tray behavior do not suit your workflow, switch to WPF for comparison.
When using Avalonia on macOS or Linux, verify separately that the system proxy is actually taking effect. The most direct method is to start a node, check the v2rayN log, and then test with both a browser and a terminal application. If only the browser works, the application may not be reading the system proxy. If every application fails, check core startup, port listening, and node connectivity.
A Safe Migration Path from WPF to Avalonia
The goal of migration is not to add every node again, but to preserve subscription sources, routing rules, and custom parameters while preventing both clients from competing for the same local port. Record the settings first, close the old edition, and then start the new edition for verification. Do not let both UIs control the system proxy at the same time.
- In the WPF edition, record the current subscription groups, default node, routing mode, and local ports.
- Open “Settings” → “Parameter Settings” and note the SOCKS, HTTP, or mixed-listening port.
- Exit the WPF edition and confirm that its tray icon has disappeared, so the old core does not continue using
10808or10809. - Start the Avalonia edition, import the subscription again, and manually update it once.
- Restore LAN bypass, domain-based routing, and custom routing rules as needed.
- Select a known working node, test latency first, then test websites, downloads, and local direct-connection addresses.
- After confirming stable continuous operation, enable startup launch and automatic subscription updates.
After migration, use three results to confirm success: the node count remains consistent after updating the subscription; the core log reports that the listening port started successfully; and, with the system proxy enabled, browser access and local direct-connection rules behave as expected. If only the latency test fails while websites still open, check the test target and whether it uses ICMP or TCP testing before deleting nodes based on a single latency column.
Common Version-Choice Questions
Version selection is often confused with node failures. The following cases can be handled with a consistent checklist; there is no need to keep reinstalling both editions.
Which edition should I install first on a new Windows PC?
Try Avalonia first. Import the subscription, open “Settings” → “Parameter Settings” to confirm the local port, and then enable the system proxy. If the tray, scaling, or input behavior does not suit your environment, switch to WPF.
Is the UI framework responsible if speeds drop after switching to Avalonia?
First confirm that both editions use the same node, Xray version, and routing rules. Then disable Mux for comparison and run three tests in the same time period. If the difference exceeds 20%, focus on routing matches, DNS, and the core configuration.
The node shows as started, but websites will not open. What should I do?
First check the core log for a listener at 127.0.0.1:10808, then confirm that the system proxy is enabled. For manual proxy applications, verify the proxy type: HTTP usually uses 10809, while SOCKS usually uses 10808.
Can both editions be kept installed?
Yes, but do not run them at the same time. If both listen on the same port, a port conflict will occur. If both modify the system proxy, closing one may also leave the proxy in a state different from what you expect.
How can I check why the node counts differ after importing a subscription?
Manually update the same subscription in both editions and compare the subscription URL, group filters, and invalid-node cleanup settings. If the update times out, connect through a working node first, enable updating the subscription through the proxy, and try again.
In short: if you use Windows only and value mature system integration with lower UI overhead, WPF remains a good choice. If you need macOS or Linux, or want a similar UI across all three desktop systems, choose Avalonia. Whichever edition you choose, protocol compatibility, connection speed, and stability ultimately depend on the core version, node quality, network conditions, and routing configuration.