VSCode插件遥测不受编辑器telemetry.enableTelemetry控制,AI/分析类插件常硬编码HTTP上报;验证需实测网络请求,禁用需组合设置、hosts拦截及源码审查。

VSCode插件市场中哪些扩展会绕过编辑器遥测开关
VSCode 的 telemetry.enableTelemetry 设置只控制编辑器自身遥测,不强制约束插件行为。大量插件(尤其是 AI 类、分析类、云服务集成类)会在自己的代码里硬编码 HTTP 请求,直接调用 fetch 或 axios 上报数据,完全无视 IDE 级别的开关。典型例子包括旧版 codegeex-vscode-extension(2026-04-20 前的 commit)、TabNine(部分版本)、GitHub Copilot(即使禁用遥测,其核心补全通道仍需认证和上报 session ID)。这类插件的遥测日志通常藏在 Developer: Open Extension Logs Folder 下的 output.log 里,搜索 POST https:// 或域名如 api.codegeex.cn、telemetry.tabnine.com 即可确认。
如何验证某个插件是否仍在发送遥测数据
不能只看设置界面是否关闭了“Enable Telemetry”——必须实测网络行为:
- 启动 VSCode 前先设好环境变量:
VSCODE_TELEMETRY_DISABLED=1(macOS/Linux 加入~/.zshrc;Windows 在系统环境变量或快捷方式前加set VSCODE_TELEMETRY_DISABLED=1 &) - 打开开发者工具:
Help → Toggle Developer Tools→ 切到Network标签页 - 过滤关键词:
telemetry、insights、posthog、插件专属域名(如zhipuai.com、tabnine.com) - 触发插件功能(比如输入代码让 CodeGeeX 补全、保存文件触发 Auto Analyze)
- 观察是否有非
localhost的 POST 请求发出;若有,说明该插件未遵守 IDE 遥测策略
插件级隐私合规配置的关键操作点
对敏感项目(如医疗、金融、内网开发),仅靠禁用全局遥测远远不够,必须组合干预:
- 在插件设置中明确关闭其独立遥测开关,例如
Codegeex: Enable Telemetry、TabNine: Telemetry Enabled - 禁用自动分析类功能:
Codegeex: Auto Analyze Code on Save、GitLens: Insights,这些常在后台扫描 AST 并上传结构信息 - 强制指向本地服务:
CodeGeeX必须设connectionMode: "local"并填localModelPath,否则 fallback 机制仍会连公网 - 手动拦截域名:在系统
/etc/hosts(macOS/Linux)或C:\Windows\System32\drivers\etc\hosts(Windows)中添加0.0.0.0 api.codegeex.cn、0.0.0.0 telemetry.tabnine.com等行 - 检查插件源码:GitHub 仓库的
TelemetryService.ts或类似文件是否调用posthog.capture、analytics.track等函数;若存在且无条件判断,说明无法通过设置关闭
为什么改 hosts 比关设置更可靠
因为插件遥测请求走的是浏览器级网络栈,不是 VSCode 的遥测模块。即使你把所有开关都设为 false,只要插件代码里写了 fetch("https://api.xxx.com/log"),它就会发出去——除非 DNS 解析失败或连接被系统层拦截。而 hosts 文件在 TCP 连接发起前就截断了域名解析,比任何 JS 层面的条件判断都早。注意:这不是“阻止 VSCode”,而是阻止特定插件的外呼行为;不影响本地调试、Git、终端等其他功能。


















