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 反向代理访问
  • 适合生产环境和企业内部使用
相关推荐
qq_297670871 小时前
第 4 篇:HTTP 和浏览器——HTTPS 不只是「把 HTTP 包一层 TLS」那么简单
网络安全·https·tls
!chen2 小时前
客户环境 Nginx 配置流式报表与超时排查
运维·nginx
今夕资源网2 小时前
本地SSL证书生成工具本地 HTTPS 配置不用再敲命令:CertTool 一站式管理自签证书与 Hosts
网络协议·https·ssl·ssl证书生成·ssl本地测试证书
一叶龙洲2 小时前
Ubuntu从图标到卸载应用
linux·windows·ubuntu
头发够用的程序员2 小时前
别被 TOPS 参数迷惑:手把手推导边缘 GPU 整型算力
人工智能·python·ubuntu·计算机视觉·硬件架构·边缘计算
大喵桑丶3 小时前
AlmaLinux 9 上基于 PostgreSQL + Nginx 部署高可用轻量级 Gitea 服务
nginx·postgresql·gitea
ocean21037 小时前
2025-2026年计算机网络面试高频知识点洞察
计算机网络·面试·职场和发展·https·tcp·面试真题·秋招春招
捷瑞电子工坊7 小时前
VSCode的配置和一些报错问题
vscode·ubuntu·c/c++·编译报错·开发环境配置·初学者教程·json配置
今夕资源网7 小时前
Windows 本地 HTTPS 配置教程:使用 CertTool 创建自签名证书并部署到宝塔
windows·网络协议·https
uoKent19 小时前
计网中的HTTP/HTTPS
网络协议·http·https