Install v2rayN on Windows: Complete Guide to the Desktop and WPF Editions, with Common Fixes

Follow the complete Windows setup, from downloading and extracting v2rayN to launching it and importing a subscription. Includes edition recommendations and fixes for missing runtimes and system proxy issues.

v2rayN is a graphical Windows desktop client for managing subscriptions, nodes, routing rules, the system proxy, and core programs such as Xray. For first-time users, the most common mistakes usually involve choosing the wrong package, missing a required runtime, failing to update a subscription, or selecting a node without enabling the system proxy. This guide uses the Chinese interface in v2rayN 7.13.3 as its reference. The same steps apply to Windows 10 and Windows 11.

Quick overview

For Windows users configuring v2rayN for the first time, choosing between the Desktop and WPF editions, or troubleshooting issues such as the app not opening, an empty subscription list, or an inactive system proxy. By the end, you can independently download, extract, select a core, update subscriptions, test nodes, and verify proxy traffic.

Choosing between the Desktop and WPF editions

On the download page, “Desktop edition” generally refers to the Avalonia-based build, while the “WPF edition” uses Windows’ built-in WPF desktop technology. Both manage the same types of subscriptions and proxy cores, with broadly the same support for VMess, VLESS, subscription updates, split routing, and the system proxy. Choose based on your Windows environment and interface compatibility, not as if they were separate protocol stacks.

Recommended approach: choose the interface build that matches your system

Desktop edition (Avalonia)
  • Best for 64-bit Windows 10 and Windows 11 systems
  • Newer layout with more consistent behavior on high-resolution displays
  • The preferred choice for first-time setup or a new device
  • If it behaves unexpectedly, try the self-contained package to rule out runtime issues
Classic WPF edition
  • Best for users already familiar with the traditional v2rayN interface
  • Menu layout is close to older releases, reducing the learning curve
  • Often easier to use in some remote desktop or custom scaling environments
  • The framework-dependent build requires the matching .NET Desktop Runtime

For a new Windows 11 device, start with the Desktop edition. Consider WPF when carrying over an existing setup, dealing with display issues over remote desktop, or preferring the traditional menus.

The x64 and ARM64 labels in package names indicate the processor architecture. Choose x64 for most Intel- or AMD-based PCs; select ARM64 only for Windows devices with an ARM processor. Do not rely on the system’s visual appearance alone. Open Settings → System → About and check System type. If it says “x64-based processor,” use the x64 package.

Download, extract, and launch for the first time

v2rayN is usually distributed as a compressed archive. Extract the entire archive to a fixed folder before launching the main program. Double-clicking it inside a compression utility’s preview window may release dependencies into a temporary cache; after the utility closes, core files may be missing, settings may not save, or updates may fail. Use a short path such as D:\Tools\v2rayN, and avoid folders that are synced frequently.

  1. Download the package

    Visit the download page and choose the Desktop or WPF edition based on your Windows processor architecture. If you are unsure whether the runtime is installed, choose the matching self-contained package.

  2. Extract the complete archive

    Right-click the archive and choose “Extract all.” You can use D:\Tools\v2rayN as the destination. Make sure the folder contains multiple dependency files and subdirectories in addition to the main program.

  3. Run it for the first time

    Double-click the main program. If Windows displays a confirmation dialog about the file’s source, verify the filename and download source before continuing. After launch, the client icon should appear in the taskbar notification area.

  4. Select a core

    Open Settings → Parameters → Core type. For everyday VLESS or VMess use, select Xray, save the change, and return to the main window.

  5. Check the ports

    Open Settings → Parameters and check the local listeners. The common SOCKS port is 10808 and the common HTTP port is 10809. If another program is using either port, choose an unused port instead.

  6. Save the configuration

    Confirm the settings and close the parameters window. Do not enable the proxy yet. Import the subscription and test a node first so unverified settings do not redirect system traffic.

If no main window appears after launch, that does not necessarily mean startup failed. Check the notification area on the right side of the taskbar; click the up arrow to reveal hidden icons if needed, then double-click the v2rayN icon. If v2rayN is already listed in Task Manager, repeated double-clicks will activate the existing instance rather than create additional main windows.

How to identify a missing runtime

  • A clear .NET Desktop Runtime prompt appears: install the runtime matching the program architecture, or switch to the self-contained package for the same version.
  • The process exits immediately after double-clicking: check the logs in the program folder, then verify that security policies have not blocked the main program or a core subprocess.
  • The main window opens but the node fails to start: check that the core files are complete, then go to Settings → Parameters → Core type and select the core again.
  • The extracted folder contains far fewer files than expected: extract the complete archive again instead of copying only the main program.

Import a subscription and make the first connection

A subscription link is not an ordinary web address. It is a configuration endpoint generated by the service provider. After v2rayN reads it, the VMess, VLESS, and other nodes are added to the current subscription group. Importing the link only registers the subscription; you must also run an update before the nodes appear in the main list.

7.13.3
Reference interface version for this guide
10808
Common SOCKS listener port
10809
Common HTTP listener port
30 seconds
Suggested timeout limit for a single-node latency test
  1. Copy the complete subscription link. Make sure it does not include leading or trailing spaces, line breaks, or explanatory text added by a chat app.
  2. In the main window, open Subscription groups → Subscription group settings, then click the Add button.
  3. Enter an easy-to-recognize alias, paste the link into the subscription URL field, and save the settings.
  4. Open Subscription groups → Update all subscriptions (without proxy). If the current network cannot update directly, choose the proxy update option instead.
  5. Once the nodes appear, run a latency test or an actual connection test. Then select a responsive node as the active server.
  6. Right-click the target node and set it as the active server. Confirm that the status bar shows the corresponding node name.

