【问题标题】:Port not shown to be used in netstat, but trying to use the port is denied by Windows端口未显示在 netstat 中使用,但尝试使用该端口被 Windows 拒绝
【发布时间】:2020-11-25 04:56:02
【问题描述】:
我已经找到了这个问题的答案,只是想记录下我的发现。
在我最近的一个项目中,我发现一个端口在 netstat 中不会显示为正在使用,但是当我的项目尝试使用该端口时,会抛出一个错误。
例如,假设我要使用端口 53000:
netstat -ano | findstr :53000
不会显示任何内容,但如果我尝试在 Node.js 中使用该端口,则会引发权限错误。
【问题讨论】:
标签:
node.js
windows
port
netstat
【解决方案1】:
事实证明,Hyper-V、Docker 等会保留一系列端口。要找出保留的端口范围,请执行以下操作:
netsh interface ipv4 show excludedportrange protocol=tcp
在我的例子中,我会看到这样的东西:
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
49805 49904
50000 50059 *
50060 50159
50160 50259
50360 50459
50870 50969
50970 51069
51070 51169
51270 51369
52353 52452
52453 52552
52553 52652
52653 52752
52853 52952
52953 53052
53053 53152
53324 53423
56247 56346
56347 56446
56547 56646
56647 56746
* - Administered port exclusions.
要解决我的问题,我可以:
- 禁用 Hyper-V
-
netsh int ipv4 add excludedportrange protocol=tcp startport=53000 numberofports=1(作为管理员)
- 启用 Hyper-V