先用系统命令直出pid:macos/linux运行lsof -ni :5500,windows powershell运行get-nettcpconnection -localport 5500,cmd运行netstat -ano | findstr :5500;查到pid后用ps或tasklist确认进程名,常见为code helper、node、code.exe;杀进程需分步:macos/linux先kill再kill -9,windows用taskkill /f /t /pid;更彻底可全局清理vs code进程;验证无输出后,优先改liveserver.settings.port为5501等空闲端口并重新go live。

Live Server 报 Port 5500 is already in use 怎么快速定位谁在占
不是所有“被占用”都来自外部程序,大概率是 VS Code 自己的残留进程。先别关浏览器或杀一堆进程,用系统命令直出真实 PID:
- macOS/Linux:
lsof -ni :5500(加-n避免 DNS 卡顿,-i只查网络连接) - Windows PowerShell:
Get-NetTCPConnection -LocalPort 5500(直接返回OwningProcess字段,就是 PID) - Windows CMD:
netstat -ano | findstr :5500(注意输出中 PID 是十进制,需在任务管理器“详细信息”页开启“PID”列才能匹配)
查到 PID 后,立刻用 ps -p 1234 -o comm=(macOS/Linux)或 tasklist /fi "PID eq 1234"(Windows)确认进程名。常见结果是 Code Helper、node、Code.exe——基本都是 Live Server 上次没退出干净留下的。
杀进程不能一上来就 kill -9 或 taskkill /f
硬杀容易让子线程继续占端口或锁文件,尤其 node 进程常挂载 npm/yarn 子进程。正确顺序是:
- macOS/Linux:先
kill 1234(发 SIGTERM),等 2 秒无响应再kill -9 1234 - Windows:用
taskkill /f /t /pid 1234,其中/t关键——它会连带干掉所有子进程 - 更彻底(VS Code 全局清理):
macOS/Linux 执行killall -r "Code Helper|Code|Electron"
Windows 执行taskkill /f /t /im Code.exe && taskkill /f /t /im CodeHelper.exe
杀完立刻验证:lsof -i :5500 或 Get-NetTCPConnection -LocalPort 5500 应该无输出。有输出说明还有漏网之鱼。
改 liveServer.settings.port 比杀进程更省事
Live Server 的端口配置不藏在全局设置里,必须进插件专属配置改。路径是:VS Code 设置(Cmd+, 或 Ctrl+,)→ 搜索 liveServer.settings.port → 填入空闲端口如 5501、8080、3001。
- 别填
0:Live Server 不支持 “随机端口”,会报Invalid port number - 避开
1024以下端口(如80、443):普通用户权限无法绑定,静默失败或报EACCES - 改完必须点右下角
Go Live重新触发——旧服务不会自动 reload 配置 - 多工作区可单独配:在项目根目录的
.vscode/settings.json里写"liveServer.settings.port": 5502
为什么改了端口还报 EADDRINUSE?检查是不是绑定地址惹的祸
有时候你改了 port,但新进程仍报冲突,根源可能是绑定地址不同但端口重叠:
- 前一个进程监听的是
0.0.0.0:5500,新进程试图绑127.0.0.1:5500,系统认为是不同地址,但端口实际共享 - 更隐蔽的是 IPv6 的
::1(localhost)和 IPv4 的127.0.0.1看似不同,端口却共用 - Live Server 默认只绑
127.0.0.1;若要局域网访问或避免这类冲突,顺手把liveServer.settings.host改成0.0.0.0
真正麻烦的不是端口数字本身,而是多个进程对同一端口+不同地址组合的争夺逻辑——查 PID 时记得看 lsof -i :5500 输出里的 ADDRESS 列,比只盯 PID 更准。











