Ubuntu 22.04 安装 code-server 4.143.1 指南

Ubuntu 22.04 上 install.sh 在线脚本、deb 离线包、standalone tar.gz 三种方案安装 code-server 4.143.1 并 systemd 托管,含登录与健康检查实测回显。

code-servercode-serverUbuntu 22.042026/10/27

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(演示)
certTLS 证书(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

十、参考链接