A latency test only shows whether the target address responds within the specified time; it does not by itself prove that web access will work. Some servers restrict probe requests while still allowing proxy connections. A low latency value can also coexist with unstable download speeds. When choosing a node, check latency, connection logs, and actual page-loading results together.

Enable the system proxy and verify traffic

Selecting a node and enabling the system proxy are separate actions. The first tells v2rayN which outbound connection to use; the second sends traffic from apps that follow Windows proxy settings to the local listener. The most common reason a browser cannot open pages despite a node showing latency is that the active server was selected but the system proxy mode was never enabled.

  • Clear system proxy: Restores Windows proxy settings. Use this before exiting or while troubleshooting the network.
  • Auto-configure system proxy: v2rayN writes the local proxy address into Windows settings. This works well for standard browsers and desktop apps that follow system settings.
  • Do not change system proxy: Runs only the local listener. Use this when manually pointing an app to 127.0.0.1:10808 or 127.0.0.1:10809.
  • Routing mode: Determines whether connections entering the core use proxy, direct, or blocked outbound traffic. It is separate from the Windows system proxy switch.

First right-click the notification-area icon and choose “Auto-configure system proxy,” then open a new browser window for testing. Apps already running may cache the old proxy state, so fully quitting and reopening them is more reliable than repeatedly refreshing. If your company network enforces a proxy, note the original address and port first, then restore them after testing.

Use port status to locate problems

netstat -ano | findstr :10808
netstat -ano | findstr :10809
tasklist /fi "PID eq process ID"

The first two commands confirm whether the local ports are listening. When the result shows LISTENING, note the PID at the end and use the third command to look up the process name. If the PID belongs to a core process launched by v2rayN, the local entry point is ready. If it belongs to another program, close the process using the port, or open Settings → Parameters and change the local ports to unused values such as 10810 or 10811.

Work through common problems

Troubleshoot in this order: program process → local listener → core logs → subscription nodes → system proxy → application cache. This quickly distinguishes an inactive client, a missing port listener, a failed remote handshake, and a browser that is not reading system settings. There is no need to delete all configuration files at the outset.

Why is there no window after double-clicking the program?

Expand the taskbar notification area and double-click the v2rayN icon, then open Task Manager to check whether a process already exists. If the process disappears immediately after launch, switch to a self-contained package with the same architecture and inspect the startup logs in the program folder.

Why is the list still empty after adding a subscription?

Adding a subscription only saves its URL. You must also select Subscription groups → Update all subscriptions. If the update fails, check the link, system time, and status details in the log, then decide whether to update through the proxy based on the current network.

Why can’t a webpage open when the node has latency?

Confirm that the target node is set as the active server, then right-click the notification-area icon and enable “Auto-configure system proxy.” Reopen the browser and test again. Also check the core log for handshake failures, DNS resolution failures, or connection timeouts.

What should I do when the core reports that a port is already in use?

Use netstat -ano to find the PIDs using ports 10808 and 10809. Close the conflicting process, or open Settings → Parameters and change the local listener ports. Save the settings, restart the core, and update the proxy ports in other applications.

What if my original settings disappear after updating v2rayN?

First check whether the new version was extracted into a different folder. Exit the client, copy the configuration data from the old folder to the new one according to the version migration instructions, then launch it and verify the settings. Do not overwrite configuration files while the program is running.

The system proxy keeps turning itself off

First make sure v2rayN did not exit unexpectedly. A failed core connection normally does not remove the system proxy, but exiting the main program, switching to clear mode, or another network tool rewriting Windows proxy settings can change its state. Open Settings → Network & Internet → Proxy and check whether “Use a proxy server” changes along with v2rayN’s mode.

If Windows shows the correct proxy address but one application still connects directly, check whether that app has its own proxy setting. Some programs read system settings only at startup and must be fully quit before restarting. Other command-line programs do not read the Windows system proxy by default and require a separate HTTP or SOCKS address.

Update, back up, and use v2rayN in the right order

After the initial setup, avoid changing several parameters just to chase a superficially “faster” connection. Reliable use depends more on a clear update order: back up first, update the client or core, update the subscription, then check routing rules and the actual connection. Change one thing at a time so you can roll back accurately when something goes wrong.

  • Before updating the client: Exit v2rayN, copy the configuration data from the current program folder to a separate backup folder, and record the current local ports.
  • When updating the program: Confirm that the old and new packages use the same architecture. Do not mix WPF and Desktop edition files in the same folder.
  • After updating the subscription: Check that the active server still exists. If the provider removed the old node, the previous active entry may no longer work.
  • After changing routing: Test domains that should use the proxy separately from those that should connect directly, and confirm that the rules match the expected outbound tags.
  • Before exiting the client: If you need to restore normal networking, clear the system proxy first and then close the main program. This prevents Windows from retaining an invalid local proxy address.

v2rayN is only the configuration and control entry point; the selected core handles the actual connection. Protocol parameters for VMess, VLESS, and others come from the node or subscription. routing rules determine whether traffic uses a proxy or direct outbound, while local ports 10808 and 10809 receive connections from applications. Keeping these three layers separate makes it easier to distinguish “local listener failed,” “remote handshake failed,” and “routing matched direct” in the logs.

After completing the initial setup, save a short record containing the version, interface type, core type, local ports, and subscription group names. When changing folders or upgrading the program, check each item in turn. This is usually faster than importing every node again and helps prevent mismatched browser and client ports.

Download clientv2rayN / v2rayNG