【Linux】CodeServer:云IDE部署

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-passwordpassword 将被忽略。
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-serversystemd 服务文件以完全移除它的服务管理配置:

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

确保没有其他服务占用这个端口,以避免冲突。

相关推荐
Mxsoft6197 小时前
电力系统AR远程运维与数字孪生交互技术
运维·ar
一叶之秋14128 小时前
Linux基本指令
linux·运维·服务器
码割机8 小时前
Linux服务器安装jdk和maven详解
java·linux·maven
mrsyf8 小时前
VSCode中Copilot的询问、编辑、代理有啥区别?
ide·vscode·copilot
亚林瓜子8 小时前
在amazon linux 2023上面源码手动安装tesseract5.5.1
linux·运维·服务器·ocr·aws·ec2
爱学习的大牛1238 小时前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
FreeBuf_8 小时前
研究人员披露 Windows SMB 服务器权限提升漏洞(CVE-2025-58726)
运维·服务器·windows
go_bai8 小时前
Linux--进程池
linux·c++·经验分享·笔记·学习方法
人工智能训练8 小时前
在ubuntu系统中如何将docker安装在指定目录
linux·运维·服务器·人工智能·ubuntu·docker·ai编程
Lisonseekpan9 小时前
Linux 常用命令详解与使用规则
linux·服务器·后端