启动Live Share会话需先执行“Live Share: Start Collaboration Session”,再关键选择共享范围:仅编辑器(安全但功能受限)、含终端/调试器(结对编程必需)、完整工作区(慎用,易暴露敏感配置);链接含过期时间戳,权限与扩展需双方对齐,企业级应用应配置access:"protected"并限制共享内容。

VSCode 实时协作不是“装个插件点一下就通”,而是需要明确谁启动、共享什么、对方能做什么——Live Share: Start Collaboration Session 这个命令只是起点,真正决定协作是否顺畅的,是权限选择、扩展协同和网络上下文。
怎么启动一个可用的 Live Share 会话
启动本身很简单,但默认选项容易踩坑:点击状态栏 Live Share 图标或按 Ctrl+Shift+P 输入 Live Share: Start Collaboration Session 后,关键在第二步——共享范围选择。
- 选“仅编辑器”:最安全,但协作者看不到你的终端输出、断点、调试变量,适合纯代码评审
- 选“含终端/调试器/本地服务器”:结对编程或故障排查必须选这项,但要求双方都装了
vscode-live-server(如果要用 Live Server)和Live Share - 选“完整工作区”:会把
.vscode/settings.json权限也共享出去,主机的插件配置、格式化规则、甚至敏感路径可能暴露,不推荐新手直接选
生成的链接形如 https://vscs.live/abc123?sig=xyz&exp=1748765200,其中 exp 是 Unix 时间戳,过期后自动失效——这点常被忽略,导致中途断连以为是网络问题。
为什么协作者打不开终端或看不到 Live Server?
这不是 bug,是权限和扩展未对齐的典型表现。Live Share 不自动转发所有本地服务,它只共享你“显式启用”的能力。
- 终端不可用:主机没在共享范围里勾选“终端”,或协作者本地没装
Live Share扩展(仅主机装不够) - Live Server 不同步:必须确保协作者也安装了
vscode-live-server;主机启动Go Live后,LiveShareHelper.ts才会把端口、URL 等信息广播出去 - 端口冲突时自动回退:比如主机设了
liveServer.settings.port: 3000,但被占用,系统会悄悄切到随机空闲端口(如 51234),此时协作者看到的 URL 是更新后的地址,不是你记忆里的 3000
如何防止误共享敏感配置或文件?
VSCode 不会过滤 .env、settings.json 或 launch.json ——只要它们在工作区里,且你选了“完整工作区”,就会被读取并同步上下文。
- 最简方案:启动前改用“仅编辑器”或“含终端/调试器”范围,避开配置文件暴露
- 进阶控制:在
settings.json中加限制项,例如:"liveshare.readOnly": true(强制协作者只读)、"liveshare.shareServer": false(禁用服务器共享) - 企业级防护:设置
"liveShare": { "access": "protected" },要求协作者必须登录 Microsoft/GitHub 账户,避免链接外泄后被任意人加入
真正的难点不在“怎么开”,而在“开哪些、关哪些、谁能看到什么”。一次协作会话里,光标位置、断点状态、终端输入流全靠 OT+CRDT 混合引擎强同步,但这个一致性只作用于你允许共享的那部分上下文——其余全是黑盒。











