【发布时间】:2019-05-29 08:07:49
【问题描述】:
我有一个 Windows 应用程序需要使用端口 50005 和 50006,但它被阻止了。
我在运行netsh int ip show excludedportrange protocol=tcp 时看到以下内容:
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
5357 5357
49709 49808
49809 49908
49909 50008
50009 50108
50109 50208
50280 50379
* - Administered port exclusions.
所以我机器上的某些东西将端口49909 保留到50008,这可能是导致我的应用程序失败的原因。我尝试使用以下命令删除此excludedportrange:
netsh int ip delete excludedportrange protocol=tcp numberofports=100 startport=49909
但是我看到一个错误Access is denied.,这让我认为保留此端口的任何东西都在积极运行,但我不知道那可能是什么。
同样奇怪的是,运行该命令后,即使我看到了错误,但如果我重新启动,excludedportrange 会有所不同。
作为健全性检查,我还运行了resmon.exe 并确认端口50005 和50006 上没有运行任何内容。
我如何知道添加excludedportrange 的内容是什么?
编辑:我已将范围缩小到 Hyper-V。如果我禁用 Hyper-V,则不会排除这些端口。
【问题讨论】:
-
@AnkurGoel 似乎没有使用这些端口范围内的任何东西。
-
关闭 Hyper-V 对我有用。去打开或关闭 Windows 功能并取消选择 Hyper-V (Windows 10)。我认为问题在于 Hyper-V 随机保留了包含我需要运行的端口的端口范围
-
解决方案是在运行任何 hyper-v 相关资产之前在启动时保留端口。见stackoverflow.com/questions/48478869/…。我相信您无法释放这些端口,因为它们是由 SYSTEM 主体保留的。
-
这太疯狂了。保留端口范围?无法查看保留它们的内容,并且无法使用管理员权限取消保留它们?这是什么搞砸的功能?这突然停止了“使用中的端口”错误的开发,并且没有使用该端口。在我没有授权的另一个拙劣的 Windows 更新之后(Windows 现在只是强制它,尽管禁用了该服务)。
-
@Liam 有人解决过这个问题吗?我的 Sonos 正在尝试绑定到端口 3410,但那在排除范围内(这真的很长),我无法弄清楚这是怎么回事 - 就像你 Liam 一样,实际上没有任何东西使用端口 3410,但绑定被禁止无论如何通过 Windows
标签: windows networking tcp port netsh