kasm不是linux桌面套件,而是基于docker的容器化应用平台,需通过拉取镜像(如kasmweb/kasm_release:1.15.0)、运行容器并浏览器访问web ui使用,不依赖宿主机桌面环境,也不在apt源中提供。

Kasm 不是“安装在 Linux 上的桌面”,而是用容器运行隔离桌面——它本身不依赖宿主机桌面环境,也不该被当成普通软件装在现有系统里。
为什么不能 apt install kasm-desktop
Kasm 是一个独立的容器化应用平台,不是 Debian/Ubuntu 的桌面套件。你找不到 kasm 包在官方源里,apt install kasm 会报错“无法定位软件包”。它的部署方式是:下载预构建的 Docker 镜像 + 启动容器服务 + 通过浏览器访问 Web UI。
- 它不修改宿主机的 X11、Wayland 或显示管理器(如 LightDM)
- 它不与 XFCE/GNOME 共享进程或配置文件
- 它默认监听
0.0.0.0:6901(VNC)和:443(Web),不占用宿主机桌面端口(如 :0) - 所有桌面会话都在容器内启动,退出即销毁,不留痕迹
实际部署只需三步:拉镜像、启容器、开防火墙
以 Ubuntu 24.04 为例(其他发行版仅需确认已装 docker-ce 和 curl):
- 确保 Docker 正常运行:
systemctl is-active docker应返回active - 拉取官方镜像:
docker pull kasmweb/kasm_release:1.15.0(截至 2026 年 4 月最新稳定版) - 一键启动(含持久化存储):
docker run --name kasm --rm -d \ -p 6901:6901 -p 443:443 \ -v /opt/kasm/volumes:/usr/share/kasm/volumes \ kasmweb/kasm_release:1.15.0
- 放行端口:
sudo ufw allow 443(HTTPS Web UI)、sudo ufw allow 6901(可选,用于 VNC 客户端直连)
等待约 30 秒,浏览器访问 https:// 即可看到登录页,默认用户 admin,密码 password(首次登录后强制修改)。
常见错误:网页打不开或提示证书不安全
这是最常卡住的两个点:
-
打不开页面:检查
docker ps是否有kasm容器在Up状态;用docker logs kasm | tail -20看是否卡在证书生成(常见于首次启动时磁盘 I/O 慢);确认宿主机没启用iptables规则拦截 443 端口 -
浏览器报“您的连接不是私密连接”:Kasm 默认自签证书,必须手动点击“高级 → 继续前往...”(Chrome/Firefox);生产环境应替换为 Let’s Encrypt 证书,方法是挂载
/etc/letsencrypt到容器内/usr/share/kasm/ssl,并修改容器启动参数中的KASM_SSL_CERT和KASM_SSL_KEY环境变量 -
登录后黑屏或卡在加载图标:大概率是宿主机缺少 GPU 支持(尤其云服务器无 vGPU);可在 Kasm Web UI 的「Admin Settings → Profiles」中将默认 Desktop Profile 的
gpu_acceleration设为false,或改用xfce类型而非ubuntu-desktop
和 KasmVNC 的关键区别别搞混
很多人把 Kasm 和 KasmVNC 当成同一套东西,其实它们定位完全不同:
-
KasmVNC是一个轻量级 VNC 服务端,只负责把本地 X11 桌面(比如你手动启的xfce4-session)编码推到浏览器,它本身不提供桌面,也不带容器 -
Kasm是完整容器平台,每个用户登录后启动的是全新隔离的 Ubuntu/CentOS/Kali 容器桌面,自带 Chrome、VS Code、GIMP 等预装应用,支持策略管控、审计日志、闲置自动销毁 - 两者不兼容:Kasm 的 Web UI 不能接入 KasmVNC 的 8444 端口;KasmVNC 的
vncserver命令在 Kasm 容器里也无效
如果你只是想远程看一眼当前 Linux 桌面,用 KasmVNC;如果你要给 50 个外包人员每人分配一个带 Chrome 和 Python 的临时桌面,并控制他们能访问什么网站、能存多久文件,那才是 Kasm 的真实场景——它的复杂度不在安装,而在后续的 profile 策略配置和 LDAP 集成上。











