Barrier 的安裝和配置

卡卡一点都不卡發表於2024-06-20

背景

目前在使用的是 Ubuntu + Win 的兩套主機,日常開發主要是 Ubunut,但部分工作不得不用到 Win,所以透過一套鍵鼠來控制兩臺主機的需求(KVM)就很強烈了。
關於具體的 KVM 方案選擇過程,可以點選方案評估來選擇具體的方案,本篇文章主要是給那些決定使用 Barrier 的同學提供一個較為完善的安裝配置過程,避免踩我之前踩過的坑。

安裝

Barrier 的安裝在不同的平臺上略有不同。

Win

直接透過 Github release頁面 點選下載 exe 安裝包,安裝即可

Mac

同 Win

Ubuntu 24.04

sudo apt install barrier

其他 Linux 發行版

由於 Linux 發行版較多,並不是所有平臺都提供包管理工具便捷的安裝,可能就需要自己去 clone 原始碼進行編譯打包了。這裡暫時不擴充套件,有需要的話我再單獨出個教程。

配置

Barrier 的配置是比較繁瑣的,裡面會有一些小坑。但只要思路理清,還是比較容易的。
整個配置的過程主要分為幾個步驟:SSL 生成(客戶端,服務端),客戶端配置服務端 IP資訊,服務端配置客戶端的螢幕資訊。
在我的場景裡,Ubuntu 是客戶端,Win 是服務端,你們也可以自己定義客戶端和服務端,這個都沒關係,可以隨時調換。

SSL 生成

假如此時直接啟動的話,此時你會發現 Barrier 提示已執行,但沒有任何效果

這個時候,透過檢視日誌,可以看到一些錯誤資訊:

Win 下看到的可能是:
ERROR: ssl certificate doesn't exist: C:\Users\你的使用者名稱\AppData\Local\Barrier\SSL\Barrier.pem
Ubuntu & Mac 下看到的則為:
ERROR: ssl certificate doesn't exist: /home/你的使用者名稱/.local/share/barrier/SSL/

注:透過檢視日誌,可以看到具體的錯誤執行原因,這個操作很有用,後續有什麼其他的問題排查, 也是這個思路。

目前 Barrier 是透過 SSL 對資料傳輸進行加密的,所以配置的第一步是生成相關的 pem 配置。

Ubuntu & Mac

在 Ubuntu 和 Mac 下,生成 pem 是比較簡單的,只要進入到對應目錄之後,執行命令:

openssl req -x509 -nodes -days 365 -subj /CN=Barrier -newkey rsa:4096 -keyout Barrier.pem -out Barrier.pem

即可生成 Barrier.pem 檔案

Win

由於 Win 預設沒有 openssl 命令,所以這邊是透過 git bash 環境來實現的。(其他方式也可以,但 git bash 自帶 openssl 工具)

檔案管理器進入對應目錄之後,右鍵點選空白:

選擇 Open Git Bash Here
隨後,執行:

openssl req -x509 -nodes -days 365 -subj /CN=Barrier -newkey rsa:4096 -keyout Barrier.pem -out Barrier.pem

此時,可能會提醒你
... name is expected to be in the format ...
此時有兩個解決方式:

  1. setting the MSYS_NO_PATHCONV environment variable to 1
  2. 使用雙斜槓,也就是 //CN=Barrier
    我的環境下,起作用的是方法 2 :
openssl req -x509 -nodes -days 365 -subj //CN=Barrier -newkey rsa:4096 -keyout Barrier.pem -out Barrier.pem

具體原因,跳轉瞭解

螢幕配置

SSL 配置完成之後,再次啟動的話,發現可以正常載入 SSL 檔案了,但此時新的錯誤又出現了,在客戶端的日誌裡發現:
server refused client with name
出現這個問題的原因,是在服務端當中,沒有將客戶端的螢幕配置為信任列表,接下來開始配置螢幕。

服務端日誌:

unrecognised client name "BJI118-LF4EKCPY", check server config

在服務端的 Barrier 頁面,點選 Configure Server

隨後在彈出的頁面當中,你可以看到服務端自己的螢幕資訊,在你想要的位置,雙擊後彈出一個視窗,在螢幕名稱裡面,輸入客戶端的螢幕名稱,點選儲存即可。
客戶端的名稱怎麼來呢:

把這部分資料填進去即可。

最後,客戶端和服務端都重啟一下,就可以愉快的玩耍了。

相關文章