Windows 下端口被占用问题排查与解决
问题描述
在 Windows 11 下使用 VSCode 启动 Vue 项目时,出现以下报错:
1 | ERROR error when starting dev server: |
原因分析
在 Windows 中,某些端口范围可能被系统保留用于特定服务,例如动态端口分配给 Hyper-V 虚拟机、Windows 更新服务或其他网络服务。
这个分配的行为是动态且随机的,所以会出现之前用的好好的端口,突然不可用的情况。
解决方案
方案一:指定可用端口临时启动
使用 vite 命令指定一个可用端口来启动:
1 | vite --port 8080 |
方案二:查看被系统保留的端口范围
通过 netsh 命令查看 TCP 协议下被排除的端口范围:
1 | netsh interface ipv4 show excludedportrange protocol=tcp |
该命令会列出 TCP 协议下被系统保留、不能被使用的端口范围,了解哪些端口不可用后,就可以避开这些端口启动服务。
netsh(网络壳层)是 Windows 提供的一个脚本化命令行工具,用于本地或远程配置网络设备。这个命令在网络故障排除中非常有用,特别是遇到端口冲突问题时。
方案三:排除指定端口范围(推荐)
除了临时指定可用端口外,还可以将某个端口范围排除,使其不会被系统动态分配,一劳永逸地解决问题。
操作步骤:
以管理员身份打开命令提示符
查看当前的动态端口范围:
1
2netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp设置新的动态端口范围,排除想保留的端口。
- 一般 TCP 动态端口默认范围是
1024-15000 - UDP 动态端口默认范围是
49152-65535 - 例如要保留
5000-5100范围,可以调整 TCP 动态端口范围为35175-49151:
1
netsh int ipv4 set dynamicport tcp start=35175 num=13977
num参数是端口数量,计算方式为end_port - start_port + 1。确保新的范围覆盖了原来的范围,同时绕过了想保留的端口。- 一般 TCP 动态端口默认范围是
重新启动计算机以应用更改。
- Title: Windows 下端口被占用问题排查与解决
- Author: 清夏晚风
- Created at : 2026-05-30 22:48:41
- Updated at : 2026-07-19 01:57:11
- Link: https://blog.yuil.cn/2026/05/30/Windows 下端口被占用问题排查与解决/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments