Visual Studio Code Server

VScode实现了C/S分离,可以实现只要有浏览器就能使用你开发机上的VScode

之前做法

在 VScode server 出现之前,你也可以通过安装 Remote - SSH 插件的形式达到远程使用VScode编辑服务器上的代码的目的

但我体验下来其实并不是很好,至少在其他插件使用上还是有不少问题

VScode server

官网:https://code.visualstudio.com/docs/remote/vscode-server

使用场景

  • 通过浏览器连接到 SSH 受限的远程机器上做开发
  • 在一些不能安装vscode的设备上做开发(但支持浏览器),例如 iPad、手机上
  • 想在某个隔离环境做开发,不想污染本地文件系统

快速开始

1. 安装 vscode server

  • linux or macOS
wget -O- https://aka.ms/install-vscode-server/setup.sh | sh
  • Windows(x64)

运行完成之后需重启terminal使环境变量生效

New-Item "$HOME\.vscode-server-launcher\bin" -ItemType "directory" -Force
Invoke-WebRequest "https://aka.ms/vscode-server-launcher/x86_64-pc-windows-msvc" -OutFile "$HOME\.vscode-server-launcher\bin\code-server.exe"
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\.vscode-server-launcher\bin", "User")
  • Windows(ARM)
New-Item "$HOME\.vscode-server-launcher\bin" -ItemType "directory" -Force
Invoke-WebRequest "https://aka.ms/vscode-server-launcher/aarch64-pc-windows-msvc" -OutFile "$HOME\.vscode-server-launcher\bin\code-server.exe"
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\.vscode-server-launcher\bin", "User")

2. 在terminal中启动vscode server

code-server

3. github授权

启动 vscode server 后,等一会会弹出一条提示,让你打开一个网站,并填写相应的授权码,照他说的做就行

Please enter the code 7644-1186 on https://github.com/login/device

4. 如果是第一次在该远程机器上运行 vscode server,它还会让你填一个远程机器的名称,不填也会有默认值

5. 完成上述步骤之后,它就会给你一个地址,用浏览器打开就行。你也可以直接打开网站 vscode.dev,打开命令行面板(一般为F1键),搜索并运行 Remote Tunnels: Connect to Remote

架构

VS Code server CLI 将会在VSCode client(vscode.dev)和你的开发机之间打通一个P2P隧道(P2P原理

所以你可以直接使用浏览器访问 vscode.dev,它再通过隧道和你的开发机相连

常见问题

如何卸载?
code-server uninstall
可以多用户使用吗?

不行,为单用户设计的

我能自己部署web UI服务吗?

默认使用 code-server 启动,这等同于命令 code-server server,这会在 vscode.dev 和你的远程主机之间建立隧道,你再连接 vscode.dev ,所以还是需要中间 server。

如果你想摆脱这个中间商,你可以使用命令 code-server server-local 启动,这将在你的远程主机上安装web UI服务,此时你就可以在浏览器直接输入你远程主机的某个地址进行访问了。但还是建议用server模式

我能自己部署中间商服务吗?

做梦去吧

我最多能连接几个远程服务?

目前最多10个

Leave a Comment