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
RecommendedIf 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.
- Missing framework: Check the framework name and major version in the prompt, install the required runtime, then restart the client.
- This app can’t run on your PC: Check supported Windows versions, architecture, and that the archive was fully extracted.
- The main window opens, but the proxy core won’t start: Check the core files and logs instead of reinstalling the UI runtime.
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.
-
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.
-
Extract all files
Extract every file to a permanent folder that your account can write to, such as
D:\Tools\v2rayN. Don’t copy onlyv2rayN.exeor keep your long-term configuration in a temporary extraction folder. -
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. -
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.
-
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.
-
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.
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.
- Go to “Settings” → “Parameter settings,” find the option for automatic startup, and save. The tab or section may vary by version.
- In Windows, go to Settings → Apps → Startup and check whether the app’s startup entry is disabled. Depending on how it was registered, you may also need to check Task Scheduler.
- Keep the app folder in the same location. If you move it, the old startup entry may still point to the previous executable; update the entry if needed.
- Sign out and back in. Check the tray icon, active server, and listening port—not just whether the process appears in Task Manager.
- If you need TUN, check permission prompts and startup behavior separately. Launching at sign-in doesn’t guarantee administrator privileges.
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.
| Symptom | Check first | What to do |
|---|---|---|
| A missing framework prompt appears after launch | Runtime type, major version, and architecture | Install the matching runtime specified in the prompt; don’t change subscription settings. |
| The window opens, but the proxy core won’t start | File paths, configuration errors, and port conflicts in the logs | Make sure the archive is fully extracted and run only one test instance. |
| No servers appear after an update | Subscription response and group filters | Check the update logs, confirm the URL is valid, and select the correct group. |
| The browser works, but other apps don’t | Whether the app uses the system proxy | Configure the proxy as described by the app; consider TUN only if needed. |
| Web pages stop loading after you exit the client | Whether a Windows manual proxy setting is still enabled | Clear the stale local proxy and check whether direct access works again. |
| Configuration is missing after automatic startup | Startup path, user account, and data folder | Check 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.
- Extract the new package to a separate folder instead of overwriting a running app or proxy core.
- Use the client’s export and import features when available. If you migrate files manually, first confirm that the data formats are compatible.
- Run only the new copy. Verify the subscription, active server, routing, and system proxy, then set up automatic startup again.
- 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.