如何在 Rocky Linux 8 上安装 Visual Studio Code Cloud IDE
在此页
- 先决条件
- 第 1 步 - 配置防火墙
- 第 2 步 - 安装代码服务器
- 第 3 步 - 配置代码服务器
- 第 4 步 - 安装 SSL
- 第 5 步 - 安装和配置 Nginx
- 第 6 步 - 使用代码服务器
- 结论
Visual Studio Code 已成为最流行的编码 IDE 之一。它集成了 Git 和 Docker 支持、代码调试器、代码自动完成、处理远程文件的能力并支持各种插件。
随着一切都转移到云端,从任何地方访问您选择的 IDE 是现代开发的完美选择。 Cloud IDE 允许开发人员之间的实时协作,从而提高生产力。 coder-server 是一个应用程序,允许您从远程服务器运行 Visual Studio Code,并使其可通过任何浏览器访问。
本教程将教您如何在 Rocky Linux 8 服务器上使用代码服务器应用程序安装 Visual Studio Code IDE。您还将通过公共域公开它以及 SSL 支持。
先决条件
-
A server running Rocky Linux with at least 2 GB of RAM and 2 CPU cores.
-
A non-root user with sudo privileges.
-
A domain registered and pointed to the server.
-
Nginx installed on your server.
-
Ensure everything is updated.
$ sudo dnf update
第 1 步 - 配置防火墙
第一步是配置防火墙。 Rocky Linux 自带 Firewalld 防火墙。
检查防火墙是否正在运行。
$ sudo firewall-cmd --state
以下输出证明防火墙正在运行。
running
检查当前允许的服务/端口。
$ sudo firewall-cmd --permanent --list-services
它应该显示以下输出。
dhcpv6-client mdns ssh
为代码服务器打开端口 8080。
$ sudo firewall-cmd --permanent --add-port=8080/tcp
允许 HTTP 和 HTTPS 端口。
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
重新检查防火墙的状态。
$ sudo firewall-cmd --permanent --list-all
您应该会看到类似的输出。
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http https ssh
ports: 8080/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
重新加载防火墙以启用更改。
$ sudo systemctl reload firewalld
第 2 步 - 安装代码服务器
code-server 附带一个安装脚本,可以检测 Linux 版本并为您的服务器安装适当的二进制文件。您可以测试安装脚本以检查它是否可以在您的服务器上运行。
运行以下命令以执行安装试运行。
$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
Rocky Linux 8.4 (Green Obsidian)
Installing v3.12.0 of the amd64 rpm package from GitHub.
+ mkdir -p ~/.cache/code-server
+ curl -#fL -o ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete -C - https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm
+ mv ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-3.12.0-amd64.rpm
+ sudo rpm -i ~/.cache/code-server/code-server-3.12.0-amd64.rpm
rpm package has been installed.
To have systemd start code-server now and restart on boot:
sudo systemctl enable --now $USER
Or, if you don't want/need a background service you can run:
code-server
试运行成功后运行设置。
$ curl -fsSL https://code-server.dev/install.sh | sh
安装脚本可能会询问您的 sudo 密码。
启用代码服务器服务。
$ sudo systemctl enable $USER
如果要更新代码服务器实例,请重复安装过程。代码服务器将保留您的文件和设置。
第 3 步 - 配置代码服务器
代码服务器将其配置文件存储在 ~/.config/code-server/config.yaml
。打开它进行编辑。
$ sudo nano ~/.config/code-server/config.yaml
以下是安装期间设置的默认设置。
bind-addr: 127.0.0.1:8080
auth: password
password: a4768b3439e5e93b5d62489b
cert: false
默认配置文件启用以下行为:
- 监听环回 IP 端口 8080
- 使用随机生成的密码启用密码授权
- 不使用 TLS
您可以通过更改文件中的值来更改密码。
如果你想存储密码的散列版本,你必须先安装 npm。安装后,运行以下命令来设置散列密码。
$ echo -n "thisismypassword" | npx argon2-cli -e
$argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
您将在终端获得散列值。将其复制并粘贴到配置文件中。
auth: password
hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
确保用引号将散列密码括起来。如果要禁用遥测,请在文件中添加以下行。
disable-telemetry: false
您可以在文件中定义其他选项。要检查您可以添加的所有其他选项,请使用以下命令列出所有标志。
$ code-server --help
完成后按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
第 4 步 - 安装 SSL
要使用 Lets Encrypt 安装 SSL 证书,我们需要下载 Certbot 工具。但首先,我们需要安装 EPEL 存储库。
运行以下命令来安装 Certbot。
$ sudo dnf install epel-release
$ sudo dnf install certbot
生成 SSL 证书。
$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m
上面的命令会将证书下载到服务器上的 /etc/letsencrypt/live/code-server.example.com
目录。请务必将 [email
替换为您的实际电子邮件。
生成 Diffie-Hellman 组证书。
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
为 Lets Encrypt 自动更新创建一个挑战 webroot 目录。
$ sudo mkdir -p /var/lib/letsencrypt
创建 Cron 作业以更新 SSL。它将每天运行以检查证书并在需要时更新。为此,首先,创建文件 /etc/cron.daily/certbot-renew
并打开它进行编辑。
$ sudo nano /etc/cron.daily/certbot-renew
粘贴以下代码。
#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
通过按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
更改任务文件的权限以使其可执行。
$ sudo chmod +x /etc/cron.daily/certbot-renew
第 5 步 - 安装和配置 Nginx
创建并打开 /etc/yum.repos.d/nginx.repo
文件以创建官方 Nginx 存储库。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
通过按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
安装 Nginx 服务器。
$ sudo dnf install nginx
启用 Nginx 服务。
$ sudo systemctl enable nginx
在 /etc/nginx/conf.d
目录下为 code-server 创建一个配置文件。
$ sudo nano /etc/nginx/conf.d/code-server.conf
将以下代码粘贴到其中。
server {
listen 80; listen [::]:80;
server_name code-server.example.com;
return 301 https://$host$request_uri;
}
server {
server_name code-server.example.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
access_log /var/log/nginx/code-server.access.log;
error_log /var/log/nginx/code-server.error.log;
ssl_certificate /etc/letsencrypt/live/code-server.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/code-server.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/code-server.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
通过按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
验证配置文件。
$ sudo nginx -t
如果出现以下错误,则需要编辑文件 /etc/nginx/nginx.conf
以添加/调整变量的大小 server_names_hash_bucket_size
。
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
打开文件 /etc/nginx/nginx.conf
进行编辑。
$ sudo nano /etc/nginx/nginx.conf
在行 include /etc/nginx/conf.d/*.conf;
之前添加以下行。
server_names_hash_bucket_size 64;
通过按 Ctrl + X 并在出现提示时输入 Y 来保存文件。再次验证 Nginx。
启动 Nginx 服务器。
$ sudo systemctl start nginx
第 6 步 - 使用代码服务器
在浏览器中启动域 https://code-server.example.com
,然后输入密码以验证您的代码服务器安装。输入配置文件中的密码。

code-server 将在您第一次启动时询问 VS 代码设置。

选择一种配色方案,浏览其余部分,完成后单击“标记为完成”。

结论
您现在已经在 Rocky Linux 服务器上安装了一个 Visual Studio Code 实例。与官方 VS Code 相比,这有一些注意事项。可用的扩展不是官方扩展,而是从代码服务器非官方存储库提供的。如果你想安装官方扩展,你可以查阅他们的官方文档。这需要一些努力。如果您有任何问题,请在下面的评论中发表。