一、前言

作者学的软件工程,上大学买的游戏本,虽然剪一些小视频、跑跑模型和打游戏确实不错,但天天2.4kg的游戏本到处跑真的很麻烦,更不要说仅仅两个小时的续航和笨重的充电器😭。但如果你恰好有一台平板(手机也行,不过应该没有人想在钢化玻璃上错代码吧🤨)和便携键盘,就使用 code-server 能随时随地的在平板上面写代码。

二、什么是 code-server

code-server 是一款代码服务器,将他部署在你的云服务器上就可以实现在任何计算机上、任何位置运行 VSCode,并且在浏览器中访问它。

三、部署 code-server

我这里介绍的是简单的手动部署的方式,如果你是小白,跟着做就对了🐱。如果你有更多的需求,像使用 Docker 或者快速脚本部署,可以去看他们的官方文档:code-server Docs: Run VS Code Anywhere | Coder

顺德一提,code-server 是支持通过 1Panel 一键部署的。在我写的另一篇介绍 1Panel 的博客中,关于如何部署云服务就是用 code-server 作为例子的,感兴趣的可以去看看:1Panel:新一代的 Linux 服务器运维管理面板,博客网站搭建与云服务部署 | 滕王阁

1、选择一台主机作为你的服务器

这里一般是选择云服务器。当然,你部署在你自己的电脑上也可以,但是想通过远程访问需要外网IP或者使用内网穿透,所以不推荐🙂‍↔️。

云服务器的选择上一般就是 阿里云 或者 腾讯云 这种老牌服务器供应商,他们经常有超级划算的🥰 [2核2G] 99元/年 和 [2核4G] 199元/年 的长期同价续费优惠(我这个网站服务器就选的腾讯云的 [2核4G]),规格的话如果单单部署 code-server 那么 [2核2G] 就够了,但如果想部署一些其他服务还是建议选那个 [2核4G] 的版本。

购买之后安装一个 Linux 系统就可以了。这里只推荐 CentOS Stream、Ubuntu、Debian,千万不要选 Windows Server(没人会用 Windows 做服务器😅)和云服务器厂商自行修改的 Linux 发行版(比如腾讯云的 OpenCloudOS,这种系统的问题是不知道会改些什么东西,出了问题你网上找都找不到解决方案🙄)。

2、远程登录你的云服务器

进入服务器控制台,选择登录。这里推荐直接用 root 用户登录,这样权限高一点。如果使用的 ubuntu 系统,root 用户是默认不开放的,解决方法见腾讯云官方文档 Ubuntu 系统如何使用 root 用户登录实例 。(如果选用的其他厂商的服务器或其他 Linux 操作系统无法使用 root 登录,可以在服务器厂商网站中搜索教程,一般都会有的🥰)

Mj5AX3VW-1.png

Mj5AX3VW-2.png

当然如果你觉得每次登录都需要进入控制台不是很方便(直接用也不是不可以,只是每次都要打开网页很不方便),也可以下载其他的提供 SSH 连接的软件,比如博主用的 MobaXterm(如果使用了其他能连接到服务器终端的方法可以跳过这一步), MobaXterm 使用教程可以参考我之前写的 MobaXterm:强大的远程网络工具,SSH 远程连接功能的使用 | 滕王阁

3、下载 code-server

code-server 作者的 GitHub 项目地址:GitHub - coder/code-server: VS Code in the browser

点击右侧的 release,选择后缀为 linux-amd64.tar.gz 的版本下载(或者直接在服务器中通过 wget URL 命令直接下载到服务器里)。下载完成解压后将文件夹上传进服务器里(也可以直接上传压缩包,再通过 tar -zxvf [文件名] tar.gz 命令解压)。

Mj5AX3VW-3.png

4、配置code-server

进入到解压好的 code-server 目录内,进入里面的 /bin 目录,可以看到里面有一个名为 code-server 的文件,在终端输入 ./code-server --help 来查看帮助命令。

Mj5AX3VW-4.png

这时候有人就要问了:“欸😩,命令这么多我怎么知道怎么配置啊😭。”如果你有特殊需要可以根据命令后面的描述自己配置,一般更改配置文件就能满足绝大部分需求。

终端输入 vi /root/.config/code-server/config.yamli 进入插入模式将 password 一行改为你想设置的密码(以后通过网页端进入都需要这个密码)。

然后在 bind-addr 一行输入 [允许访问的IP(一般为0.0.0.0,代表所有IP均可访问)]:[运行端口(一般为8080,如果显示被占用就随便填一个稍大于8080的数)] 由于我 8080 端口配置了其他服务,这里用 8110 端口演示。ESC + :wq 就可以保存退出了。

Mj5AX3VW-5.png

使用 ./code-server 启动 code-server。

Mj5AX3VW-6.png

这时候有人又要要问了:“欸😩,为什么我退出终端后 code-server 就停止了怎么办😭。”

这时候就需要将 code-server 的进程放到挂载到后台去。将之前的命令改为 nohup ./code-server & 就行了(这个命令会将服务挂到后台),这时候目录下会生成一个 nohup.out 的文件,这是显示使用 nohup 挂载时命令的输出(就是上面图片的内容),通过 cat nohup.out 查看 code-server 是否运行成功。

切记最后要通过 exit 命令退出终端,不然系统依旧会结束掉使用 nohup 挂载的进程😐。

如果想要退出进程使用 netstat -tunlp 查看绑定 code-server 的端口的 PID 如何输入 kill 7 [PID] 就能结束进程了。

Mj5AX3VW-7.png

5、开放 code-server 防火墙端口

如果你的运行端口没有使用 8080(这个是常用端口,防火墙默认打开),这时候你在浏览器直接使用 [服务器IP]:[运行端口] 访问 code-server 就会出现下面的报错😭。

Mj5AX3VW-8.png

这是因为云服务器厂商的防火墙自动屏蔽了所有的非常用端口,需要我们自行在云服务器的控制台将其打开。

选择运行 code-server 的云服务器。

Mj5AX3VW-9.png

选择防火墙。

Mj5AX3VW-10.png

添加规则。

Mj5AX3VW-11.png

自定义端口开放规则。

Mj5AX3VW-12.png

再次使用 [服务器IP]:[运行端口] 就能在浏览器访问了😘。

Mj5AX3VW-13.png

这样你的网页版 Visual Studio Code 就大功告成了😋。