Ubuntu 22.04 安装 code-server 4.143.1 指南
Ubuntu 22.04 上 install.sh 在线脚本、deb 离线包、standalone tar.gz 三种方案安装 code-server 4.143.1 并 systemd 托管,含登录与健康检查实测回显。
Ubuntu 22.04 安装 code-server 4.143.1 指南
目标:在 Ubuntu 22.04 服务器上从零安装 code-server 4.143.1 并以 systemd 托管运行,覆盖在线脚本、离线 deb、standalone tar.gz 三种方案。本文全部命令已在 Ubuntu 22.04.5 LTS(x86_64)上实测通过,回显照抄;产品背景与选型见《code-server 4.143.1 介绍与选型指南》。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(jammy),x86_64
- 硬件:6 vCPU / 19GB 内存 / 196GB 可用磁盘(实测机)
- 软件版本:code-server 4.143.1(commit 22ddf60d,捆绑 VS Code 1.143.1;2026-10-23 发布,查询日期 2026-10-27)
- 安装用户:root(systemd 模板单元支持任意用户,见方案内说明)
- 监听地址:0.0.0.0:8080(演示),登录密码
q1w2e3r4(演示账号) - 网络:install.sh 与 deb 包可直连 GitHub 下载;standalone tar.gz 直连出现连接重置,实测走 HTTP 代理成功(见五、5.1 网络说明)
二、前置条件
# 1. 确认系统版本(本文实测基线)
grep PRETTY /etc/os-release
# PRETTY_NAME="Ubuntu 22.04.5 LTS"
# 2. 安装基础工具
apt-get update
apt-get install -y curl ca-certificates iproute2
# 3. 确认 8080 端口未被占用(无输出即空闲)
ss -ltn | grep 8080
⚠️ 注意:code-server 的 deb 包为自包含发行(内置 Node.js 运行时,
dpkg -s无 Depends 依赖项),不需要预先安装 Node.js。
三、在线安装方案(A:官方 install.sh 一键脚本)
3.1 方案说明
官方安装脚本(https://code-server.dev/install.sh)自动识别发行版:Ubuntu/Debian 系从 GitHub Releases 下载对应 deb 包并 dpkg -i 安装,适合能联网的服务器。
3.2 下载与安装
# 下载脚本(可留档审计,也可直接 curl | sh)
curl -fsSL https://code-server.dev/install.sh -o /root/install.sh
# 执行安装
sh /root/install.sh
实测回显(节选,全程约 19 秒):
Ubuntu 22.04.5 LTS
Installing v4.143.1 of the amd64 deb package from GitHub.
+ mkdir -p ~/.cache/code-server
+ curl -#fL -o ~/.cache/code-server/code-server_4.143.1_amd64.deb.incomplete -C - https://github.com/coder/code-server/releases/download/v4.143.1/code-server_4.143.1_amd64.deb
+ mv ~/.cache/code-server/code-server_4.143.1_amd64.deb.incomplete ~/.cache/code-server/code-server_4.143.1_amd64.deb
+ dpkg -i ~/.cache/code-server/code-server_4.143.1_amd64.deb
Selecting previously unselected package code-server.
Preparing to unpack .../code-server_4.143.1_amd64.deb ...
Unpacking code-server (4.143.1) ...
Setting up code-server (4.143.1) ...
deb package has been installed.
To have systemd start code-server now and restart on boot:
sudo systemctl enable --now code-server@$USER
Or, if you don't want/need a background service you can run:
code-server
脚本自带断点续传(-C -)与 .incomplete 临时文件机制,网络抖动可重跑。
3.3 验证安装
code-server --version
实测回显(首次执行任意 code-server 命令会先生成默认配置):
[2026-10-27T10:19:33.895Z] info Wrote default config file to /root/.config/code-server/config.yaml
4.143.1 22ddf60dbc52f164cff13620ab515086dd08c90a with Code 1.143.1
3.4 配置
默认配置自动写入 ~/.config/code-server/config.yaml(root 用户即 /root/.config/code-server/config.yaml),初始内容:
bind-addr: 127.0.0.1:8080
auth: password
password: f0e73cf5113be6fc92827109
cert: false
默认只监听回环且密码为随机串。改为对外提供服务并设定演示密码:
sed -i "s/^bind-addr:.*/bind-addr: 0.0.0.0:8080/; s/^password:.*/password: q1w2e3r4/" /root/.config/code-server/config.yaml
cat /root/.config/code-server/config.yaml
实测回显:
bind-addr: 0.0.0.0:8080
auth: password
password: q1w2e3r4
cert: false
3.5 systemd 托管
deb 包自带模板单元 /usr/lib/systemd/system/code-server@.service(User=%i,即按实例名指定运行用户):
[Unit]
Description=code-server
After=network.target
[Service]
Type=exec
ExecStart=/usr/bin/code-server
Restart=always
User=%i
[Install]
WantedBy=default.target
以 root 用户启用并启动(普通用户则替换为用户名,如 code-server@ubuntu):
systemctl enable --now code-server@root
systemctl status code-server@root --no-pager | head -12
实测回显:
Created symlink /etc/systemd/system/default.target.wants/code-server@root.service -> /lib/systemd/system/code-server@.service.
* code-server@root.service - code-server
Loaded: loaded (/lib/systemd/system/code-server@.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2026-10-27 10:19:52 UTC; 2s ago
Main PID: 2673 (MainThread)
Tasks: 22 (limit: 2932)
Memory: 54.7M
CGroup: /system.slice/.../code-server@root.service
空闲状态内存占用约 55MB(主进程),登录打开工作区后扩展宿主进程约 100MB 级,小内存服务器亦可承载。
3.6 验证回显
# 端口监听
ss -ltnp | grep 8080
# LISTEN 0 511 0.0.0.0:8080 0.0.0.0:* users:(("MainThread",pid=2693,fd=22))
# 未登录访问被重定向到登录页
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" http://127.0.0.1:8080/
# 302 http://127.0.0.1:8080/login
# 正确密码登录(302 回首页即认证通过)
curl -s -o /dev/null -w "%{http_code} -> %{redirect_url}\n" -X POST -d "password=q1w2e3r4" http://127.0.0.1:8080/login
# 302 -> http://127.0.0.1:8080/
# 错误密码
curl -s -X POST -d "password=wrongpass" http://127.0.0.1:8080/login | grep -oE "Incorrect password"
# Incorrect password
# 健康检查端点(供负载均衡/监控探针使用)
curl -s http://127.0.0.1:8080/healthz
# {"status":"alive","lastHeartbeat":1793096502617}
浏览器访问 http://<服务器IP>:8080,输入密码 q1w2e3r4 即进入完整 VS Code 界面。
四、离线安装方案(B:deb 包手动安装)
4.1 方案说明
把官方 deb 包下载到本地(可在有网机器下载后 U 盘/内网仓库摆渡到目标机),目标机 dpkg -i 离线安装。适合内网隔离环境。
4.2 下载(有网机器上执行)
# 版本与文件名严格对应 GitHub Releases(2026-10-27 实查)
curl -fsSL -o code-server_4.143.1_amd64.deb \
https://github.com/coder/code-server/releases/download/v4.143.1/code-server_4.143.1_amd64.deb
# 记录校验和用于目标机验收
sha256sum code-server_4.143.1_amd64.deb
本文实测所得校验和(供比对,以你下载时实算为准):
e4b771c98fafbe2af3990ecd71d93ba22515588db550007076768a014ae34c02 code-server_4.143.1_amd64.deb
4.3 目标机安装与验证
# 安装(包约 224MB,解压后约 655MB)
dpkg -i code-server_4.143.1_amd64.deb
# 查看包信息
dpkg -s code-server | grep -E "^(Version|Architecture|Installed-Size)"
实测回显:
Version: 4.143.1
Architecture: amd64
Installed-Size: 670722
# 文件落位
dpkg -L code-server | grep -E "bin/code-server|systemd"
实测回显:
/usr/bin/code-server
/usr/lib/systemd/user/code-server.service
/usr/lib/systemd/system/code-server@.service
/usr/lib/code-server/bin/code-server
配置、systemd 托管与验证步骤与方案 A 完全相同(三、3.4~3.6),不再重复。
五、standalone tar.gz 安装方案(C:免包管理器)
5.1 方案说明与网络说明
standalone 包是自带 Node.js 的独立目录,解压即用、不依赖 dpkg/apt,适合无 root 权限或精简系统。
⚠️ 网络说明:本文实测时 tar.gz 直连 GitHub 出现
curl: (56) OpenSSL SSL_read: Connection reset by peer(deb 包直连正常),改用 HTTP 代理curl -x http://<代理地址>:<端口>后 5 秒完成下载。下载渠道按「官方源直连 → 代理」降级,两个渠道实测结果如上,请以实际网络为准。
5.2 下载与解压
# 下载(直连失败时加 -x http://<代理>:<端口>)
curl -fsSL -o code-server-4.143.1-linux-amd64.tar.gz \
https://github.com/coder/code-server/releases/download/v4.143.1/code-server-4.143.1-linux-amd64.tar.gz
# 校验(本文实测值,供比对)
sha256sum code-server-4.143.1-linux-amd64.tar.gz
# 614877cf71005f14ea252bd2d9b1c12237cf7d73681ef150f0dff7f13849fdb5 code-server-4.143.1-linux-amd64.tar.gz
# 解压到 /usr/local/lib 并做版本化目录
mkdir -p /usr/local/lib
tar -C /usr/local/lib -xzf code-server-4.143.1-linux-amd64.tar.gz
mv /usr/local/lib/code-server-4.143.1-linux-amd64 /usr/local/lib/code-server-4.143.1
# 软链出命令
ln -sf /usr/local/lib/code-server-4.143.1/bin/code-server /usr/local/bin/code-server
# 验证
/usr/local/bin/code-server --version
# 4.143.1 22ddf60dbc52f164cff13620ab515086dd08c90a with Code 1.143.1
5.3 systemd 托管(自写单元)
standalone 不附带 systemd 单元,手工创建(内容对齐官方模板):
cat > /etc/systemd/system/code-server@.service <<'EOF'
[Unit]
Description=code-server
After=network.target
[Service]
Type=exec
ExecStart=/usr/local/bin/code-server
Restart=always
User=%i
[Install]
WantedBy=default.target
EOF
systemctl daemon-reload
systemctl enable --now code-server@root
5.4 验证回显
为避免与 deb 方案的 8080 冲突,验证时临时指定 8081 端口前台运行:
/usr/local/bin/code-server --bind-addr 127.0.0.1:8081 --auth none &
sleep 3
ss -ltnp | grep 8081
# LISTEN 0 511 127.0.0.1:8081 0.0.0.0:* users:(("MainThread",pid=3031,fd=22))
curl -s -o /dev/null -w "standalone HTTP %{http_code}\n" http://127.0.0.1:8081/
# standalone HTTP 200
验证完毕后停掉临时进程,用 5.3 的 systemd 单元正式托管即可。
六、方案对比与选择建议
| 维度 | A:install.sh 在线脚本 | B:deb 离线包 | C:standalone tar.gz |
|---|---|---|---|
| 版本 | 自动取最新(可 --version X.X.X 指定) | 手动指定 | 手动指定 |
| 是否需联网 | 目标机必须联网 | 目标机不联网(摆渡包) | 目标机不联网(摆渡包) |
| 安装方式 | 脚本代下 deb + dpkg | 手工 dpkg -i | 解压 + 软链 |
| systemd 来源 | deb 自带模板单元 | deb 自带模板单元 | 自写单元(5.3) |
| 命令路径 | /usr/bin/code-server | /usr/bin/code-server | /usr/local/bin/code-server |
| 升级方式 | apt 重装/重跑脚本 | 下载新 deb 覆盖 | 解压新目录改软链 |
| 适用场景 | 可联网生产机首选 | 内网/审计严格环境 | 无 root、多版本并存 |
💡 说明:可联网机器直接选 A(一条命令且自带断点续传);内网隔离选 B(包管理器可追溯、单元现成);非 root 或要保留多版本选 C。
七、配置说明(config.yaml 初识)
配置文件路径为 ~/.config/code-server/config.yaml(按运行用户各自独立),常用四键:
| 键 | 作用 | 本文演示值 |
|---|---|---|
bind-addr | 监听地址与端口 | 0.0.0.0:8080 |
auth | 认证方式(password/none) | password |
password | 登录密码(也可用 PASSWORD 环境变量覆盖) | q1w2e3r4(演示) |
cert | TLS 证书(false 或证书路径,配 cert-key) | false |
修改后重启生效:systemctl restart code-server@root。完整参数(旗标、环境变量、代理与子路径等)见本专栏《code-server 4.143.1 配置参数详解》。
八、常见问题
8.1 忘记登录密码
密码明文存于运行用户的 ~/.config/code-server/config.yaml,直接查看或 sed 重置后 systemctl restart code-server@<用户>。
8.2 浏览器打不开 8080
按顺序排查:systemctl status code-server@root 看服务是否 active;ss -ltn | grep 8080 看监听地址是否为 0.0.0.0(默认配置是 127.0.0.1,外网访问必须改);journalctl -u code-server@root 看启动日志中的 HTTP server listening on ... 行。
8.3 启动日志正常但页面转圈
code-server 的 UI 资源走 WebSocket,若前面套了反向代理,代理必须放行 Upgrade 头;直连 IP:8080 不受此影响。
8.4 install.sh 下载中断
脚本用 curl -C - 断点续传且落盘为 .incomplete 后缀,重跑 sh /root/install.sh 即可从断点继续;也可加 --version 4.143.1 锁定版本避免重跑时版本漂移。
九、卸载与清理
# 停止并禁用服务
systemctl disable --now code-server@root
# deb 方案(A/B)卸载
dpkg -r code-server
# standalone 方案(C)卸载
rm -f /usr/local/bin/code-server /etc/systemd/system/code-server@.service
rm -rf /usr/local/lib/code-server-4.143.1
systemctl daemon-reload
# 用户数据与配置(按需保留或删除)
rm -rf /root/.config/code-server /root/.local/share/code-server /root/.cache/code-server
十、参考链接
- 官方安装文档:https://coder.com/docs/code-server/latest/install
- 安装脚本:https://code-server.dev/install.sh
- GitHub Releases(版本与包校验实查于 2026-10-27):https://github.com/coder/code-server/releases
- 专栏上一篇:《code-server 4.143.1 介绍与选型指南》