Live Server 浏览器不弹出需检查 liveServer.settings.CustomBrowser 设为 default;WSL/SSH 下语言服务器连不上要确认端口转发与防火墙规则;AI 插件报错优先核对 endpoint 与 API Key 匹配;Node.js 端口冲突应使用带子进程清理的 kill 命令。

Live Server 启动成功但浏览器不弹出,先查 Browser Preview 设置
VS Code 的 Live Server 插件报 “Server is started at 5500 but failed to open in Browser Preview”,不是服务器没起来,而是它试图把预览交给一个叫 BrowserPreview 的扩展来渲染。这个选项默认可能被勾选,但你根本没装、或装了但没启用、或版本不兼容。
检查路径:设置 → 搜索 liveServer.settings.CustomBrowser,确认值是 default(走系统默认浏览器),而不是 browserPreview 或其他非标准值。如果看到后者,直接删掉或改成 default。
验证方式:改完后点一次 Go Live,看终端是否输出 Opening with default browser;再手动访问 http://127.0.0.1:5500,能打开就说明服务本身没问题。
Remote-WSL 或 Remote-SSH 下语言服务器连不上,重点查 WSL 网络端口转发
当你在 WSL 中启动了语言服务器(比如 typescript-language-server 或 pyright),但 VS Code 提示 “Cannot connect to server” 或卡在 initializing,大概率是端口没通过去。WSL2 默认用虚拟网卡(如 172.28.112.1),而 VS Code 远程插件需要明确知道怎么把请求从 Windows 侧转发到 WSL 侧的某个端口。
必须确认两件事:
-
Remote - WSL插件已启用,且版本 ≥v0.80.0(旧版对端口映射支持不完整) - Windows 防火墙放行了 WSL 虚拟交换机入站规则——运行
Test-NetConnection -ComputerName 172.28.112.1 -Port 22,返回TcpTestSucceeded : True才算通
如果失败,进 Windows Defender 防火墙 → 高级设置 → 入站规则 → 找到 “WSL” 或 “Hyper-V” 相关规则并启用。别只依赖“允许应用通过防火墙”那个图形界面,它对 WSL 不敏感。
Codex / Cline / Continue 类 AI 插件报 local proxy failed 或 401,优先核对 endpoint 和 API Key 是否匹配
这类插件常内置本地代理(比如监听 127.0.0.1:3001),用来中转请求到远端模型服务。一旦配置里 Base URL 指向了一个没跑起来的本地地址,就会报 local proxy failed;如果指向了远端(如 https://taotoken.net/api)但 API Key 是旧的或空的,就报 401 Unauthorized。
排查动作很直接:
- 打开插件设置面板,找
API Provider或Base URL字段,确认它和你手里的API Key属于同一套服务(例如都指向 TaoToken 的https://taotoken.net/api) - 不要混用:一个插件配本地代理,另一个配远端,Key 却复用同一个——这会导致认证和连接错误交替出现
- 用
curl快速验证通路:curl -H "Authorization: Bearer YOUR_KEY" https://taotoken.net/api/v1/models,返回 200 才算基础链路 OK
Node.js 调试器或语言服务器端口冲突,不能只靠 kill -9
VS Code 报 EADDRINUSE,常见于调试 Node.js 时端口(如 9229)被占,或语言服务器(如 rust-analyzer)监听的 tcp://127.0.0.1:5000 冲突。但直接 kill -9 或 taskkill /f /pid 很容易漏掉子进程——npm/yarn/node 子线程继续占着端口或锁文件。
正确做法分两步:
- macOS/Linux:
kill 1234(发 SIGTERM),等 2 秒无响应再kill -9 1234 - Windows:
taskkill /f /t /pid 1234(关键在/t,连带杀子进程) - 更彻底清理 VS Code 自家进程:
killall -r "Code Helper|Code|Electron"(macOS/Linux)或taskkill /f /t /im Code.exe(Windows)
杀完立刻验证:lsof -i :9229 或 Get-NetTCPConnection -LocalPort 9229 应该无输出。有输出说明还有残留进程在后台偷偷跑着。
端口通信故障最麻烦的地方不在“找不到谁在占”,而在于“你以为改了配置就生效,其实插件根本不读那个地方”。比如 launch.json 里的 port 只管 V8 调试器,对 Live Server 或 Codex 完全无效;remote.SSH.defaultForwardedPorts 才管 SSH 场景下的端口映射。得先分清哪个组件在用哪个端口,再找对配置项下手。


















