在日常开发中,VS Code 凭借着轻量、高效和丰富的插件生态,几乎已经成为开发者们离不开的“瑞士军刀”。但传统的 VS Code 只能跑在本地。有没有想过,哪天你在星巴克,掏出平板或者轻薄本,甚至是一台性能孱弱的旧电脑,就能连上家里那台高配服务器,享受丝般顺滑的编码体验?
Code-Server 正为此而生。它是一个开源项目,让你能通过任何现代浏览器,安全地使用一个功能完整的 VS Code 环境。项目源码就托管在 GitHub 上: https://github.com/coder/code-server
这篇指南将带你一步步在 Ubuntu 22.04 Jammy Jellyfish 或 24.04 Noble 上完成安装与配置。同样的步骤也适用于 Debian、Linux Mint 和 POP!_OS 等衍生发行版。
准备工作
首先,确保你的 Ubuntu 环境满足这几个小要求:
- 一台搭载 Ubuntu 22.04 或 24.04 的服务器或桌面版
- 一个拥有
sudo 权限的非 root 用户
- 至少 1 GB 的内存和 2 核 CPU
万事俱备,我们先刷新一下系统的软件源。
sudo apt update
安装 Code-Server
在 Linux 下安装 Code-Server 主要有两条路:官方便捷脚本,或者手动下载 Deb 包。我们来看看两种方式各有什么门道。
方式一:脚本一键安装(通用性最强)
这是最简单粗暴的方法,对几乎所有 Linux 发行版都管用。在终端中执行这行命令,脚本会自动帮你检测系统,下载并配置好一切。
curl -fsSL https://code-server.dev/install.sh | sh

方式二:手动下载 Deb 包(更可控)
如果你更习惯掌控细节,或者你的机器网络环境比较特殊,手动下载安装包是更好的选择。
首先,去项目的 GitHub Release 页面看看。向下滚动,找到适合你架构的 .deb 格式安装包。

下载完成后,在你的终端里,切换到 Downloads 目录,因为浏览器下载的文件默认都在这里。
cd Downloads
用 ls 看一眼,确认文件在不在:
ls
确认无误,果断执行安装:
sudo apt install ./code-server_*_amd64.deb
启动并启用服务
安装成功只是第一步。我们需要让 Code-Server 先跑起来,并设置成开机自启,这样它才能时刻待命。
sudo systemctl start code-server@$USER
接着,启用服务,让它在系统启动时自动运行:
sudo systemctl enable --now code-server@$USER
小提示:这里的 $USER 环境变量会被自动替换为当前用户名。这意味着我们只为当前用户启动了服务。

打通外界:配置 Nginx 反向代理
默认情况下,Code-Server 仅监听本地回环地址 localhost。要远程访问,我们有两个选择:搭建 SSH 隧道,或者部署一个反向代理。这里我们选用轻量级的 Nginx。
一个小窍门是,如果你只是在安全的内网里用,想偷个懒,可以直接编辑配置文件 ~/.config/code-server/config.yaml,把 bind-addr: 127.0.0.1:8080 改为 0.0.0.0:8080,这样就能直接用 IP 访问了。但出于安全考虑,生产环境还是推荐走代理。
好啦,我们正式开工。先安装 Nginx:
sudo apt install nginx -y
启动并设置 Nginx 开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
检查下 Nginx 状态,确保没有报错:
sudo systemctl status nginx
为 Code-Server 编写 Nginx 配置
接下来,我们需要告诉 Nginx 如何把请求转发给后台的 Code-Server。创建一个新的站点配置文件:
sudo nano /etc/nginx/sites-available/code-server
把下面的内容敲进去。请根据你的实际情况,替换 yourdomain.com 或者服务器 IP。
server {
listen 80;
listen [::]:80;
server_name yourdomain.com;
#server_name system-ip-address;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
注意:如果你有域名,把 yourdomain.com 替换为你的完全限定域名。如果没有,就把 #server_name system-ip-address; 这行的 # 删掉,并填入你服务器的真实 IP。
保存文件后(Ctrl + O,回车,Ctrl + X),我们通过创建软链接来启用这个站点:
sudo ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/code-server
最后,让所有配置生效:
sudo systemctl restart nginx
sudo systemctl restart code-server
别忘了在防火墙里给 HTTP 和 HTTPS 放行:
sudo ufw allow 80
sudo ufw allow 443
解锁登录密码
现在,在任意一台能访问服务器的浏览器里,输入你的服务器 IP 或域名:
http://server-ip-address
# 或者
http://your-domain
你会马上看到一个登录界面。密码藏在哪呢?

我们需要去它的 YAML 配置文件里把它揪出来。在服务器终端执行:
nano ~/.config/code-server/config.yaml
打开后,找到 password 字段,复制那串字符,回到网页粘贴,大功告成!
在浏览器里挥斥方遒
成功登录后,一个熟悉的 VS Code 界面就会出现在你的浏览器里。你会看到欢迎页,可以新建文件、打开文件夹,甚至直接在侧边栏管理扩展、进行搜索,一切都和在本地操作没什么两样。

试着新建一个文件,比如测试一段脚本:

进阶:用 Let‘s Encrypt 给连接加把锁
明文传输终究不安全。如果你的 Code-Server 暴露在公网上,强烈建议立即配上 SSL 证书。
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --non-interactive --redirect --agree-tos --nginx -d yourdomain.com -m me@example.com
记得:把 me@example.com 换成你的真实邮箱,yourdomain.com 要和你 Nginx 里设的域名完全一致。
证书部署好后,重启 Nginx,之后就能通过 https://你的域名 安全访问了。
sudo systemctl restart nginx
如何卸载与清理
如果哪天你不再需要这个环境了,清理起来也很干脆。先停掉相关服务:
sudo systemctl stop nginx
sudo systemctl stop code-server@$USER
然后卸载软件包:
sudo apt remove code-server
如果你只为此安装了 Nginx,也可以一并去掉:
sudo apt remove nginx
最后,删除残留的用户数据和配置:
rm -rf ~/.local/share/code-server ~/.config/code-server
rm -rf ~/.local/lib/code-server-*
结语
现在,我们已经把 VS Code 搬到了浏览器里,无论你是想随时随地写点小项目,还是构建一个随时可用的云端开发工作站,Code-Server 都是一个值得托付的选择。在 云栈社区 的日常讨论中,大家也常常探讨这类运维和 DevOps 工具的实践经验,有兴趣的话可以去找找灵感。
所有数据集中管理、任何设备随开随写,这种自由,一旦体验过,可能就真的回不去了。