· Platform Guide · 10 min read

v2rayN for Windows: Installation and Setup from Start to Finish — WPF vs. Desktop

Choose a release, extract the files, launch v2rayN, import a subscription, and configure the system proxy. Covers common Windows issues, including non-ASCII paths, permissions, and port conflicts.

At a glance

Installing v2rayN for the first time? Start by choosing the right Windows architecture and release, then make sure the files are fully extracted and the subscription and local listening port are set up. Follow the steps in order: launch the app, import nodes, connect the core, then route traffic through the proxy. Already installed but can't load web pages? Use this guide to pinpoint which layer is failing.

1. Choose Between the WPF and Desktop Versions

v2rayN is a desktop interface for managing nodes, subscriptions, and proxy settings; the core handles the actual connection. WPF and Desktop differ primarily in their interface technology and runtime requirements—not in the proxy protocols they use. Choosing one does not inherently make your connection faster. Desktop uses a cross-platform interface, while WPF retains the classic Windows interface. Supported protocols also depend on the bundled core and its version.

Desktop version

Recommended

For a first-time installation, start with Desktop and check the download page for Windows architecture and runtime requirements. Its menus may differ from WPF, so when following an older guide, look for the setting by its purpose rather than matching screenshots exactly.

Best for: Windows users setting up v2rayN for the first time who are comfortable with a cross-platform interface.

WPF version

Choose WPF if you prefer the classic Windows interface. If it reports a missing runtime, check the release requirements for the .NET Desktop Runtime and the correct processor architecture. A similarly named general-purpose runtime may not be enough.

Best for: Users who prefer the classic interface or want to follow an established workflow.

Before downloading, open Windows Settings → System → About and check System type. Match x64 or ARM64 to the download page and release notes; don't rely on the device brand alone. Find the download links on the client downloads page. This guide doesn't pin a version number or assume that every release requires the same runtime.

2. Extract All Files and Launch v2rayN

For a portable release, extract all files before running v2rayN.exe. Launching the app from inside the archive or copying only the executable can leave out dependencies, cores, or other required files. Use a stable folder your account can write to, such as D:\Tools\v2rayN. If you don't have a D: drive, create a dedicated folder under your user directory.

  1. Check the package type

    On the download page, choose Desktop or WPF for Windows and check the architecture and runtime requirements. Download the package, then extract it.

  2. Extract every file

    In File Explorer, right-click the archive and select Extract All. Don't run the app from inside the archive or extract different interface packages over the same folder.

  3. Launch the app

    Open v2rayN.exe in the extracted folder. For a standard system proxy setup, start with regular permissions. If an error occurs, keep the full message and logs.

  4. Check the listening settings

    Open Settings → Parameters and find the local listening address and port. Note the current values. These options may appear on different tabs in different releases.

  5. Make sure settings persist

    Save your settings, exit normally, and relaunch the app to check that they're still there. If settings reset every time, check folder permissions and make sure you're not running a different copy of the app.

A non-ASCII folder path isn't automatically the cause of a problem. It can affect how some external components handle paths, but first check whether the logs point to a path or file-reading error. To test, exit the app and copy the entire folder to a short path using English characters, then try again. Keep the original folder so you can restore your subscription and settings. Network shares, synced folders, and protected system directories are more likely to cause write-permission or file-lock issues.

3. Import a Subscription and Choose a Node

A subscription URL retrieves a list of nodes; it isn't the same as a link for a single node. Make sure you have the full subscription URL, then go to Subscription groups → Subscription group settings. Add a group, enter a name and URL, and save. If your interface shows a “+” button, it adds a subscription group—not a server configuration.

Choose the V2Ray protocol based on the node settings provided by your service and the capabilities of the current core. When you see fields for VLESS, VMess, TLS, or transport type, don't change the server address, port, user ID, or server name to “optimize” the connection. These settings must match the server. Updating the subscription may also overwrite manually edited nodes.

4. Configure the System Proxy and Check Local Ports

After confirming the active node, open v2rayN's System Proxy menu and select Auto configure system proxy. Test with a browser that respects system proxy settings. This changes the Windows proxy settings, but doesn't guarantee that every app will use them. Terminal tools, games, and apps with their own proxy settings may need separate configuration.

10808
Example local port below; use the value in your settings
443
Default HTTPS port—not a universal node port
1–65535
Valid port number range

The local listening port and the remote server port are different. This guide uses 127.0.0.1:10808 as an example, but ports vary across releases and older configurations. HTTP, SOCKS, and mixed listeners may also use separate ports. Before running the command below, confirm that the port accepts HTTP proxy requests; don't use a SOCKS-only port as an HTTP proxy.

curl.exe --proxy http://127.0.0.1:10808 --head --max-time 15 https://example.com/

This command explicitly specifies a proxy, so it doesn't depend on whether your terminal reads the Windows system proxy settings. If the command works but the browser doesn't, check browser extensions, custom proxy settings, and bypass rules. If the browser works but the terminal doesn't, check the tool's proxy options or environment variables. When you're done using the proxy, select Clear system proxy in the client before exiting. Otherwise, Windows may keep pointing to an address that no longer has a listener.

5. Test V2Ray Nodes and Verify Connectivity

