【Windows】电脑端口明明没有进程占用但显示端口被占用(动态端口)

@TOC

一、问题

重启电脑后,启用某个服务显示1089端口被占用。

查看是哪个进程占用了:

bash 复制代码
netstat -aon | findstr "1089"

没有输出,但是换其他端口,是可以看到相关进程的:

现在最简单的方式是给我的服务指定另一个端口,其次是重启电脑。

但前面的问题可能还会出现。

二、原因和解决方案

2.1 原因

🟢原因是Windows动态端口分配错误,这应该是一个Bug,你有时重启电脑会遇到,有时又是正常的。

动态端口是指那些不固定分配给特定服务,而是由系统动态分配给需要网络通信的应用程序的端口。

关于动态端口,可以在微软官网找到一些文档:

🔹排查端口耗尽问题

🔹Windows 服务概述和网络端口

🔹自 Windows Vista 和 Windows Server 2008 以来,TCP/IP 的默认动态端口范围已更改

TCP 和 UDP 协议基于用于建立连接的端口号工作。 需要建立 TCP/UDP 连接的任何应用程序或服务都需要其端的端口。

有两种类型的端口:

  • 临时端口(动态端口):是默认情况下每台计算机必须建立出站连接的端口集。
  • 已知端口:是特定应用程序或服务的已定义端口。 例如,文件服务器服务位于端口 445 上,HTTPS 为 443,HTTP 为 80,RPC 为 135。 自定义应用程序还将具有自己定义的端口号。

为了遵守 Internet 分配号码机构 (IANA) 建议,Microsoft 增加了传出连接的动态客户端端口范围。 新的默认启动端口为 49152,新的默认结束端口为 65535( 在 Windows Server 2008 和更高版本以及 Windows Vista和更高版本中 )。 此增加是从使用默认端口范围 1025 到 5000 的早期版本的 Windows 的配置所做的更改。


查看电脑的动态端口范围:(命令中ipv4可以换成v6,tcp也可以画出udp,总共4中组合)

bash 复制代码
netsh int ipv4 show dynamicport tcp  

可以看到,有的类型端口范围是不对的,我是Windows11 24H2,当然23H2的时候也遇到过这个问题。

再查看被系统保留的端口(现在不可用):

bash 复制代码
netsh int ipv4 show excludedport tcp

2.2 解决

重新设置动态端口的范围。

起始端口设置为49152,终止不要超过65535即可。

建议给tcp、udp、v4、v6都设置一下。

命令格式:

bash 复制代码
netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=number num=range

比如:

bash 复制代码
netsh int ipv4 set dynamicport tcp start=49152 num=10000

netsh int ipv4 set dynamicport udp start=49152 num=10000

netsh int ipv6 set dynamicport tcp start=49152 num=10000

netsh int ipv6 set dynamicport udp start=49152 num=10000

命令需要以管理元身份打开命令行运行。我是Windows 11 24H2,在命令前面加个sudo即可。

现在虽然已经修改了动态范围,但还需要重启电脑,因为之前已经有一些动态端口被系统服务保留了,比如Hyper V

重启后再查看:

相关推荐
正经教主28 分钟前
【基础】Windows开发设置入门3:在 Windows 11 上设置开发驱动器,提升性能速度
windows·开发环境·开发驱动器
Xam_d_LM1 小时前
【Linux】如何清除 Ubuntu 留下的 EFI 分区,Windows 磁盘管理器右键删除卷是灰色
linux·运维·windows·ubuntu·重装系统·磁盘管理器
shandianchengzi2 小时前
【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
windows·计算机外设·显示器·工具·软件
love530love14 小时前
Windows避坑部署CosyVoice多语言大语言模型
人工智能·windows·python·语言模型·自然语言处理·pycharm
路人与大师15 小时前
从lightrag的prompt到基于openai Structured Outputs 的优化实现思路
windows·microsoft·prompt
shandianchengzi15 小时前
【记录】Windows|竖屏怎么调整分辨率使横竖双屏互动鼠标丝滑
windows·计算机外设·显示器·鼠标·分辨率·双屏
Mcband1 天前
EasyExcel动态表头
java·windows
L_cl1 天前
【NLP 75、如何通过API调用智谱大模型】
linux·服务器·windows
海尔辛1 天前
学习黑客Active Directory 入门指南(一)
windows·学习·ad
※※冰馨※※1 天前
彻底解决QT5 中文编译不过问题
c++·windows·qt