v2rayN Port Already in Use: Find and Fix the 10808 Conflict

Getting a port-in-use error at startup? Find the process with Windows commands, change v2rayN’s SOCKS or HTTP listening port, and update related proxy settings.

At a Glance

Use this guide if v2rayN reports a bind failure when starting the core or your browser says the proxy connection was refused. Check the log for the conflicting port, then use Windows commands to find the listening process. If it’s a duplicate instance, exit it and keep the original port; change the listening settings only if both instances must run. Finally, update Windows proxy settings and any app-specific proxy settings to avoid a second failure where the core starts but the browser still uses the old port.

1. Port 10808 Conflicts vs. Node Connection Failures

The local listening port is the entry point browsers and command-line tools use to connect to the v2rayN core. It is not the remote port on a subscription server. If the log says it cannot bind to 127.0.0.1:10808, the problem occurs before this machine can accept the request. Switching nodes, updating a subscription, or changing VMess or VLESS settings usually won’t free the port.

App proxy settings Local listening port Routing rules Remote node connection

Check the log area on v2rayN’s main window for entries from startup, and note the address, port, and time shown in the error. The examples below are common; surrounding log prefixes can vary by core and system. The key distinction is between “address already in use” and “access denied”—the latter may not correspond to a regular listening process.

Error: Only one usage of each socket address (protocol/network address/port) is normally permitted.

Cause and fix: A common Windows socket address conflict. Check the local port named in the log, identify the process listening on it, then exit the duplicate instance or assign this instance an unused port.

Error: bind: address already in use

Cause and fix: The specified address and port cannot be bound again, usually because another process is already listening. Check the listener on your system; this does not mean your subscription has expired.

Error: An attempt was made to access a socket in a way forbidden by its access permissions.

Cause and fix: Access to the port is restricted, possibly by an excluded port range or a security policy. Check listening processes and excluded ranges, then choose a port that is neither in use nor excluded.

2. Find the Process Listening on Port 10808 in Windows

Run these commands in Windows PowerShell. Start by checking TCP listeners; don’t assume the port is occupied just because 10808 appears somewhere in the output. Outbound connections can also include that number. Check the local address, local port, and listening state together.

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

OwningProcess is the process ID (PID). If the result shows PID 4321, run the command below. 4321 is only an example—replace it with the PID from your results. PIDs change when processes restart, so don’t reuse one from an earlier check.

Get-Process -Id 4321 | Select-Object Id, ProcessName, Path

Get-CimInstance Win32_Process -Filter "ProcessId = 4321" |
  Select-Object ProcessId, ExecutablePath, CommandLine

The executable path can help distinguish copies of the program in different folders, while the command line can identify the configuration used by the core. Some process details require administrator privileges; a missing path does not prove the process isn’t running. If you ask for help, don’t post the full command line or configuration—they may contain local paths or connection details.

Alternative: Use Command Prompt

netstat -ano -p tcp | findstr ":10808"
tasklist /FI "PID eq 4321"

3. Duplicate Instances, Orphaned Cores, and Excluded Ports

After identifying a process, exit it normally from the corresponding program’s tray menu, then check again. v2rayN may keep running in the system tray after its window closes. Another user session, a startup entry, or a copy in an older folder may also be holding the port. A core process name is only a clue—don’t end every process with the same name.

  1. Two instances of the same client: Decide which instance and folder to keep, then exit the other one. Check the tray icons and the file locations in Task Manager before restarting the instance you’re keeping.
  2. The core is still listening after exit: Check the PID’s path and command line. Once you’ve confirmed it belongs to the instance you just exited and isn’t needed for anything else, end it in Task Manager. Check the port again before restarting; don’t keep clicking Start.
  3. Another program needs the port: Don’t force-close a database, development service, or system process. Assign v2rayN a different set of ports and update the apps that use the proxy.
  4. No listener, but access is still denied: Check the system’s excluded port ranges. Features such as virtualization or container networking can affect port allocation, but rely on the output from your own system.
netsh interface ipv4 show excludedportrange protocol=tcp
netsh interface ipv6 show excludedportrange protocol=tcp

Check whether 10808 falls between the start and end ports in the output. If it does, choose a candidate outside that range; this is safer than removing a system reservation. If there’s no listener and the port isn’t in an excluded range, check the startup log, bind address, and security software records instead of repeatedly running the app as administrator and hoping it works.

4. SOCKS, HTTP, and Mixed Ports in Settings

