我在Windows 10 21H1上,我使用OpenVPN连接到办公室。
有时我会遇到这个错误:
MANAGEMENT: Socket bind failed on local address [AF_INET]127.0.0.1:25340
当它发生时,我可以找到一行表明该端口处于排除范围内,就像打击一样。
PS C:\> netsh interface ipv4 show excludedportrange protocol=tcp
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
25305 25404
范围有很多,我已将其省略。
我知道此错误与 Hyper-V 有关(https://superuser.com/a/1586869/614603),但我需要基于 Hyper-V 的 WSL2。此外,由于我运行很多东西,我不想更改动态 TCP 端口范围 :P
我想知道我是否可以更改 OpenVPN 使用的本地端口或端口范围。
答案1
我遇到了同样的问题,你的问题实际上让我想起了 WSL2 导致保留端口的问题。谢谢!
至于更改 OpenVPN 上的端口,这在 Windows 客户端上很简单。
- 右键单击系统托盘中的 OpenVPN GUI 图标。
- 单击“设置”。
- 单击“高级”选项卡。
- 将“端口偏移”设置更改为不在保留范围内的值。
- 单击“确定”。
进行此更改后,我就能成功连接。
上次我遇到此问题时,我禁用了排除的端口,并且有一些资料可以告诉您如何进行更改,例如:
- 在 Windows 主机的 PowerShell 中,我运行 netsh int ipv4 set dynamic tcp start=51001 num=5000 将动态端口范围重置为我知道我的应用程序均未使用的区域。
- 我还运行了 reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f 来禁用 HNS 端口排除行为,因为 netsh int ipv4 show excludedportrange protocol=tcp 显示了许多未归因于其他任何东西的排除端口。
- 重启
来源:https://hungyi.net/posts/wsl2-reserved-ports/
对我来说,OpenVPN 更改实施起来更简单,几分钟内就可以启动并运行。希望这能有所帮助!