· Getting Started · About 10 minutes

v2rayN First-Time Setup: Windows and macOS Installation Tips and Common Issues

Set up v2rayN for the first time: choose a core, check local ports, configure the system proxy, and troubleshoot antivirus alerts and port conflicts.

At a glance

For first-time v2rayN users and anyone moving from Windows to macOS. Follow this order: choose the right package → start the core → import a configuration → check the local listener → set the system proxy → test a request. Get one node working before setting up routing rules or other features. Port numbers in this guide are configuration examples, not universal defaults. Menu labels may vary by desktop version, so check the current settings and runtime logs.

1. Choose the Right Package for Your OS and Processor

v2rayN is a desktop GUI client for managing nodes, subscriptions, routing, and core processes. The core handles proxy connections. Seeing the main window only confirms that the interface launched; it does not mean the core is running or that browser traffic is being proxied. Check each part separately during setup.

SystemHow to chooseFirst check
Windows x64Choose the package for your desktop OS. WPF is the classic Windows interface, not a macOS installer.Go to Settings → System → About and check your system type. Review the package's system requirements.
macOS with Apple siliconChoose the arm64 DMG.Open the Apple menu → About This Mac and check the chip information.
macOS IntelChoose the x64 DMG.Check your processor type and the minimum OS version required by the software.

Extract the Windows archive completely to a writable folder, such as C:\Tools\v2rayN, then launch the main program from there. Don’t run it from the archive preview or drag out only the main executable; the core, resources, and other dependencies may still be inside the archive. If you downloaded an installer, follow its setup wizard instead.

After opening the DMG on macOS, drag the app to Applications, eject the disk image, then launch it from Applications. This avoids running it from a temporary mount. When moving between devices, use the client’s import or backup feature. Don’t overwrite the entire application folder with one from another platform; check the core path and file permissions again.

2. First Launch: Build a Minimal Setup in Five Steps

Start with the standard system proxy to verify the basics. Add TUN, advanced routing, custom DNS, and launch-at-startup settings later to avoid changing several variables at once. Menu names below are common examples. If the layout differs across platforms, look for the same setting names in the relevant preferences instead of matching the exact button layout.

  1. Launch and check the logs

    Open the app and check the log area in the main window. Look for errors such as “core file not found,” “permission denied,” or the core exiting immediately after launch. Install missing dependencies according to the package instructions; don’t download a similarly named runtime file from an unfamiliar site.

  2. Add a subscription

    Go to Subscription Group → Subscription Group Settings, add a group, enter the subscription URL in the URL field, and save. Then choose Update All Subscriptions (without proxy) from the Subscription Group menu. In some versions, the update option is in the group’s context menu.

  3. Select a node

    After updating, confirm that nodes appear in the list. Select a node and press Enter, or choose Set as active server from the context menu. Check which item is active: selecting a table row alone may not switch the connection configuration.

  4. Check the core

    Open Settings → Parameter Settings and check Core type, or go to the corresponding core settings page. After saving, review the restart logs. If your version has no such option, use the node editor and startup logs to identify the core in use.

  5. Set the system proxy

    On Windows, open the System Proxy menu from the tray icon and select Set system proxy automatically. If the cross-platform interface has a status bar shortcut, use the equivalent option there. On macOS, review any prompt requesting permission to change proxy settings, then check the actual proxy address and port in Network settings.

If a subscription cannot update directly, try Update All Subscriptions (through proxy) only when a working active node is already available. Switching to this option with an empty list or a stopped core usually won’t solve an initial import problem. To import a single-node share link, use Server → Import share link from clipboard; don’t enter it as a subscription URL for recurring updates.

3. Choose a Core Based on Node Settings, Not Guesswork

Project V provides the ecosystem background for related proxy technology; V2Fly and Xray are separate core projects. Whether v2rayN can use a particular core depends on support in your version, package, and configuration interface. Seeing VMess or VLESS in the interface does not mean every core supports all of a node’s extended parameters.

Xray core

Recommended

For nodes using VLESS, REALITY, or Vision parameters, first check Xray compatibility and version requirements. Keep the transport, security layer, server name, Flow, and other fields provided by the subscription. Don’t convert a VMess node to VLESS.

Best for: nodes that require Xray on the server or use compatible extended parameters.

V2Fly core

Use this core when your v2rayN version offers it and the server configuration explicitly supports it. Imported VMess nodes still require checks for transport, security settings, and core version. Switching cores is not a universal fix.

Best for: setups with explicit V2Fly requirements that need to preserve existing configuration behavior.

To confirm that a core is active, check the startup records and errors generated after saving the configuration—not just the selected item in a dropdown. For unknown fields, parsing failures, or unsupported security settings, check that the core version matches the node parameters. For connection timeouts, check network reachability, the server address, and the port. These errors occur at different layers.

  • Change one setting at a time: Note the current settings before changing the core or node parameters so you can revert if needed.
  • Keep subscription fields intact: After importing, don’t casually edit the SNI, transport path, or public key.
  • Separate the interface from the core: Updating the interface does not necessarily update every core file. Check the package instructions and runtime logs.

4. Local Ports: Tell the Proxy Entry Point from the Remote Server

Your browser connects to a local proxy on your computer; the core then connects to the remote server. A remote port in a node configuration, such as 443, should not be entered as the local port for the system proxy. The examples below are for troubleshooting; use the local listener settings under Settings → Parameter Settings for your actual values.

127.0.0.1
Example loopback address
10808
Example local SOCKS or mixed proxy
10809
Example separate HTTP proxy

