netstat 中未显示正在使用的端口,但尝试使用该端口被 Windows 拒绝

2024-05-27

我已经找到了这个问题的答案,只是想记录我的发现。

在我最近的一个项目中,我发现某个端口不会在 netstat 中显示为正在使用,但是当我的项目尝试使用该端口时,会抛出错误。

例如,假设我想使用端口 53000:

netstat -ano | findstr :53000

什么都不会显示,但如果我尝试使用该端口Node.js,会抛出权限错误。


事实证明,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.

为了解决我的问题,我可以:

  1. 禁用 Hyper-V
  2. netsh int ipv4 add excludedportrange protocol=tcp startport=53000 numberofports=1(作为管理员)
  3. 启用 Hyper-V
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

netstat 中未显示正在使用的端口,但尝试使用该端口被 Windows 拒绝 的相关文章

随机推荐