Ubuntu 使用 systemd + Nginx 部署 code-server(含 HTTPS)

一、code-server 简介

code-server 是 Coder 团队开源的项目,它可以让你在浏览器中运行 VS Code,实现远程开发环境的统一管理,适用于:

  • 云服务器远程开发
  • 内网 / 局域网开发
  • CI / 开发机统一环境
  • 无法安装 VS Code 客户端的场景

GitHub 官方仓库:

👉 https://github.com/coder/code-server


二、下载 code-server(指定版本 v4.108.1)

本教程 不使用一键安装脚本 ,而是直接从 GitHub Releases 下载指定版本,方便版本锁定和生产环境部署。

1️⃣ 下载二进制包

Linux x86_64 为例:

bash 复制代码
cd /tmp

wget https://github.com/coder/code-server/releases/download/v4.108.1/code-server-4.108.1-linux-amd64.tar.gz

如果你的服务器是 ARM 架构,请下载对应版本(如 linux-arm64)。


2️⃣ 解压并安装

bash 复制代码
tar -zxvf code-server-4.108.1-linux-amd64.tar.gz
sudo mv code-server-4.108.1-linux-amd64 /opt/code-server

创建软链接,方便全局使用:

bash 复制代码
sudo ln -s /opt/code-server/bin/code-server /usr/bin/code-server

验证安装:

bash 复制代码
code-server --version

输出类似:

复制代码
4.108.1

三、使用 systemd 创建 code-server 服务

1️⃣ 创建 systemd 服务文件

使用 echo 命令自动创建服务文件:

bash 复制代码
echo "[Unit]
Description=code-server
After=network.target

[Service]
Type=exec
ExecStart=/usr/bin/code-server
User=ubuntu
Restart=always

[Install]
WantedBy=multi-user.target" | sudo tee /etc/systemd/system/code-server.service > /dev/null

📌 说明:

  • User=ubuntu:使用普通用户运行,更安全
  • ExecStart=/usr/bin/code-server:指向刚才创建的软链接
  • Restart=always:异常自动重启

2️⃣ 重新加载 systemd

bash 复制代码
sudo systemctl daemon-reload

3️⃣ 设置开机自启并启动

bash 复制代码
sudo systemctl enable code-server
sudo systemctl start code-server

4️⃣ 查看服务状态

bash 复制代码
sudo systemctl status code-server

四、code-server 默认端口说明

code-server 默认监听:

复制代码
127.0.0.1:8080

只监听本地地址,必须通过反向代理或 SSH 隧道访问,安全性更好。


五、使用 Nginx 反向代理 code-server(HTTPS)

下面示例使用 mkcert 生成的本地证书,生产环境可替换为正规 CA 证书。


1️⃣ Nginx 配置示例

nginx 复制代码
server {
    listen 443 ssl;
    http2 on;
    server_name 192.168.31.142;

    ssl_certificate     /root/shiyan/localhost+3.pem;
    ssl_certificate_key /root/shiyan/localhost+3-key.pem;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    location / {
        proxy_pass http://localhost:8080/;

        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection upgrade;
        proxy_set_header Accept-Encoding gzip;
    }
}

⚠️ 注意:

  • WebSocket 相关 Header 必须配置,否则编辑器无法正常使用
  • proxy_pass 地址需与 code-server 监听端口一致

2️⃣ 重载 Nginx

bash 复制代码
sudo nginx -t
sudo systemctl reload nginx

六、访问 code-server

浏览器访问:

复制代码
https://192.168.31.142

首次登录需要输入 code-server 密码,密码位置:

bash 复制代码
~/.config/code-server/config.yaml

示例内容:

yaml 复制代码
bind-addr: 127.0.0.1:8080
auth: password
password: your_password_here

七、常见问题排查

1️⃣ 服务启动失败

查看日志:

bash 复制代码
journalctl -u code-server -f

重点检查:

  • ExecStart 路径是否正确
  • User=ubuntu 是否存在
  • /opt/code-server 权限是否正确

2️⃣ 页面能打开但无法编辑

👉 99% 是 Nginx WebSocket 头未配置完整


八、总结

本文演示了:

  • 从 GitHub Releases 下载 指定版本 v4.108.1
  • 使用 systemd 管理 code-server
  • 普通用户运行,安全可靠
  • Nginx + HTTPS 反向代理访问
  • 适合生产环境和企业内部使用
相关推荐
万里不留行1 小时前
解决ubuntu docker拉取环境失败问题
linux·ubuntu·docker
PascalMing1 小时前
告别 Nginx!ASP.NET Core 实现多域名 Vue 静态服务与代理转发
vue.js·nginx·asp.net
深念Y1 小时前
Nginx和Spring Cloud Gateway
运维·服务器·网络·网关·nginx·spring cloud·微服务
困惑阿三1 小时前
全栈部署排雷手册:从 405 报错到飞书推送成功
服务器·前端·后端·nginx·阿里云·node.js·飞书
竹之却2 小时前
Ubuntu 系统安装 Ollama 教程
linux·运维·ubuntu·ollama
yy552711 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
内卷焦虑人士13 小时前
Windows安装WSL2+Ubuntu 22.04
linux·windows·ubuntu
门豪杰15 小时前
Ubuntu下安装Claude Code
linux·运维·ubuntu·claude·claude code
深蓝轨迹17 小时前
彻底删除VMware虚拟机并清理残留,解决虚拟网卡消失问题
windows·ubuntu·centos
2501_9160074718 小时前
HTTPS 抓包的流程,代理抓包、设备数据线直连抓包、TCP 数据分析
网络协议·tcp/ip·ios·小程序·https·uni-app·iphone