Some versions provide separate SOCKS and HTTP ports; others use a mixed proxy. Use a port for the system HTTP/HTTPS proxy only if you’ve confirmed it supports HTTP proxy connections. Don’t assume an example port is enabled in your setup, and don’t expose the listener on all network interfaces just to connect other devices.

Example client listeners

Listen address
127.0.0.1
SOCKS proxy
10808; confirm that it’s enabled
HTTP proxy
10809; confirm that it’s enabled
LAN access
Keep disabled during initial testing

These are configuration examples, not fixed defaults. For a mixed proxy, use the value shown in your current version’s settings.

Check system proxy settings

Server address
127.0.0.1
HTTP port
Match the client’s HTTP or mixed proxy port
HTTPS requests
Use a local HTTP proxy that supports CONNECT
When you exit
Clear the corresponding proxy settings before closing the client

The HTTPS proxy field usually points to the local HTTP proxy. You don’t need to install a certificate on the loopback address.

On Windows, check the system proxy under Settings → Network & Internet → Proxy. On macOS, go to System Settings → Network → your current network service → Details → Proxies. If the client uses PAC, check the automatic proxy configuration. If it uses a manual HTTP proxy, check the server and port. Don’t check only one type of setting.

5. Test Connectivity: Check the Proxy Entry, Then the Browser

The system proxy affects only apps that honor the system proxy settings; it does not route all traffic from your computer. Routing rules determine whether a request goes direct or through the proxy after it reaches the core. Enabling the system proxy and routing every request through a remote node are different things. For the first test, choose a destination that should match a proxy rule and check the logs as well.

  1. Check the active node, core startup time, and local listening port to rule out a process that never started.
  2. Specify the proxy explicitly in a command to test the connection from the local entry point to a remote destination.
  3. Then open the same destination in a browser. If the command works but the browser doesn’t, check the system proxy and the browser’s own settings.
  4. Once the basic connection is stable, adjust routing, DNS, and other traffic handling options one at a time. Repeat the test after each change.

These commands assume you’ve confirmed 127.0.0.1:10808 is a SOCKS proxy. socks5h sends the destination hostname to the proxy for resolution. This is useful for comparison with apps that resolve hostnames themselves, but it does not prove that no other DNS requests are being made by your computer.

Windows PowerShell

Get-NetTCPConnection -LocalPort 10808 -State Listen
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com

macOS Terminal

lsof -nP -iTCP:10808 -sTCP:LISTEN
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com

The 10-second connection timeout and 20-second total limit are diagnostic settings, not measured latency. If the listener check returns nothing, fix the local proxy first. If the connection is refused, check the port, process, and proxy type. An HTTP response means the request reached the destination and received a response, but check the routing logs to confirm whether it went direct or through the proxy. For certificate errors, also check the system clock and certificate trust chain; don’t disable certificate verification.

6. Common Issues: Security Alerts, Port Conflicts, and Lost Connectivity

Windows security software blocked it. Should you allow it?

Don’t assume a file is safe just because its name looks right. Open Windows Security → Virus & threat protection → Protection history. Note the detection name and blocked path, then check the download source, package contents, and release notes. Don’t turn off all protection or exclude the entire download folder before confirming the file is safe. If you’re unsure, stop running it.

macOS says the developer can’t be verified. What should you do?

First confirm the app’s source and system requirements. If macOS allows you to approve a developer verification warning, try launching the app, then go to System Settings → Privacy & Security and check whether Open Anyway is available. If the warning identifies a malware risk, stop and investigate. Don’t treat every security warning as a routine first-launch prompt.

The logs show “address already in use.” What does that mean?

A listening address or port is already in use. On Windows, run netstat -ano | findstr :10808. On macOS, run lsof -nP -iTCP:10808 -sTCP:LISTEN, then use the process details to identify what has claimed the port. First close any duplicate client instances. If you change the port, save the setting and restart the core, then update the system proxy and any manually configured app proxies.

The app closed, and now my browser can’t connect. Why?

Your system may still be pointing to a stopped loopback proxy. Reopen v2rayN and use System Proxy → Clear system proxy to remove its settings. If the app won’t start, disable the corresponding manual proxy or PAC setting in your system proxy preferences. On managed work devices, note the original settings first; don’t remove proxy settings deployed by your organization.

The node shows a latency result, but webpages still won’t load. Why?

A latency test covers only part of the connection path and does not confirm that apps can access websites. Retest with the explicit proxy command above, then check the active node, routing rules, DNS errors, and browser proxy settings. If several nodes fail at the same step, look for a shared local configuration issue before reinstalling the client.

7. Save a Baseline Before Updating or Migrating

After your first successful connection, record the minimal working setup: client and core versions, OS version, active node group, listening port, system proxy method, and routing mode. These details are more useful for troubleshooting an update than “it worked yesterday.” Import cross-platform settings manually and check them again; don’t assume that application paths, permissions, or system proxy settings will sync automatically.

  • Before updating: Use the client’s backup or export option to save your configuration. Store subscription credentials and backup files securely.
  • After updating: Retest the existing node and explicit proxy command before enabling new features. Keep the first error log if anything goes wrong.
  • When reporting an issue: Include your system architecture, core startup errors, and steps to reproduce. Redact subscription URLs, user IDs, and node credentials.
  • After migrating: Check local ports, core file locations, system proxy settings, and firewall prompts. Don’t assume another device uses the same paths.

A complete installation check means more than opening the window: the core starts reliably, the local proxy is listening, explicit proxy requests work, the browser uses the proxy as expected, and network access returns to normal after you quit. For help diagnosing a specific error, visit Troubleshooting and check startup, listening ports, connections, DNS resolution, and routing in order.

Download v2rayN