大家好!Kasm Workspace是著名的可浏览器访问的、基于容器的镜像管理和部署系统。使用Kasm Workspace, 可以在您的服务器上一键部署远程浏览器、视频播放器、虚拟化Linux系统、在线Office、Telegram/Discord应用等等多种服务,并且所有这些服务都可以直接通过浏览器访问。
我曾经写过基于Guacamole的可用浏览器访问的Linux远程桌面一键部署脚本。Kasm Workspace具有更好的使用体验和显著更加丰富的功能性。今天,我就来介绍Kasm Workspace的部署和使用。
本文作者为香菇肥牛,原文链接为 https://qing.su/article/browser-access-kasm-workspace.html, 转载请注明原文链接。谢谢!
1. 系统环境与硬件要求
Kasm Workspace对于硬件的需求会由于具体的使用场景不同而产生较大差异。
对于个人使用而言(网页浏览、看视频、文件编辑等等),2核 CPU + 4 GB 内存一般就够了。
对于团队使用,4核CPU + 16 GB内存一般能够满足3-5人的并发使用需求。
Kasm Workspace运行于Docker, 因此没有特殊的操作系统需求。本文将以Debian 12为例,介绍Kasm Workspace的部署。您可以自由选择其他Linux系统。
2. Kasm Workspace的安装, Nginx反代与证书配置
现在,我们开始安装Kasm Workspace, 然后配置Nginx反代,并且设置SSL证书。
首先,在新装的系统中,直接使用官方一键脚本安装Kasm Workspace (https://kasmweb.com/docs/latest/install/single_server_install.html#installation-guide).
使用root账户,执行:
1 2 3 4 | cd /tmp curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.7f020d.tar.gz tar -xf kasm_release_1.17.0.7f020d.tar.gz bash kasm_release/install.sh -L 8443 |
这里,我们将Kasm Workspace网页端安装于8443端口。程序安装结束后,会生成一系列的用户名和密码,请保存备用。
接下来,使用Nginx反代这个网页端。
1 | apt-get install nginx python3-certbot-nginx -y |
然后编辑配置文件 /etc/nginx/conf.d/kasm.conf , 内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | server { listen 80; server_name space.qing.su; access_log /var/log/nginx/kasm_access.log; error_log /var/log/nginx/kasm_error.log; location / { proxy_pass https://127.0.0.1:8443/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_read_timeout 1800s; proxy_send_timeout 1800s; proxy_connect_timeout 1800s; proxy_buffering off; client_max_body_size 10M; } } |
请将 space.qing.su 替换为您自己的域名(后文中会多次出现这个域名,您需要依次替换为您自己的域名)。然后,检查并重新载入Nginx配置文件。
1 2 | nginx -t service nginx reload |
这时,访问 http://space.qing.su , 应该可以看到Kasm Workspace的界面了。我们还需要配置SSL证书。这里我直接使用了certbot, 您也可以按照个人习惯使用其他的证书。
1 | certbot --nginx --redirect -d space.qing.su |
如果您像我一样使用了certbot, 那么生成的证书地址位于 /etc/letsencrypt/live/space.qing.su/ 目录。在开始使用之前,我们还需要在Kasm Workspace中接入刚刚生成的SSL证书。
1 2 3 4 5 | /opt/kasm/bin/stop rm -f /opt/kasm/current/certs/kasm_nginx.key ln -s /etc/letsencrypt/live/space.qing.su/fullchain.pem /opt/kasm/current/certs/kasm_nginx.crt ln -s /etc/letsencrypt/live/space.qing.su/privkey.pem /opt/kasm/current/certs/kasm_nginx.key /opt/kasm/bin/start |
这样,我们就安装好了Kasm Workspace,并且配置了Nginx反代与安全证书,可以开始使用了。
3. Kasm Workspace镜像管理与安装
在浏览器中访问 https://space.qing.su, 使用刚刚生成的管理员用户登录Kasm Workspace, 来到如下图的界面。
在仪表盘中,检查一下当前状态是否为”Healthy“.
现在就可以添加我们需要的镜像了。点击顶部Workspaces, 然后可以直接添加官方的各种镜像。
官方提供了各类镜像,比如各类常见的Linux桌面版操作系统,各种浏览器,即时通讯软件,视频播放,Office等等。您可以按需添加。这里,我添加了火狐镜像和一个Ubuntu桌面版镜像。
添加完需要的镜像后,我们登出管理员账户,用安装时新建的普通用户账户登录。您也可以自行添加其他账户,方便多用户使用。
使用普通用户登录后,可以在面板中看到已经安装好的各种镜像,比如我们刚刚添加的火狐浏览器和Ubuntu桌面。选择想要使用的镜像,就可以直接在你的浏览器中使用这些程序了。比如,下面是通过浏览器访问的Ubuntu操作系统。
而下面是一个远程的火狐浏览器,我用2核VPS可以流畅播放 60帧1080P视频(如果您想用这个远程桌面来放视频,需要考虑到网络线路等因素)。
4. 用户数据保存
Kasm Workspace各个镜像的用户使用数据是默认不留存的。因此,当您关闭了之前的Ubuntu桌面或者火狐浏览器之后再重新打开,之前的用户文件、记录和设置就丢失了。如果需要做用户数据的留存,我们需要在Kasm Workspace的镜像管理中配置数据存储。
Kasm Workspace的数据存储支持服务器本地存储和远程S3存储。一般来说,服务器本地存储可以满足大部分用户的需求。
首先,新建一个目录,用于存储用户数据。我这里使用的是 /opt/kasm_data.
1 | mkdir /opt/kasm_data |
使用管理员账户登录Kasm Workspace, 点击左侧的Workspaces, 找到需要设置数据留存的镜像,点击右边的箭头并选择Edit.
然后,在 Persistent Profile Path中添加刚刚新建的目录。
1 | /opt/kasm_data/{image_id}/{user_id} |
保存退出后,我们就设置好了用户数据留存。这样,用户的使用数据就可以留存在服务器上,不会丢失了。
至此,我们完成了Kasm Workspace的安装,Nginx反代的配置与证书配置,镜像安装管理,以及用户数据的留存设置。您可以开始在浏览器中正常使用搭建好的Kasm Workspace云端工作站啦。
本文作者为香菇肥牛,原文链接为 https://qing.su/article/browser-access-kasm-workspace.html, 转载请注明原文链接。谢谢!