一、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 反向代理访问
- 适合生产环境和企业内部使用