Don't judge a V2Ray node by a single latency number. TCP connection checks, real request tests, and download speed tests measure different things. A successful TCP check doesn't confirm authentication, and low latency doesn't guarantee high sustained throughput. For a first-time setup, use the server list's right-click menu to run a test labeled “real connection” or “latency,” then open a known reachable page in your browser.

Test resultWhat it tells youWhat to check next
TCP test succeeds, but the actual request failsThe server port may be reachable; authentication and transport are still unverifiedCheck user settings, the TLS server name, and core logs
Actual request succeeds, but the browser failsThe node works, but the app's proxy path may differCheck system proxy settings, browser extensions, and bypass lists
Some domains work, others don'tRouting, DNS, or restrictions on the destination site may be involvedCheck which rules match and how the destination domain resolves
All nodes report a local listening errorCheck the shared local environment before investigating remote nodesCheck port conflicts, process status, and file permissions

When comparing nodes, keep the test destination, routing mode, and network conditions the same. Test a small number of candidates first to avoid triggering rate limits with too many concurrent requests. Download speed tests can use significant data, so check your provider's billing terms if your plan has a data cap. Repeat tests to account for occasional fluctuations, but don't treat one result as a node's fixed performance.

6. System Proxy vs. v2rayN TUN Mode

v2rayN's TUN mode uses a virtual network interface to capture traffic that matches its rules. It covers traffic differently from the system proxy. First get the system proxy working; consider TUN only if an app ignores system proxy settings or you need to capture more traffic. This helps distinguish node issues from problems with the virtual interface, routing, or DNS.

Choose based on whether apps follow the system proxy

System proxy
  • Start with System Proxy → Auto configure system proxy.
  • For browsers and apps that follow system proxy settings.
  • The main app usually doesn't need to run as administrator.
  • Test terminals separately with an explicit proxy option.
TUN mode
  • First check whether your release supports TUN and what components it requires.
  • May require administrator permissions, a service, or a virtual interface.
  • After enabling it, check DNS, routing, and local network access.
  • If something fails, disable TUN and compare with a system proxy test.

Choose based on the traffic you need to capture, not on which mode is “faster.” Keep your original settings and change one thing at a time.

If you already use another VPN or virtual network adapter, TUN may be affected by the default route, DNS, or interface priority. Don't enable multiple traffic-capture tools and then change all your routing settings at once. Take particular care in remote desktop sessions: changing routes can disconnect you. Have a local recovery option ready and know how to disable TUN.

7. Troubleshoot Crashes, Permissions, and Port Conflicts

Start troubleshooting with the first meaningful error in the logs. A missing interface, core startup failure, subscription request error, and inaccessible web page are four different problems; “download it again” doesn't explain all of them. Note the failing step, selected interface package, system architecture, and exact error before trying the targeted fixes below.

No window opens after double-clicking. Is a runtime missing?

First check Task Manager for a running process and see whether the window is just hidden in the system tray. If there's a clear missing-runtime message, install the runtime version and architecture required by the release. If a WPF package asks for the Desktop Runtime, the standard .NET Runtime isn't a substitute. If there's no message, check Windows Event Viewer → Windows Logs → Application for an error at the relevant time.

The logs say a port is in use. How do I find the cause?

Run the listening-port query below in PowerShell, replacing 10808 with the port you're using. Find the process by its PID in Task Manager under Details. If it's another v2rayN instance, close the extra instance normally. Don't force-quit an unfamiliar system process.

It works in an English-named folder. Does that mean the original folder is unusable?

It only shows that the two runs used different environments; it doesn't prove that non-ASCII characters caused the problem. Compare folder permissions, file integrity, whether the folder is synced, and security software logs. Use the specific path error in the logs to guide your diagnosis.

Is it safer to always run as administrator?

Usually not for a standard system proxy setup. If the logs say the app can't write its configuration, move it to a writable folder. If TUN requires elevated permissions, follow the current release instructions. Running as administrator won't fix an expired subscription, a remote timeout, or incorrect authentication settings.

The app starts, but it can't find the core files. What should I check?

Make sure you extracted all files, then check Windows Security → Virus & threat protection → Protection history. If you find a block, verify the file source and review the risk details; don't disable all your security protection. Also check whether your package requires you to provide core components separately.

Get-NetTCPConnection -State Listen -LocalPort 10808 |
  Select-Object LocalAddress, LocalPort, OwningProcess

No results usually means there was no TCP listener on that port at the time. If you do get a result, verify the listening address and process—don't rely on the port number alone. After changing a local port, save the settings and reload the core, then configure the system proxy again. Update any proxy addresses you've entered manually in your browser or terminal.

8. Back Up Before Upgrading and Verify Your Setup

Before upgrading, exit v2rayN normally and make sure its core processes have stopped. Then back up the existing working folder. Check the release notes for Desktop and WPF configuration migration; don't assume any two folders can be merged or overwritten safely. Backups may contain subscription URLs and node credentials, so keep them somewhere private rather than uploading them to a public cloud drive.

That's the v2rayN setup process on Windows. What matters now isn't which interface you installed, but whether the node, core, routing, and apps are all configured consistently. To use the same service on Android, check the download page for v2rayNG or v2flyNG. v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core; check protocol support for each one. Update the v2rayNG subscription separately—node changes on your desktop won't sync to another device.

Client downloadsExplore downloads for four platforms