Vite默认端口号 5173
启动遇到如下错误:
bash
error when starting dev server:
Error: listen EACCES: permission denied ::1:5173
at Server.setupListenHandle [as _listen2] (node:net:1918:21)
at listenInCluster (node:net:1997:12)
at GetAddrInfoReqWrap.callback (node:net:2206:7)
at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:134:8)
ELIFECYCLE Command failed with exit code 1.
解决办法改个端口号就行:
ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
export default defineConfig({
plugins: [react()],
server: {
host: 'localhost',
port: 3000
}
});
排查步骤
permission denied
被拒绝首先想到端口占用了,以管理员身份打开 PowerShell 输入命令查看是被哪个程序占用。
PowerShell
netstat -ano | findstr :5173
结果什么也没输出,换个已启用的3000端口查看,发现有输出,命令没问题。
PowerShell
PS C:\Windows\system32> netstat -ano | findstr :3000
TCP [::1]:3000 [::]:0 LISTENING 23644
经检索 https://github.com/vitejs/vite/issues/5801
提到可能是有 windows 保留端口导致的 vite 默认端口号不起作用。
通过 netsh interface ipv4 show excludedportrange protocol=tcp
命令可以用来检查系统保留的端口范围:
PowerShell
协议 tcp 端口排除范围
开始端口 结束端口
---------- --------
.... ....
5172 5271
.... ....
破案了,5172 到 5271 之间的端口被保留了,我安装了 docker 和 WSL2,电脑未重启前正常,重启后因为保留端口的问题,vite 默认端口号 5173
在保留范围内,所以启动项目被拒绝了,就如开头解决方法一样,换个端口号就行了。