Cyang39's 的笔记

openvscode-server:VSCode Tunnel 的最佳替代品

Last update: 12/9/2023

大家可能尝试过 VSCode Tunnel:只要在电脑上打开一个 VSCode,就可以在任意一个地方用其他 VSCode 甚至是网页访问这个开发环境。相较于 SSH 的登录方式,它支持网页直接打开,而且还不需要内网穿透,便利性 MAX。

但是,它的问题也很明显,就是延迟太大了,我估计通过 vscode.dev 来进行访问的时候,实际上是中转微软的服务器的,而服务器实际上在国外,所以流量饶了一大圈回来导致延迟明显,经常断联。

那么,有没有好的替代品呢,当然,就是这个 gitpod 推出的 gitpod-io/openvscode-server。通过它可以运行起一个网页的 VSCode。

可以直接通过 Docker 运行:

bash
docker run -it --init -p 3000:3000 \ -v "$(pwd):/home/workspace:cached" \ gitpod/openvscode-server

不过,我不喜欢通过 Docker 来运行 VSCode,因为很多开发环境我直接就装在系统中,如果使用 Docker 的话,从 VSCode 打开的面板是容器内的,相当于在容器内又还得配置环境。

我是直接从 Releases 下载最新的包解压后通过 supervisor 来运行:

bash
/root/mykit/openvscode-server-v1.85.0-linux-x64/bin/openvscode-server \ --port 3000 --connection-token <token>

当然,这种方法在升级时可能比 Docker 麻烦一点,需要手动重新下载解压和运行。--port--connection-token 是比较常用的参数。打开网页的时候,第一次登录需要带上 ?tkn=<token> 查询参数才能正常登录,之后就不需要了。

a1efabdc-a585-404b-9d57-2814c0f5ded5

你可能会说,这种方法运行的 VSCode,没法通过 vscode.dev 来访问,只能本地 localhost,如果没有公网 IP 那要怎么远程开发。既然它是个网页程序了,那方法还不要太多?我自己使用的是 CloudFlare Tunnel 绑定自己的一个域名,延迟体验完全OK。

在公司的电脑(里的虚拟机)里安装好,就能愉快地远程加班了(不是)。