Installing v2rayN on Windows 11 is usually straightforward, but a clean first setup depends on more than extracting an archive and double-clicking the executable. The desktop client needs the correct Windows architecture, a compatible .NET Desktop Runtime when the selected package requires it, a working Xray or other supported core, and a valid server subscription. After launch, you still need to import that subscription, update the server list, select an active server, and enable the appropriate proxy mode.
This guide follows the complete beginner workflow for 2026: prepare Windows 11, choose the right v2rayN package, install the runtime if necessary, start the client safely, import a subscription, test the core, and verify that browser traffic is actually using the local proxy. The examples use common menu names, although wording and button placement can vary slightly between v2rayN releases and desktop layouts.
Download v2rayN from the official site, select the package matching your Windows architecture, install the required .NET Desktop Runtime if the package requests it, launch v2rayN with normal user permissions, import a valid subscription, update the group, activate one server, and verify both the core log and a browser connection before changing advanced settings.
Check Windows 11 and runtime requirements first
Before downloading anything, confirm that the computer is running a supported 64-bit edition of Windows 11. Open Settings → System → About and check System type. Most current Windows 11 computers use an x64 processor, while some devices use ARM64. Downloading an x64 build for an ARM64 system may result in compatibility warnings or poor performance, even though Windows can sometimes translate x64 applications.
v2rayN is a graphical client, while Xray-core, v2ray-core, or sing-box may perform the actual protocol processing depending on the package and selected core. These roles are easy to confuse. v2rayN manages subscriptions, profiles, routing, proxy mode, and core processes; the core handles protocols such as VMess and VLESS and establishes the remote connection. A successful v2rayN launch does not prove that a node is usable.
Check whether the required Microsoft .NET Desktop Runtime is already installed. Go to Settings → Apps → Installed apps and search for “.NET Desktop Runtime.” The required major version depends on the v2rayN release and package type. Use the runtime version named by the client’s release notes or startup message rather than installing a random version. The Desktop Runtime is different from the ASP.NET Runtime and different from the SDK; installing only the SDK is not the correct beginner solution for a missing desktop runtime message.
Prepare a clean working folder
v2rayN commonly works as a portable desktop application. That means the program may store configuration, subscription data, logs, and downloaded core files beside the executable or in a related data directory. Extract the archive to a stable path such as C:\Apps\v2rayN or a dedicated folder under your user profile. Avoid running it directly from a compressed archive, a temporary extraction directory, or a cloud-synchronized folder that may lock files while the client is writing them.
Avoid placing the application under a location where Windows permissions are unusually restrictive, such as C:\Program Files, unless you understand how configuration write permissions will work. Do not rename core files casually. v2rayN uses expected executable names and directories when starting Xray or another core; a manual rename can produce a “core not found” or startup failure even when the binary itself is valid.
Download and launch v2rayN on Windows 11
Use the official download page to obtain the current Windows package. Choose the package that matches your architecture and release format. A packaged desktop build is usually the simplest choice for a new user because it includes the client files in a predictable structure. If two Windows packages are listed, read their labels carefully: one may target x64, another ARM64, and a separate package may use a different framework or installation model.
Check architecture
Open Settings → System → About, record whether Windows reports x64-based or ARM64-based hardware, and close applications that may interfere with the extraction process.
Get the package
Open the official download page, choose the Windows build matching the recorded architecture, and save the archive to a local folder rather than opening it directly from the browser.
Unblock the file
Right-click the downloaded archive, select Properties, and review the security area. If Windows marks the file as downloaded from another computer, use the official source confirmation before selecting Unblock.
Extract completely
Extract all files to a stable folder such as
C:\Apps\v2rayN. Do not launch the executable while it is still inside the archive.Start the client
Open the extracted folder and run the main v2rayN executable. Start normally first; use Run as administrator only when a specific Windows networking feature requires elevated permission.
On the first launch, Windows Firewall may ask whether the application can communicate on private or public networks. The correct choice depends on how you use the computer. A local proxy normally listens on the loopback interface, so it does not need broad inbound access from the internet. If Windows presents a firewall rule, review the program path and allow only the network profiles required for your environment. Never expose the local proxy port to the public network through router port forwarding.
If the window appears and then closes immediately, check the folder for a log file or start the program again and read the Windows error dialog carefully. A missing runtime, blocked executable, incompatible architecture, incomplete extraction, or a locked configuration file is more likely than a bad subscription at this stage. A subscription cannot cause a client process to fail before the main interface appears.
Practical decision: solve startup before networking
If the v2rayN window cannot remain open, do not edit server parameters or change DNS settings yet. First establish that the desktop client starts, can write its data folder, and can locate at least one installed core. This creates a clear boundary between application problems and connection problems.
Complete the first-launch setup
After the main window opens, take a minute to identify the server list, subscription group controls, core selection, system proxy controls, and log area. Button names can change across releases, but the sequence remains stable: data enters through a subscription or manual profile, a profile becomes active, a core process starts, and local applications are directed to the local inbound port.
Open Settings → Parameters settings or the equivalent settings entry and inspect the core type. Xray-core is commonly selected for current VLESS and VMess configurations, while a v2ray-compatible core may be useful for older profiles. The correct core is determined by the imported configuration and the features it uses. Do not assume that switching to a different core fixes every connection error; protocol, transport, TLS, REALITY, WebSocket, and flow parameters must still match the server.
Review local ports before enabling the system proxy. A typical HTTP proxy may listen on 127.0.0.1:10809, while a SOCKS proxy may use 127.0.0.1:10808. These are examples, not universal defaults. Another application may already occupy one of the ports. If v2rayN reports that the address is already in use, identify the conflicting process or choose an unused local port, then make sure the system proxy points to the same port.
Typical HTTP inbound
- Address
- 127.0.0.1
- Example port
- 10809
- Use
- Browsers and HTTP-aware apps
The browser must use the same address and port that v2rayN exposes.
Typical SOCKS inbound
- Address
- 127.0.0.1
- Example port
- 10808
- Use
- SOCKS5-aware applications
A SOCKS port is not interchangeable with an HTTP proxy port in every application.
Keep routing simple during the first test. A global proxy mode is easier to validate than a complicated rule set because it sends ordinary supported traffic through the active proxy outbound. Once the node works, you can change to rule-based routing, direct local networks, separate DNS handling, or TUN mode. Adding TUN, FakeDNS, custom geosite files, and several DNS servers before confirming the basic connection creates extra failure points.
Import a subscription and select a server
You need a valid subscription URL or a share link supplied by your service provider. v2rayN does not create a working remote server by itself, and the client cannot validate whether a subscription is legitimate merely because the URL can be pasted into a dialog. Treat the subscription URL as sensitive account information. Do not publish it in screenshots, send it through public chat, or place it in a shared document.
In the main window, open the subscription group menu, choose the option to add or manage subscription groups, and create a new entry. Give the group a short descriptive name, paste the URL into the subscription field, save it, and use the command for updating all subscriptions. Some versions expose these controls through a top toolbar; others place them under a menu. If the update fails, read the log instead of repeatedly pressing the update button.
After a successful update, select the newly populated group and inspect several rows. Check that the list contains current server names, expected protocols, and plausible addresses and ports. An empty list may indicate an expired URL, a provider-side access restriction, a response in an unsupported format, or a subscription that returned an HTML error page instead of configuration data. If the provider requires subscription updates through an existing proxy, enable that option only after you have one known-working node or another permitted network path.
Select one server and use the client’s latency or connectivity test. A latency result is useful but not conclusive: it may test only TCP reachability or a specific URL, while browser traffic may use another protocol, DNS path, or routing rule. After testing, explicitly choose the command equivalent to Set as active server. Selecting a row and activating a row are separate actions in many v2rayN layouts.
Why is the subscription group still empty?
Confirm the URL has not expired, update the group again, and inspect the log for an HTTP status, certificate error, timeout, or unsupported response. If the provider requires proxy-based updating, first activate a known-working profile and enable the subscription proxy option.
Why does a server appear but fail immediately?
Check the imported address, port, UUID, transport, security mode, SNI, fingerprint, and flow as a matching set. A VLESS profile with VMess parameters, or a REALITY profile with an incorrect public key, will not complete its handshake.
Does a latency test prove that browsing works?
No. It proves only that the selected test reached its target through a particular path. Start the core, activate the system proxy, open a new browser session, and verify an actual page request as well.
Should every setting be changed to automatic?
No. Keep provider-supplied protocol and transport values unchanged unless you know which server-side value they correspond to. Automatic selection is useful for some client defaults but cannot repair mismatched credentials.
Enable the proxy and verify the connection
Once a server is active, start the selected core from the main window if it is not already running. Watch the log for a successful startup message and confirm that the expected local ports are listening. Then enable the system proxy from the v2rayN tray menu or main interface. A green icon or active status marker is helpful, but the browser test and the core log provide stronger evidence.
Open Windows proxy settings through Settings → Network & internet → Proxy and check whether v2rayN has applied a manual proxy configuration. Do not enable two unrelated proxy managers at the same time. If another client has already configured a manual proxy, Windows may point applications to a port where no process is listening. Disable the competing manager or deliberately choose one client as the owner of the system proxy.
Use a fresh browser tab and load a simple HTTPS page that you are authorized to access. Then compare three observations: the v2rayN status indicates an active core, the log records an outbound connection without a handshake failure, and the browser successfully receives the page. If only the browser fails, check whether that browser uses its own proxy settings, secure DNS policy, or an extension that bypasses the Windows system proxy.
Core started
Local HTTP inbound: 127.0.0.1:10809
Local SOCKS inbound: 127.0.0.1:10808
Active outbound: selected server
System proxy: enabled
Browser request: completed
If the page does not load, isolate the layer. A “port already in use” message points to the local inbound configuration. A TLS handshake or REALITY error points to server parameters, system time, SNI, fingerprint, or transport compatibility. A connection timeout may indicate an unreachable remote port, packet loss, firewall filtering, or a provider-side outage. A page that loads directly but not through v2rayN suggests that the active profile, core, routing rule, or local proxy assignment needs examination.
For the first successful test, avoid enabling TUN mode. TUN captures traffic at a lower network layer and can affect applications that do not understand HTTP or SOCKS proxies; it also introduces routing, DNS, virtual adapter, and permission considerations. Enable it later when you need system-wide handling, and add one change at a time. The same principle applies to custom DNS, FakeDNS, geosite rules, and split tunneling.
Once the basic connection is confirmed, you can make the setup more convenient. Rename subscription groups clearly, remove expired profiles, set a reasonable update interval, and keep only the cores required by your configurations. Review the active server after every subscription update because a provider may reorder nodes or replace an entry. If you use rule-based routing, place private and local destinations before broad proxy rules and test direct and proxied destinations separately.
A stable beginner setup is intentionally modest: one current v2rayN package, one compatible core, one valid subscription, one active server, one known local proxy port, and one verified browser path. This baseline makes future troubleshooting much faster. When a later change breaks the connection, compare the current state with that baseline instead of reinstalling the entire client or changing several protocol parameters at once.