Kasm Workspaces 会把容器化的桌面和浏览器串流到你自己的浏览器中,让你在任何地方都能打开一次性的 Chrome 或完整的 Linux 桌面。在 Infrawire Linux VPS 上,单服务器(single server)版本是最简单的运行方式。本文以 Ubuntu 24.04 为例(Ubuntu 22.04 的做法相同)。
📋 前提条件
- 一台全新的 Ubuntu KVM VPS,拥有 root SSH 访问权限,且 443 端口没有被其他服务占用。在客户中心可以找到 VPS 的 IP 和 root 密码。
- Kasm 建议基础安装至少 2 个 CPU 核心、4 GB 内存和 50 GB SSD 存储,而每个运行中的工作区还需要额外内存。如果多人同时连接,请预留更多内存。
- 如果想使用受信任的 HTTPS 证书,需要一个指向
VPS_IP的域名,例如kasm.example.com。
🔄 1. 准备服务器
Bashssh root@VPS_IP apt update && apt -y upgrade && apt -y install curl
Kasm 会自行安装 Docker,所以请不要事先配置其他容器运行时。如果安装了新内核,请重启。
⬇️ 2. 下载最新版本
版本号会定期变化,请不要从旧教程里复制。打开官方下载页面(https://kasmweb.com/downloads)或单服务器安装指南(https://kasmweb.com/docs/latest/install/single_server_install.html),复制单服务器安装程序对应的当前版本压缩包链接,并替换下面的 RELEASE_URL。
Bashcd /tmp curl -O RELEASE_URL tar -xf kasm_release_*.tar.gz
压缩包会解压到包含 install.sh 的 kasm_release 目录。
⚙️ 3. 配置足够的 swap 并安装
工作区非常耗内存,swap 可以防止服务器因内存不足而突然杀掉进程。安装程序可以用 --swap-size 选项(单位 MB)为你创建 swap 文件:
Bashsudo bash /tmp/kasm_release/install.sh --swap-size 4096
如果 443 端口已被占用,加上 -L 8443,让网页界面改用 8443 端口。安装会下载多个 Docker 镜像,耗时 10 到 20 分钟。结束时脚本会输出默认账户 admin@kasm.local 和 user@kasm.local 的随机密码。请立即保存,它们只显示一次。
🌐 4. 打开网页控制台
访问 https://VPS_IP(如果改了端口则是 https://VPS_IP:8443)。暂时接受自签名证书的警告。用 admin@kasm.local 登录进入管理区,并在用户菜单中修改生成的密码。
如果使用防火墙,请放行网页端口:
Bashufw allow 22/tcp ufw allow 443/tcp ufw enable
启用 UFW 之前先放行 SSH,以免把自己锁在外面。
🔒 5. 添加 Let's Encrypt 证书
Kasm 通过内部的 Nginx 代理提供自己的证书。使用 Certbot 的 standalone 模式申请证书,这需要 80 端口空闲(Kasm 不使用它),然后把证书复制到 Kasm 期望的位置:
Bashapt -y install certbot certbot certonly --standalone -d kasm.example.com cp /etc/letsencrypt/live/kasm.example.com/fullchain.pem /opt/kasm/current/certs/kasm_nginx.crt cp /etc/letsencrypt/live/kasm.example.com/privkey.pem /opt/kasm/current/certs/kasm_nginx.key /opt/kasm/bin/stop /opt/kasm/bin/start
证书有效期为 90 天,因此每次续期后都要重复复制并重启,例如在 /etc/letsencrypt/renewal-hooks/deploy/ 中放一个 Certbot deploy hook。
🚀 6. 启动隔离的浏览器
用普通用户(user@kasm.local)登录,Workspaces 页面会列出可用的镜像。如果列表为空,请以管理员身份登录,打开 Workspaces > Registry,安装你需要的镜像,例如 Chrome、Firefox 或 Ubuntu 桌面。然后点击某个工作区即可启动:新标签页会打开串流给你的完整桌面或浏览器,侧边栏提供剪贴板和文件传输控制。关闭会话后,容器会被销毁。
✅ 7. 验证
Bashdocker ps --format '{{.Names}}: {{.Status}}' ss -tlnp | grep -E ':(443|8443)\b' free -h
你应该能看到正在运行的 kasm_* 容器、处于监听状态的网页端口,以及 free -h 输出中的 swap。
🧰 故障排查
- 安装程序因内存或磁盘错误而停止:检查
free -h和df -h。用--swap-size添加 swap,释放磁盘空间,然后重新运行安装程序。 - 工作区一直停在加载界面:服务器可能内存不足,或镜像尚未完整拉取。检查
docker ps -a和/opt/kasm/current/log/中的日志,并关闭其他会话。 - 浏览器提示证书问题:
/opt/kasm/current/certs/中的文件没有被替换,或服务没有重启。重复第 5 步,并在地址栏中使用域名而不是 IP。 - 管理员密码丢失:用另一个管理员账户在管理区重置;如果已没有管理员,请在干净的 VPS 上重新安装。
🎉 Kasm Workspaces 已经运行:按需启动浏览器和桌面,与你自己的电脑安全隔离。