Code-server 是一个开源项目,它允许你在任何地方通过浏览器访问 Visual Studio Code(VS Code)编辑器。这意味着你可以在远程服务器或云端运行 VS Code,并通过浏览器进行编码、调试和开发,而不需要在本地安装 VS Code。
安装与部署
下载 code-server
首先,你需要从 code-server
的 GitHub 发布页面下载 .tar.gz
压缩包。以下命令将下载 code-server
版本 4.92.2 的压缩包:
bash
wget https://github.com/coder/code-server/releases/download/v4.92.2/code-server-4.92.2-linux-amd64.tar.gz
此命令会将压缩包下载到当前工作目录。
解压压缩包
下载完成后,使用以下命令解压缩包:
bash
tar -xzf code-server-4.92.2-linux-amd64.tar.gz
这会在当前目录下创建一个名为 code-server-4.92.2-linux-amd64
的文件夹,里面包含 code-server
的所有必要文件。
创建符号链接
为了方便使用,将 code-server
的二进制文件创建一个符号链接到 /usr/local/bin
或 /usr/bin
目录。这样你可以在任何地方直接使用 code-server
命令。执行以下命令:
bash
sudo ln -s $PWD/code-server-4.92.2-linux-amd64/bin/code-server /usr/local/bin/code-server
如果你更愿意将符号链接放到 /usr/bin
目录,也可以使用以下命令:
bash
sudo ln -s $PWD/code-server-4.92.2-linux-amd64/bin/code-server /usr/bin/code-server
验证安装
验证 code-server
是否安装成功,可以运行以下命令查看其版本信息:
bash
code-server --version
如果输出了版本信息,如 4.92.2
,则说明 code-server
安装成功。
配置 code-server
在默认配置下,code-server
只允许本地访问。你需要配置它以便远程访问。首先,创建配置目录和文件:
bash
mkdir -p ~/.config/code-server
vi ~/.config/code-server/config.yaml
在 config.yaml
文件中添加以下配置:
yaml
bind-addr: 0.0.0.0:8080
auth: password
password: yourpassword
cert: false
以下是 config.yaml
文件中各参数的详细解释,以表格形式展示:
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
bind-addr |
string |
127.0.0.1:8080 |
指定 code-server 的监听地址和端口。例如,0.0.0.0:8080 可以让 code-server 接收来自任何外部设备的连接,使用端口 8080 。 |
auth |
string |
password |
指定用户认证方式。password 使用密码保护访问;none 禁用认证。 |
password |
string |
无 | 如果 auth 设置为 password ,此项用于指定访问 code-server 的密码。未设置时,code-server 将生成随机密码并在启动时打印在控制台上。 |
hashed-password |
string |
无 | 使用 SHA-256 散列存储密码而不是明文存储。如果配置了 hashed-password ,password 将被忽略。 |
cert |
boolean |
false |
是否启用 HTTPS 访问。设置为 true 时,将加载 SSL 证书。 |
cert-key |
string |
无 | 指定 SSL 证书的私钥路径。需与 cert 参数配合使用以启用 HTTPS。 |
cert-file |
string |
无 | 指定 SSL 证书的路径。需与 cert 参数配合使用以启用 HTTPS。 |
disable-telemetry |
boolean |
false |
是否禁用 code-server 的遥测功能。遥测功能收集匿名使用数据以改进产品。 |
disable-updates |
boolean |
false |
是否禁用 code-server 自动更新检查功能。 |
disable-workspace-trust |
boolean |
false |
是否禁用工作区信任功能,设置为 true 可能影响部分扩展的行为。 |
enable-auth |
boolean |
true |
是否启用身份验证功能,通常与 auth 参数一起使用。设置为 false 可以完全禁用身份验证。 |
log-level |
string |
info |
设置 code-server 的日志记录级别。可选值:trace , debug , info , warn , error 。 |
max-old-space-size |
number |
无(依赖系统设置) | 限制 code-server 使用的最大内存大小(以 MB 为单位),以防止在高负载下占用过多的系统内存。 |
proxy-domain |
array of strings |
无 | 设置多个域名作为代理域名,允许通过这些域名访问 code-server 。适用于多域名或子域名场景。 |
enable-localserver |
boolean |
true |
启用或禁用本地服务器访问。设置为 false 时,即使 bind-addr 设置为 127.0.0.1 ,本地访问也将被禁用。 |
启动 code-server
你可以使用以下命令直接启动 code-server
:
bash
code-server
如果你希望将 code-server
放在后台运行,可以使用 nohup
:
bash
nohup code-server &
code-server
默认会在 localhost:8080
上运行,你可以通过浏览器访问它。
服务管理
systemd
是 Linux 的初始化系统和服务管理器。你可以创建一个 systemd
服务文件来管理 code-server
的启动和停止。
创建服务文件
创建一个新的 systemd
服务文件,例如 /etc/systemd/system/code-server.service
:
bash
sudo vi /etc/systemd/system/code-server.service
编辑服务文件
在服务文件中添加以下内容:
ini
[Unit]
Description=code-server
Documentation=https://coder.com/docs/code-server/
After=network.target
[Service]
Type=simple
User=<your-username>
ExecStart=/usr/local/bin/code-server --config /home/<your-username>/.config/code-server/config.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
替换 <your-username>
为实际的用户名。确保 ExecStart
指向你的 code-server
二进制文件和配置文件的位置。
重新加载 systemd
配置
执行以下命令以重新加载 systemd
配置,使新创建的服务文件生效:
bash
sudo systemctl daemon-reload
启动 code-server
服务
启动 code-server
服务:
bash
sudo systemctl start code-server
启用 code-server
服务
设置 code-server
在系统启动时自动启动:
bash
sudo systemctl enable code-server
检查服务状态
确认 code-server
服务正在运行:
bash
sudo systemctl status code-server
你应该看到类似如下的输出,显示 code-server
正在运行:
● code-server.service - code-server
Loaded: loaded (/etc/systemd/system/code-server.service; enabled; vendor preset: enabled)
Active: active (running) since ...
访问 code-server
一旦 code-server
启动,你可以通过浏览器访问它,默认情况下是在 http://<your-server-ip>:8080
。
卸载与解除操作
停止 code-server
服务
首先,确保 code-server
服务已停止。如果服务正在运行,可以使用以下命令停止它:
bash
sudo systemctl stop code-server
禁用 code-server
服务
为了确保在系统启动时不会自动启动 code-server
,你需要禁用该服务:
bash
sudo systemctl disable code-server
删除 systemd
服务文件
删除 code-server
的 systemd
服务文件以完全移除它的服务管理配置:
bash
sudo rm /etc/systemd/system/code-server.service
重新加载 systemd
配置
删除服务文件后,重新加载 systemd
配置以应用更改:
bash
sudo systemctl daemon-reload
删除 code-server
文件
根据你之前的安装方法,删除 code-server
的安装文件和符号链接:
bash
sudo rm /usr/local/bin/code-server
sudo rm -rf /root/code-server-4.92.2-linux-amd64
注意 :确保路径正确,如果你将 code-server
安装在其他目录,请调整相应的路径。
删除 code-server
配置文件
如果你不再需要 code-server
的配置文件,可以删除它们:
bash
rm -rf ~/.config/code-server
这将删除用户目录下的 code-server
配置文件。
检查服务状态
确认 code-server
服务已经完全被移除,并且没有在运行:
bash
sudo systemctl status code-server
如果一切正确,你会看到 code-server
服务已经被卸载,不会再出现在系统中。
检查端口
如果之前 code-server
使用了特定的端口,如 8080
,你可以检查该端口是否已被释放:
bash
sudo netstat -tulnp | grep 8080
确保没有其他服务占用这个端口,以避免冲突。