Record the current settings, then open 「Settings」→「Parameter settings」 and look for local listener fields under 「Core basic settings」. Depending on the version and core combination, the interface may show a “local mixed listening port” or separate SOCKS and HTTP settings. Follow the options and startup log in your version; don’t assume there will be two separate fields.

10808
Port to Check in This Example
11808
Candidate Mixed or SOCKS Port
11809
Candidate HTTP Port

11808 and 11809 are examples for this guide, not a guarantee that they’re free on your PC. Check both ports with the commands above and verify they aren’t in an excluded range before saving. Port numbers don’t determine the protocol: 10808 is not inherently SOCKS, and 10809 is not inherently HTTP. The inbound configuration determines which requests a port accepts.

Current Setup Example Change What to Enter in Apps
Single Mixed Listener Set the local mixed listening port to 11808 Supported HTTP and SOCKS requests use this same entry point; apps must still be set to the correct proxy protocol
Separate SOCKS and HTTP Listeners Set SOCKS to 11808 and HTTP to 11809 Connect SOCKS apps to 11808 and HTTP proxy apps to 11809
Inbound in a Custom Configuration Check the listening port configured for the actual inbound in the config file Configure apps to match that inbound; settings in the interface may not change a custom file
  1. Note the original port, bind address, and system proxy mode so you can restore them if needed.
  2. Change the listener field actually in use under Parameter settings, not the server port for a node.
  3. Save the settings and restart the service. If your version has no separate restart option, exit the client normally and reopen it.
  4. Check this startup’s log for bind errors, then confirm that the new port is listening.

Key takeaway: Identify the inbound type before changing the port

If the interface has only a mixed port, there’s no need to look for or create a separate HTTP port. If it has separate settings, check both. A successful change means the expected core is listening on the new port—not merely that the number in the settings field has changed.

5. Update These Settings After Changing the Port

Manually configured proxy addresses usually don’t update when you change the local port. Check open terminal windows, browser-specific proxy settings, and download tools in particular. Existing connections may keep working briefly while new ones fail, so reopen apps before testing.

The examples below set proxy variables for the current PowerShell session. Use them only after confirming that the new port accepts the corresponding protocol. For a separate HTTP listener on 11809, use the first two lines as shown. For a mixed listener on 11808, change the port in those lines to 11808. The third line requires a SOCKS5 listener.

$env:HTTP_PROXY = "http://127.0.0.1:11809"
$env:HTTPS_PROXY = "http://127.0.0.1:11809"
$env:ALL_PROXY = "socks5h://127.0.0.1:11808"

6. Verify the New Port and Isolate the Failure

First verify the listener, then the proxy handshake, and finally the target website. This separates local port problems from proxy protocol and remote route issues. The commands below use example ports; replace them with your actual settings if they differ.

Test-NetConnection 127.0.0.1 -Port 11808

curl.exe --proxy socks5h://127.0.0.1:11808 --connect-timeout 10 --max-time 20 -I https://example.com/

curl.exe --proxy http://127.0.0.1:11809 --connect-timeout 10 --max-time 20 -I https://example.com/

Run just one curl.exe command that matches your inbound type. If your mixed listener uses port 11808, use 11808 for the HTTP test too. A successful Test-NetConnection confirms only that a TCP connection was established—not that the protocol matches or the remote node works. The example URL is for connectivity testing; whether traffic goes through the proxy depends on your current routing rules.

Result Check First Next Step
New port is not listening Did the settings take effect? Did the core start? Check the startup log, custom config, and actual bind address
Port is listening, but the proxy handshake fails Does the app’s HTTP or SOCKS setting match the listener? Correct the app’s proxy type and check whether it connected to another program
Connection times out after the proxy handshake Outbound node, DNS, and routing logs Troubleshoot the node connection; don’t keep changing the local port blindly
Command line works, but the browser fails Where the browser gets its proxy settings and whether an old process is running Update browser-specific settings, then fully quit and reopen the browser before testing

7. Final Checks for Recurring Conflicts

If the conflict returns every time you restart your PC, check startup apps and duplicate folders instead of continually increasing the port number. Keep one clearly designated client folder and record the listening ports and their purposes. If you really need two instances, assign each different listening ports and maintain separate proxy settings for their apps.

Once local listening is working again, troubleshoot subscriptions, nodes, or routing as needed. For the full installation and first-run steps, see the v2rayN setup guide. For other common errors, browse the FAQ.

Download v2rayN