快轉到主要內容

有瀏覽器就能用!Kasm Workspaces,Docker架設Linux遠端桌面

分類   Linux系統 Self-hosting自架
標籤   Virtual Desktop Infrastructure KasmVNC Remote Desktop Docker
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

需要隨時隨地存取Linux桌面環境嗎?

Kasm Workspaces為Kasm Technologies Inc推出的桌面即服務(DaaS)解決方案,建立多個虛擬Linux桌面,隨時隨地用網頁瀏覽器存取。

1. Kasm特色功能
#

  • 提供多種Linux發行版與桌面環境搭配的映像檔,快速建立虛擬桌面,內建常用的文書軟體與會議軟體,登入後立即開始工作。
  • Kasm只要有瀏覽器就能存取。遠端桌面使用KasmVNC串流畫面,操作類似Apache Guacamole但功能更強,支援播放音訊、存取攝影機、錄音、共享剪貼簿、上傳檔案、虛擬多螢幕。
  • 支援共享桌面,設定僅供檢視模式,將網址分享給別人觀看你的畫面,並使用文字聊天。
  • 針對平板、手機最佳化,能使用客戶端作業系統的輸入法打字。例如從Android瀏覽器連線的時候可以使用Gboard打中文。
  • 專為多人存取設計,每個帳號都有自己的工作區,透過Docker分配CPU與硬碟資源。
  • Kasm並非遠端連線到Linux桌面,而是使用Docker容器跑Linux桌面,啟動速度非常快。
  • 容器裡面跑的是獨立的系統,跟宿主機並不相關。結合Docker的特性,可以將容器設定成用完即丟,任何操作都不會影響到宿主機系統。
  • Kasm支援GPU加速,可以讓容器使用GPU渲染3D圖像。

那Kasm跟Distrobox、x11Docker又有什麼差呢?我難道不能自己開個Linux容器裝桌面環境和noVNC,達成Kasm的效果嗎?當然可以。

我想,Kasm的最大優點就是開箱即用,並提供一個靈活管理多個使用者的界面了吧。Kasm還有一個註冊表界面,方便你下載需要的應用程式,就像App Store一樣。

2. Kasm系統需求
#

根據Kasm官方文件,建議宿主機規格:

  • CPU 2核心以上
  • RAM 4GB以上
  • 儲存空間 SSD 50GB以上
  • 支援的作業系統:Linux、Windows

Kasm本質是在Linux跑Docker,再於容器裡面跑Linux桌面。這是最簡單的方案,開箱即用。但是你不能將Windows系統塞到Linux的Docker裡面跑(除非把KVM虛擬機包成Docker映像檔),因此Kasm若要搭配Windows使用,你得另外準備Windows虛擬機,再將Kasm與之連線。

3. 安裝Kasm
#

Kasm提供付費版與社群版,後者為免費的軟體,部分開源,不可用於商業用途。

請先安裝 Docker和docker-compose再安裝Kasm。

Kasm官方文件推薦使用他們的指令稿來安裝服務,支援x86與ARM架構的伺服器。

雖然LinuxServer.io有打包kasm的Docker映像檔,但如果用LinuxServer.io的方式部署Kasm的話,會變成在Docker裡面跑Docker,架構怪怪的。

4. 管理Kasm服務
#

  1. 安裝指令稿結束後會自動生成一組密碼

  2. 開啟瀏覽器,開啟網址https://Linux伺服器IP:443,使用管理員帳號[email protected]登入後台。

  3. Kasm界面的語言設定會影響容器裡面的語言…雖然如此,但Kasm中文界面翻譯很爛,所以我用英文版。

  4. Kasm的系統服務和全部容器可用以下指令開關,目前看來沒有整合到Systemd。

cd /opt/kasm/bin

sudo ./stop

sudo ./start

5. Kasm工作區功能簡介
#

點選「Workspaces」界面(一般使用者登入帳號只會看到工作區界面),這裡可以新增多個工作階段。

比如點選Ubuntu圖示啟動桌面,內建的桌面是為Ubuntu 20.04 XFCE桌面,可看到裡面已經內建許多常用軟體。

點選旁邊的選單,開啟KasmVNC的功能。例如啟用IME Input Mode,就能用客戶端的輸入法打中文。 設定允許存取Webcam將客戶端的鏡頭傳給遠端容器使用,方便進行視訊會議。

如果在工作區點選應用程式,啟動之後僅會開啟單一應用程式視窗,而非啟動整個桌面環境。

例如我這裡開了GIMP,要載入素材就是利用Kasm的上傳功能,從本機上傳檔案到遠端的Uploads目錄,就能夠編輯了。


關於Stop session與Delete session的差別:Stop會停止該工作階段,將資源釋放出來給其他容器用;Delete則是完全刪除容器和使用者資源。

注意,預設情況下,每個Kasm工作階段一個小時後就會過期,接著資料會全部刪除。請看下文了解如何啟用永久儲存使用者資料。

6. 如何永久儲存使用者資料
#

預設情況下,每個Kasm工作階段一個小時後就會過期,接著資料會全部刪除。

這個可以在後台管理 → Access Management → Groups → Users → Settings,把過期秒數keepalive_expiration調高

或者, 掛載Persistent Profile,這樣每個工作階段的資料就會保存下來,資料儲存在/mnt/kasm_profiles。之後啟動工作階段就有「Persistent Profile」選項可用。

另外還可以 設定Volume Mapping掛載宿主機的目錄給Kasm工作區存取,讓所有使用者共享資料儲存區。

7. 安裝新的工作區和應用程式
#

用管理員帳號登入後台,到Workspace Registry頁面,下載其他Linux發行版的桌面,或者單一應用程式。

每個Linux發行版都是一個Docker映像檔,應用程式也都是Docker映像檔,並非透過APT安裝。

老實說Kasm打包的應用程式映像檔都很肥 == 光是一個瀏覽器映像檔就高達3GB。如果覺得太臃腫,不如開一個Linux桌面的工作階段,再於裡面用APT安裝套件為好。請記得 給Kasm工作區設定root權限

相關文章

noVNC,用任意網頁瀏覽器存取Linux VNC遠端桌面
分類   Linux系統 Self-hosting自架
標籤   VNC Remote Desktop
Linux設定TigerVNC遠端桌面,用Systemd執行vncserver
分類   Linux系統 Self-hosting自架
標籤   VNC Remote Desktop
使用內網穿透軟體 + x11VNC架設免費Linux遠端桌面
分類   Linux系統 Self-hosting自架
標籤   Remote Desktop ZeroTier VNC

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。