找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3608

积分

0

好友

472

主题
发表于 6 小时前 | 查看: 4| 回复: 0

在日常开发中,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

终端界面显示在Ubuntu 系统中执行curl命令下载并安装code-server的过程,可见dpkg安装与systemd服务提示

方式二:手动下载 Deb 包(更可控)

如果你更习惯掌控细节,或者你的机器网络环境比较特殊,手动下载安装包是更好的选择。

首先,去项目的 GitHub Release 页面看看。向下滚动,找到适合你架构的 .deb 格式安装包。

GitHub Releases页面,箭头高亮标注了两个amd64和arm64架构的.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 环境变量会被自动替换为当前用户名。这意味着我们只为当前用户启动了服务。

终端执行systemctl start和enable命令后的输出,显示服务已创建软链接

打通外界:配置 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

你会马上看到一个登录界面。密码藏在哪呢?

code-server登录页面,要求输入密码

我们需要去它的 YAML 配置文件里把它揪出来。在服务器终端执行:

nano ~/.config/code-server/config.yaml

打开后,找到 password 字段,复制那串字符,回到网页粘贴,大功告成!

在浏览器里挥斥方遒

成功登录后,一个熟悉的 VS Code 界面就会出现在你的浏览器里。你会看到欢迎页,可以新建文件、打开文件夹,甚至直接在侧边栏管理扩展、进行搜索,一切都和在本地操作没什么两样。

code-server登录后的欢迎主界面

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

code-server新建文件,编辑器就绪,AI辅助功能可用

进阶:用 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 工具的实践经验,有兴趣的话可以去找找灵感。

所有数据集中管理、任何设备随开随写,这种自由,一旦体验过,可能就真的回不去了。




上一篇:Heine-Borel 定理生存指南:有界+闭 = 紧致,不再抽象
下一篇:C#基础算法实战:手写10个经典程序从类型转换到二分查找
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-30 10:29 , Processed in 0.604571 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表