在Linux服务器中部署Kasm Workspace云端工作站

大家好!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, 转载请注明原文链接。谢谢!

Leave a Comment