Windows 10 解决端口被占用问题
2022-11-16 23:33:46 # Windows10

本文转载自:https://prime167.github.io/post/2021-10-28-Windows10-Port/
如涉及到侵权等问题请联系我:mail@weiqh.net

Windows 10 解决端口被占用问题

前几天启动hugo server时提示1313端口被占用,给分配了一个随机端口,打开自己写的程序,mqtt默认的1883端口也被占用,使用

1
netstat -ano | findstr 1883

没有任何返回 一番Google后得知某些端口被Hyper-V保留了。 解决方法:

  1. 关闭Hyper-V
1
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
  1. 重启后设置你想保留的端口,这样Hyper-V就不能再占用
1
2
# 排除ipv4动态端口占用 startport 起始端口 numberofports 端口数
netsh int ipv4 add excludedportrange protocol=tcp startport=<your port> numberofports=1

对于1313和1883端口,我执行了两次此命令:

1
2
netsh int ipv4 add excludedportrange protocol=tcp startport=1313 numberofports=1
netsh int ipv4 add excludedportrange protocol=tcp startport=1883 numberofports=1
  1. 重新启用Hyper-V,需要重启
1
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

再次查看端口排除范围(被系统或者我们自己保留的端口)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
λ netsh int ipv4 show excludedportrange tcp

协议 tcp 端口排除范围

开始端口 结束端口
---------- --------
80 80
1313 1313 *
1883 1883 *
1899 1998
1999 2098
2108 2207
2208 2307
2308 2407
2422 2521
2522 2621
2622 2721
2722 2821
2822 2921
5357 5357
45000 45000
50000 50059 *

* - 管理的端口排除。

带*就是我上面添加的。

如果要取消保留端口,可以执行

1
netsh int ipv4 delete excludedportrange protocol=tcp startport=<your port> numberofports=1

鸣谢本文作者:prime167