离线安装vscode插件必须用.vsix文件,它是官方唯一合法入口;需从市场页面下载或vsce构建,确保版本兼容,并在code-server等环境中使用对应命令行工具安装。

离线安装 VSCode 插件必须用 .vsix 文件
VSCode 官方不提供“离线安装包集合”,所有插件离线部署的唯一合法入口就是 .vsix 文件。它本质是一个 ZIP 压缩包,含插件全部代码、package.json、图标、语言包等,不依赖 Marketplace 运行时校验。
常见错误是试图把插件目录(如 ~/.vscode/extensions/xxx)直接复制过去——这会失败,因为 VSCode 启动时会校验签名、检查依赖、触发激活逻辑,而这些在无网络+无 Marketplace 上下文时无法补全。
- 正确做法:在有网机器上,打开 VSCode 插件市场网页(
https://marketplace.visualstudio.com/items?itemName=xxx),找到「Download Extension」按钮,下载xxx-1.2.3.vsix - 若插件页面没提供下载按钮,可用命令行工具
vsce(需提前 npm install -g @vscode/vsce)执行vsce package从源码构建(仅适用于开源插件) - 注意版本兼容性:
.vsix文件名中的版本号需匹配目标 VSCode 的engines.vscode要求,例如"^1.80.0"的插件不能装在1.75.0的 VSCode 上
Code-Server 环境下安装 .vsix 要绕过浏览器权限限制
私有云常用 Code-Server,但它的浏览器沙箱比本地 VSCode 更严格——尤其是剪切板、文件系统、扩展安装 API 默认被禁用。直接拖拽 .vsix 到界面会静默失败,控制台可能报 SecurityError: Permission denied to access property "clipboard" 或 ExtensionGalleryService#installFromVSIX failed。
解决路径只有一条:跳过 UI,走服务端命令行安装。
- 先 SSH 登录运行 Code-Server 的服务器,确认 Code-Server 进程用户(常为
code-server或root),切换到该用户环境 - 执行
code-server --install-extension /path/to/plugin.vsix(注意不是code命令,code-server才识别自己的插件目录) - 插件默认装在
~/.local/share/code-server/extensions/,而非~/.vscode/extensions/;若自定义了--extensions-dir,需对应调整路径 - 重启 Code-Server 进程(
kill -SIGUSR2或完整 restart),否则新插件不会加载
deepseek-r1 类插件离线使用必须配 baseUrl 和本地模型
像 deepseek-r1 这类 AI 插件,离线能用 ≠ 安装完就能用。它默认连云端 API,即使插件本身装上了,没网络照样报 Failed to fetch 或卡在 loading 状态。
真正离线可用,要满足两个硬条件:
- 配置
deepseek.baseURL指向你私有云里已部署的本地 LLM 服务(如 Ollama 的http://localhost:11434/api/chat,或 FastChat 的http://10.10.20.5:8000/v1/chat/completions) - 确保该服务已加载 DeepSeek-R1 模型(例如
ollama run deepseek-r1:1.5b),且监听地址对 Code-Server 进程可访问(注意容器网络、防火墙、bind 地址是否为0.0.0.0) - 禁用所有依赖公网的选项:关闭
deepseek.apikey(留空)、关掉自动更新提示、在插件设置里取消勾选「Report anonymized usage」
漏掉任意一项,插件都会在后台反复尝试外网连接,拖慢响应甚至导致整个扩展主机崩溃。
代理设置对离线场景其实是双刃剑
有些团队误以为“设了代理就能让离线环境假装联网”,这是危险操作。VSCode/Code-Server 在安装插件时若检测到 http_proxy 环境变量,仍会尝试走代理请求 Marketplace 元数据(比如插件图标、评分、依赖列表),一旦代理不可达或返回 404,就会中断安装流程,报错 Unable to fetch extension metadata。
更隐蔽的问题是:代理配置可能残留在多个地方,导致你以为断网了,其实流量还在偷偷往外发。
- 检查并清空三处代理:Shell 环境(
env | grep -i proxy)、~/.ssh/environment(SSH 登录时注入)、/etc/ssh/sshd_config中的PermitUserEnvironment yes配置(若不需要,建议设为no) - Code-Server 自身也读取
HTTP_PROXY,可在启动命令中显式覆盖:HTTP_PROXY="" HTTPS_PROXY="" code-server --extensions-dir /opt/ext --auth password ... - 如果必须保留代理(如内网镜像源),请确保代理能稳定返回 200 给
https://marketplace.visualstudio.com相关路径,否则不如彻底关闭
离线部署最稳的姿势,是物理断网 + 环境变量清零 + 所有依赖打包到位。任何“半离线”妥协,往往在某个深夜排查超时问题时付出十倍代价。











