How to Install v2rayN on Windows: WPF vs. Desktop

Compare v2rayN’s WPF and Desktop editions, with steps for extracting and running the app, installing runtimes, configuring the system proxy and setting it to launch at sign-in.

At a glance

Choose a package that matches your Windows architecture, then decide whether you want the WPF or Desktop interface. This guide covers first-time setup, runtime prompts, subscription updates, system proxy and routing settings, and connection checks after signing in. Start with the regular system proxy before trying TUN to make troubleshooting easier.

WPF vs. Desktop: Understand the interfaces and packages

WPF is a Windows-specific UI framework; v2rayN’s Desktop edition uses a cross-platform desktop UI framework. The main differences are the interface, interaction details, and runtime requirements—not the proxy protocols. Whether a server works depends on the subscription settings, proxy core in use, and network conditions, not the app’s appearance.

WPF: For everyday Windows use

Recommended

If you use v2rayN only on Windows and don’t need a cross-platform interface, start with WPF. If it reports that the .NET Desktop Runtime is missing, install the version required by that release rather than changing your server settings.

Best for: Windows users who prefer the familiar WPF interface.

Desktop: A consistent cross-platform interface

Choose Desktop if you want a similar interface across desktop operating systems. On Windows, download the package for your system architecture. “Desktop” doesn’t mean the package includes a runtime or that proxy speeds will be faster.

Best for: Users who want a consistent cross-platform interface or want to compare the two editions.

The distribution format is a separate consideration. Portable archives must be fully extracted before you run the app; installers should be used according to their setup wizard. Check the download page and package contents to see whether the proxy core or runtime is included—don’t infer this from the WPF or Desktop label. You can test both interfaces, but don’t run them at the same time if they’ll compete for the same local listening port.

Check your architecture and runtime before downloading

In Windows, go to Settings → System → About and check “System type.” Most Intel and AMD PCs use x64 packages; on Windows on Arm, choose an ARM64 package if the publisher provides one. Don’t assume the architecture based on the processor brand. The package and runtime architectures must match.

WPF startup checks

UI framework
Windows Presentation Foundation
Choose an architecture
Select x64 or ARM64 based on your system type
Runtime dependency
Framework-dependent packages typically require the .NET Desktop Runtime
Runtime version
Follow the major version specified in the startup prompt and release notes

Installing only the .NET SDK or a runtime for a different major version doesn’t necessarily meet the app’s desktop runtime requirements.

Desktop startup checks

UI framework
Avalonia desktop UI
Choose an architecture
Download the package for your Windows architecture
Runtime dependency
Depends on whether the package is self-contained
Missing runtime
Install the .NET runtime specified in the startup prompt

Self-contained packages usually don’t require the corresponding .NET runtime to be installed separately, but they may still depend on your Windows version and other native components.

If you see “You must install or update .NET to run this application,” note the framework name, major version, and architecture in the prompt. WPF requires the Windows Desktop Runtime, which is different from the base .NET Runtime. Don’t install several unrelated runtimes or download individual DLLs from unknown sources and drop them into the app folder; that can hide the actual dependency issue.

Extract and import a subscription in the right order

This walkthrough uses a portable Windows archive. Menu labels may vary slightly between releases, so follow the interface you have. The steps stay the same: choose a permanent folder, launch the client, save the subscription, update the server list, and select a server. Don’t run the app from an archive preview window; it may not find its configuration or core files.

  1. Choose a package

    Go to the client downloads page and choose an option for Windows, your processor architecture, and your preferred interface. Read the release notes before deciding between a portable package and an installer.

  2. Extract all files

    Extract every file to a permanent folder that your account can write to, such as D:\Tools\v2rayN. Don’t copy only v2rayN.exe or keep your long-term configuration in a temporary extraction folder.

  3. Launch the app

    Run v2rayN.exe. The regular system proxy usually doesn’t require administrator privileges. If you see a runtime prompt, follow the steps in the previous section before continuing.

  4. Save your subscription

    In the main window, go to “Subscription group” → “Subscription group settings,” add a group, enter a name and subscription URL, then save. A subscription URL is a credential—don’t include it in public screenshots.

  5. Update the server list

    From “Subscription group,” select “Update all subscriptions (without proxy).” If you don’t have a working proxy yet, fetch the subscription over your current network. If the provider requires other access conditions, follow its instructions.

  6. Set an active server

    Select an imported server, then use the right-click menu to choose “Set as active server.” Check the logs to confirm the proxy core starts successfully, then configure the system proxy. Importing a server doesn’t mean the connection is working.

Saving a subscription URL and downloading its contents are separate steps. If the list is empty, check whether you ran an update, whether the logs show a request error, and whether the correct group is selected. If the subscription returns a login page, an expired notice, or an error message, repeated updates won’t produce working servers. Resolve the issue with the subscription source first.

System proxy, routing, and TUN: start with one traffic path

