【问题标题】: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.
    

    要解决我的问题,我可以:

    1. 禁用 Hyper-V
    2. netsh int ipv4 add excludedportrange protocol=tcp startport=53000 numberofports=1(作为管理员)
    3. 启用 Hyper-V

    【讨论】:

      猜你喜欢
      • 2012-10-31
      • 2016-02-15
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      相关资源
      最近更新 更多