< Back to Home.

从0开始部署VSCode-Server服务

WitchElaina
WitchElaina

前言

code-server 是 VS code 的服务端项目,利用它架设 VS code 服务器后可以在任何设备上通过浏览器使用 VS code,对于有移动端办公等需求的人士十分友好,本文将从选购服务器开始,一步步介绍如何部署 code-server,打造自己的 VS Code 服务器。

服务购买

需要清单如下

  • 云服务器
  • 域名

服务器

一般来讲我们只需要一台有公网 IP 的云服务器再加一个域名就行。服务器的话,国内有腾讯云、阿里云、华为云等主机商,国外可选 Vultr,这里个人推荐Vultr,价格实惠而且不用域名备案。

配置方面,参考 code-server 的官方建议

At the minimum, we recommend:

  • 1 GB of RAM
  • 2 CPU cores

最少 1GRAM,2 个 CPU 核心。但实测 1vCPU 也完全够用,凭经济实力购买即可。

域名

国外有许多购买域名的网站,国内各大主机商也有提供域名服务,按需选择即可。个人使用的是dynadot

DNS 解析

无脑选cloudfare

部署服务

域名设置

服务器到手先设置一下防火墙,放通一下2280443端口,随后去 cloudfare 中添加一下域名,DNS 中添加一条 A 记录,地址指向服务器的公网 IP,生效后可以试试使用域名 ssh 到服务器,如果能成功登录则说明规则生效,可以进行后续操作。

ssh root@your.domain.name

安装配置 Nginx

以 Ubuntu 为例

sudo apt install nginx

完成后启动 nginx,此时访问一下你的域名,看到 nginx 欢迎页则说明成功,否则检查一下防火墙配置。

安装 code-server

以 ubuntu 安装 4.9.1 版本为例

curl -fOL https://github.com/coder/code-server/releases/download/v4.9.1/code-server_4.9.1_amd64.deb
sudo dpkg -i code-server_4.9.1_amd64.deb
sudo systemctl enable --now code-server@root
## Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

完成后可以前往 ~/.config/code-server/config.yaml配置,主要修改一下连接密码,必要时也可以修改端口

申请 HTTPS 证书

推荐使用 certbot,访问官网,选择你的系统版本和代理软件,根据教程操作,安装完成后使用sudo certbot certonly --nginx进行证书申请,完成后会得到类似下列信息

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your.domain.name/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your.domain.name/privkey.pem
   Your certificate will expire on 2023-04-10. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

记住上述两个路径

/etc/letsencrypt/live/your.domain.name/fullchain.pem

/etc/letsencrypt/live/your.domain.name/privkey.pem

随后前往修改 nginx 配置,如果你不会且只想运行一个 codeserver 服务,照抄以下代码就行。

events {}

http {
    server {
        listen 443 ssl;
        server_name your.domain.name;  ## 替换成你的域名
        ssl_certificate /etc/letsencrypt/live/your.domain.name/fullchain.pem; ## 刚刚记录的路径
        ssl_certificate_key /etc/letsencrypt/live/your.domain.name/privkey.pem; ## 刚刚记录的路径
        location / {
          proxy_pass http://localhost:8080/; ## 默认运行在8080端口,如有修改需要在此处同步修改
          proxy_set_header Host $host;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection upgrade;
          proxy_set_header Accept-Encoding gzip;
        }
    }
}

都完成后重启一下服务

sudo systemctl restart code-server@root
sudo nginx -s reload

此时访问你的域名,就可以成功连接到 code-server 了。