Once v2rayN starts the proxy core, it provides a local proxy listener. The Windows system proxy setting points apps to that listener; only apps that honor the system proxy will use it. Routing happens after traffic reaches the core and determines whether a connection is sent direct, proxied, or blocked. These are separate layers.

For your first test, use the system proxy; enable TUN only if needed

Regular system proxy
  • Right-click the tray icon and select “System proxy” → “Set system proxy.”
  • Test web access in a browser that uses the system proxy.
  • Check the selected routing mode in the main window.
  • Clear the system proxy before exiting so Windows won’t point to a stopped port.
TUN mode
  • For apps that don’t use the system proxy but need their traffic routed through a virtual network adapter.
  • May require administrator privileges and changes to network adapters, routing, and DNS.
  • Configure it according to the proxy core and client prompts. Don’t copy settings from unknown sources.
  • For initial troubleshooting, turn off TUN and establish a working baseline with the regular proxy.

The system proxy and TUN aren’t always mutually exclusive. For your first test, simplify the traffic path to make it easier to tell server problems from traffic interception issues.

To check the local port, look for listener settings under “Settings” → “Parameter settings.” Field names and defaults may differ between releases. The example below uses a local HTTP-compatible endpoint, 127.0.0.1:10808; the number is for illustration only. If your listener uses a different port, update the command too. If the port accepts SOCKS only, you can’t use it with an HTTP proxy command.

10808
Example local proxy port; check your settings for the actual value
443
A common HTTPS destination port, not a local proxy port
curl.exe --proxy http://127.0.0.1:10808 --head --connect-timeout 10 https://example.com/

This command assumes curl.exe is available on your system and the example port supports HTTP proxy connections. An HTTP response means the request received a response; it doesn’t prove every site is reachable and isn’t a speed test. If the local port can’t be reached, check that the client is listening. If the request times out only after connecting to the local proxy, check the active server, routing, DNS, and remote connection.

Launch at sign-in: verify startup and proxy recovery separately

For desktop clients, “launch at startup” usually means starting the app after you sign in to Windows. It doesn’t establish a proxy before you sign in. Get the client working manually before enabling automatic startup; otherwise, the same error will recur at every sign-in.

Verify client startup and system proxy recovery separately. If your browser still connects directly, the system proxy may simply be off. If apps that use the system proxy can’t connect, Windows may still be pointing to a proxy address even though the client core isn’t listening. In Windows, go to Settings → Network & Internet → Proxy and check the address and port under “Manual proxy setup.” Don’t rely on the tray icon alone.

Troubleshooting and when to switch interfaces

Switching between WPF and Desktop can help diagnose UI compatibility issues, but it isn’t a general fix for connection problems. If the window opens but a server times out, check the logs first. If the app won’t launch at all, start by checking the architecture, runtime, and file permissions. Troubleshooting by layer is more effective than repeatedly overwriting files.

SymptomCheck firstWhat to do
A missing framework prompt appears after launchRuntime type, major version, and architectureInstall the matching runtime specified in the prompt; don’t change subscription settings.
The window opens, but the proxy core won’t startFile paths, configuration errors, and port conflicts in the logsMake sure the archive is fully extracted and run only one test instance.
No servers appear after an updateSubscription response and group filtersCheck the update logs, confirm the URL is valid, and select the correct group.
The browser works, but other apps don’tWhether the app uses the system proxyConfigure the proxy as described by the app; consider TUN only if needed.
Web pages stop loading after you exit the clientWhether a Windows manual proxy setting is still enabledClear the stale local proxy and check whether direct access works again.
Configuration is missing after automatic startupStartup path, user account, and data folderCheck which data folder is actually in use to avoid launching a second copy.

Keep a recoverable backup before upgrading or switching editions

Exit the client before upgrading, then back up its actual data folder and working configuration. Portable packages often store data alongside the app, but not all editions use the same location. Check the client’s data-folder feature, settings, or release notes. Backups may contain subscription URLs and server credentials, so store them securely.

  1. Extract the new package to a separate folder instead of overwriting a running app or proxy core.
  2. Use the client’s export and import features when available. If you migrate files manually, first confirm that the data formats are compatible.
  3. Run only the new copy. Verify the subscription, active server, routing, and system proxy, then set up automatic startup again.
  4. Data written by a new release isn’t guaranteed to work with an older one. To roll back, restore the backup you made before upgrading rather than opening migrated data with the older version.

Choosing is simple: try WPF if you use Windows only, or Desktop if you want a consistent cross-platform interface. Whichever you choose, first match the architecture, fully extract the package, check runtime requirements, and verify a regular system proxy connection. Then add launch at sign-in, adjust routing rules, or try TUN. For basic setup, see the Getting Started guide. If your connection fails, follow the Troubleshooting guide and check one layer at a time.

Client downloadsChoose your OS and architecture