一、问题描述
经常在电脑重启之后打开容器 / 启动IDEA / 运行 Spring Boot 应用时,会报某个端口已经被占用,如何知道自己电脑的端口,但是在使用netstat -aon | findstr &34;时却找不到占用端口的程序,往往在电脑重启之后会解决这个这个问题。
二、原因
Widows 默认把某些端口范围分给了某些进程,成为了保留端口,所以我们无法使用这个端口。并且由于这个端口分配在电脑重启的时会重新随机分配,所以出现了前面重启电脑的解决办法。
1. 查看 Windows 默认的 tcp 动态端口范围
以管理员打开CMD,使用命令netsh int ipv4 show dynamicport tcp就可以查看
netsh int ipv4 show dynamicport tcp
1、在键盘上按下组合键win+r打开运行对话框。/iknow-pic.cdn.bcebos.com/3c6d55fbb2fb4316c2c934d12da4462308f7d343"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/3c6d55。
设置之前的结果
1、首先,按住键盘上的快捷键win+R,弹出运行对话框,键入”cmd”并回车。2、弹出对话框,在命令提示符键入“netstat _a _n”,我们就能看到当前电脑的网络端口使用情况。3、结果含义:协议是指连接使用的协议名称,本地地。
查看默认的tcp动态端口范围
这里可以看到默认的 tcp 动态范围为 1024-13977。
2. 查看保留端口范围
> netsh interface ipv4 show excludedportrange protocol=tcp
设置之前的结果
查看保留端口范围
可以看到 IDEA 运行所需的端口在这个范围内,有时候 3306这样的端口也会在这个范围中包括,从而不能运行 MySQL。
三、解决问题
使用管理的身份运行 CMD ,设置动态端口的范围,使得这个保留端口的范围避开我们需要的端口范围。
> netsh int ipv4 set dynamicport tcp start=49152 num=16383
查主机IP和网络端口:1、点击“开始”,然后点击“所有程序”。2、在“所有程序”中,点击“附件”。在“附件”中点击“命令提示符”打开命令提示符窗口。3、命令提示符窗口打开,如图所示。4、在命令提示符窗口中输入“ip。
然后重新启动电脑,使用上面的命令检查端口占用