vscode遥测需在首次启动前通过预置settings.json或环境变量禁用:设"telemetry.enabletelemetry":false、"telemetry.enablecrashreporter":false,或设vscode_telemetry_disabled=1;--disable-telemetry仅单次有效,还需关闭workbench.enableexperiments、extensions.autoupdate和update.mode以防数据泄露。

VSCode 安装过程本身不收集遥测数据——真正触发遥测的是首次启动后的初始化行为。所谓“安装过程中忽略”,实际是指在首次运行前就阻断所有遥测路径,避免任何数据外发。
安装后首次启动前必须设置 settings.json
VSCode 安装包(无论 Windows、macOS 还是 Linux)默认不含遥测开关,但首次启动会自动写入默认配置并连接微软服务。因此,不能等安装完再点设置,而应在首次启动前手动预置配置:
- 找到用户配置目录:
~/.config/Code/User/settings.json(Linux)、~/Library/Application Support/Code/User/settings.json(macOS)、%APPDATA%\Code\User\settings.json(Windows) - 若文件不存在,新建一个空 JSON 文件;若存在,确保它以
{}开头 - 填入以下最小必要项(注意逗号和引号格式):
{
"telemetry.enableTelemetry": false,
"telemetry.enableCrashReporter": false
}
这个操作比图形界面设置更早生效,能跳过首次启动时的遥测初始化请求。
--disable-telemetry 启动参数只对单次有效
如果你已经启动过 VSCode,再用命令行加 --disable-telemetry 只能临时屏蔽当次会话的遥测,无法影响后续自动启动(比如从桌面图标、Git 集成、文件关联打开)。它适合调试验证,但不适合作为“安装即关闭”的方案。
-
code --disable-telemetry:禁用主遥测通道 -
code --disable-telemetry --disable-crash-reporter:额外禁用崩溃上报(部分内核仍可能尝试上报) - 该参数不会修改任何配置文件,退出后失效
环境变量 VSCODE_TELEMETRY_DISABLED=1 是最硬核的拦截方式
VSCode 启动时优先读取环境变量,只要检测到 VSCODE_TELEMETRY_DISABLED=1 或 VSCODE_CRASH_REPORTER_DISABLED=1,就会跳过所有遥测模块初始化——连日志里都不会出现 telemetry started 这类提示。
- macOS/Linux:把这两行加进
~/.zshrc或~/.bashrc,然后source ~/.zshrc - Windows:系统级环境变量中新增,或在快捷方式目标字段前加
set VSCODE_TELEMETRY_DISABLED=1 & - 注意:仅设
VSCODE_TELEMETRY_DISABLED=1就足够,VSCODE_CRASH_REPORTER_DISABLED=1是冗余但保险的做法
别漏掉 workbench.enableExperiments 和自动更新
很多人关了 telemetry.enableTelemetry 就以为万事大吉,结果发现 Network 面板仍有请求。这是因为实验性功能(workbench.enableExperiments)和扩展自动更新(extensions.autoUpdate)也会携带遥测上下文:
-
"workbench.enableExperiments": false:禁用所有 A/B 测试和后台行为采集 -
"extensions.autoUpdate": false:防止扩展市场接口悄悄上报已安装扩展列表 -
"update.mode": "none":避免检查更新时泄露操作系统、架构、版本等信息
这些字段不显现在图形设置里,必须手动写进 settings.json 才真正生效。只靠界面勾选,大概率留有数据出口。











