1. 问题现象与初步排查
最近在启动一个基于Vue3+Vite的前端项目时,遇到了一个棘手的报错:
code复制error when starting dev server: Error: listen EACCES: permission denied ::1:5173
at Server.setupListenHandle [as _listen2] (node:net:1855:21)
at listenInCluster (node:net:1920:12)
at GetAddrInfoReqWrap.doListen [as callback] (node:net:2075:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:109:8)
这个错误表明Vite开发服务器尝试在本地IPv6地址(::1)的5173端口上启动时,遇到了权限被拒绝的问题。作为一名长期使用Vue生态的开发者,我深知这类端口问题会严重影响开发效率,于是决定深入排查。
1.1 基础检查:端口占用情况
首先按照常规思路,我检查了5173端口是否被其他进程占用:
bash复制netstat -ano | findstr "5173"
结果显示没有进程占用该端口,排除了最常见的端口冲突可能性。这让我意识到问题可能更加底层。
1.2 权限问题排查
接下来我尝试以管理员身份运行项目,因为EACCES错误通常与权限相关:
- 右键点击终端或IDE
- 选择"以管理员身份运行"
- 重新执行
npm run dev
然而问题依旧,这说明单纯的权限提升并不能解决这个问题。此时我开始怀疑是系统层面的端口限制。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows系统端口保留机制探究
2.1 检查系统保留端口范围
在Windows系统中,有一系列端口被系统保留用于特定用途。通过以下命令可以查看这些保留范围:
bash复制netsh int ipv4 show excludedportrange protocol=tcp
执行后输出的结果类似这样:
code复制协议 tcp 端口排除范围
开始端口 结束端口
------- --------
5357
