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.
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"
- In the
netstatoutput, find a row with a local address ending in:10808and the stateLISTENING. The last column contains the PID. 127.0.0.1:10808is an IPv4 loopback listener;0.0.0.0:10808listens on all IPv4 interfaces and may also prevent the loopback address from using the same port.- If you see
[::]:10808, check for IPv6 and dual-stack listening as well. Don’t assume the port is free just because an IPv4-only check found nothing. - If the log specifically reports a UDP bind failure, run
Get-NetUDPEndpoint -LocalPort 10808 -ErrorAction SilentlyContinue, then look up the process by PID. Check TCP and UDP port usage separately.
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.
- 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.
- 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.
- 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.
- 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.
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 |
- Note the original port, bind address, and system proxy mode so you can restore them if needed.
- Change the listener field actually in use under Parameter settings, not the server port for a node.
- Save the settings and restart the service. If your version has no separate restart option, exit the client normally and reopen it.
- 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.
- Windows system proxy: Reapply the current mode from v2rayN’s “System Proxy” menu—for example, select “Set system proxy” again. Then open
「Settings」→「Network & Internet」→「Proxy」and verify the active server and port. Labels may differ slightly between Windows versions. - Browser-specific proxy: If you entered
127.0.0.1:10808manually in the browser settings or an extension, update it to the new address and protocol. If the browser follows the system proxy, check the system settings instead. - Terminal environment variables: Check
HTTP_PROXY,HTTPS_PROXY,ALL_PROXY, and the tool’s own settings. Temporary variables affect only the current terminal and new child processes. After changing user environment variables, you’ll usually need to reopen the terminal. - Development and download tools: Check the proxy protocol, address, and port in each tool’s settings. A remote website using HTTPS does not mean the local HTTP proxy address must start with
https://. - Startup apps and scripts: Check whether startup still launches a client from an old folder or a script hard-codes the old port. Otherwise, the conflict may return at your next sign-in.
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.
- Confirm that the new port’s listening PID belongs to the expected process and that you’ve identified what was listening on the old port. Don’t stop troubleshooting just because you can temporarily access the internet.
- Make sure the system proxy no longer points to the old port. Before exiting the client, use it to clear any system proxy settings you no longer need.
- Test again after restoring your usual TUN or routing mode; don’t rely on a temporary test mode that happens to work.
- When asking for help, include your OS and client versions, the full error line, the port, and the process name. Hide subscription URLs, account details, and node credentials.
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.