绝大多数情况是远程vscode-server未启动或崩溃,删除~/.vscode-server重装可解决80%以上“Installing/Failed to fetch/Cannot find module”问题;原因包括目录权限错误(非当前用户所有)、磁盘空间不足等。

VSCode无法启动远程服务器,绝大多数情况不是SSH连不上,而是远程端的 vscode-server 进程根本没起来,或者起一半就崩溃了。直接删掉 ~/.vscode-server 重装,能解决 80% 以上的“连接成功但卡在 Installing / Failed to fetch / Cannot find module”类问题。
为什么 vscode-server 启动失败?
VSCode 在远程首次连接时,会自动下载、解压并运行 vscode-server —— 它是个独立的 Node.js 进程,不依赖你本地 VSCode 的 UI,但极度依赖远程环境的完整性。常见硬性失败点包括:
-
~/.vscode-server目录被 root 创建过,当前用户无写权限(ls -ld ~/.vscode-server看 owner) - 远程磁盘空间不足(
df -h ~查家目录剩余空间, - 挂载选项含
noexec(比如安全加固后的/home分区),导致code-server二进制无法执行 - 远程系统是 Alpine 或最小化镜像,缺
glibc或tar/curl,连自动下载这步都走不完 -
~/.zshrc或~/.bashrc末尾有无条件read、echo或阻塞调用,非交互式 shell 启动时直接退出
怎么确认是 vscode-server 没跑起来?
别只看 VSCode 界面提示,直接登录服务器查真实状态:
- 执行
ps aux | grep code-server:没输出,说明进程根本没启;有输出但STAT是Z(僵尸)或T(暂停),说明已崩溃 - 检查
~/.vscode-server/bin/是否为空或只有部分文件(正常应有完整子目录如abcd1234...+bin/code-server) - 看日志:
cat ~/.vscode-server/.cli.log(如果存在),里面常有Cannot find module 'vs/server/main'或Permission denied - 手动运行一次:
~/.vscode-server/bin/abcd1234.../bin/code-server --port=0 --host=127.0.0.1 --enable-remote-agent-connection,观察报错
清理和重装必须同步做两件事
只清远程、不清本地,或反过来,都会导致版本错配、哈希校验失败、静默卡死。务必一起操作:
- 在 VSCode 命令面板(
Cmd+Shift+P)运行Remote-SSH: Kill VS Code Server on Host—— 这会终止残留进程并清本地缓存元数据 - 立刻用终端 SSH 登上去,执行:
rm -rf ~/.vscode-server(注意:不是~/vscode-server,也不是加了-insiders后缀的) - 重启 VSCode(不是 reload window),再重新触发
Connect to Host,让插件从头走完整部署流程 - 如果卡在 “Downloading”,说明网络问题,此时不要等:去
https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable手动下载 tar.gz(COMMIT_ID 可从本地 VSCode 关于页复制),上传后解压到~/.vscode-server/bin/COMMIT_ID/,路径必须严格匹配
最易被忽略的是:~/.vscode-server 目录权限错误、shell 初始化脚本里埋了“雷”、以及云服务器安全组放行了 22 端口却没放通 vscode-server 动态监听的随机高危端口(通常 30000–39999)。这些地方不出错则已,一出就是“连得上但打不开”的玄学问题。



















