barrier 軟體KVM - Linux

Victoria avatar
By Victoria
at 2021-08-26T23:44

Table of Contents

先介紹一下傳統上的KVM(Keyboard,Video,Monitor)

傳統上的KVM通常是一個電腦主機外的物理裝置

此物理裝置用途為分享同一組滑鼠跟鍵盤給兩台主機使用

就外觀上來說會有一組鍵盤跟滑鼠接到此裝置上,再由此裝置本身拉兩組USB數據線分別接到A電腦及B電腦

使用時是藉由KVM裝置上的按鈕來切換當下使用滑鼠與鍵盤的主機是哪一台

而barrier則是一個開源的軟體KVM,程式碼託管在Github上,無須任何額外的硬體裝置即可實現兩台主機間共用同一組滑鼠鍵盤

但 barrier 只能共用滑鼠跟鍵盤,兩台主機需要使用各自獨立的螢幕

###barrier具體的功能###
當你的滑鼠超出A電腦的螢幕邊界時,就會自動把滑鼠跟鍵盤切換到B電腦上
另外barrier還支援"文字"的複製剪貼Ex:A電腦上複製後再到B電腦上貼上

###使用barrier的先決條件###
1.你的系統具有Desktop Environment(我的測試環境為LXDE)
2.A電腦及B電腦須在同一區網底下
3.系統沒有使用login畫面(或許可以但我沒成功,下面有一些解釋)

###具體的安裝及設定###
1.兩台電腦都要安裝barrier軟體

2.安裝指令對於Debian系列的系統來說只要執行 sudo apt install barrier 就可以了

3.現在假設你的滑鼠及鍵盤實體上是接在A電腦上,則代表A電腦要作為 Barrier Server 端,B電腦則是作為 Barrier Client 端

先設定作為Barrier Server 的A電腦,從系統的應用程式選單中叫出barrier軟體,會有圖形界面給你操作

對於A電腦來說選擇"Server(share this computer's mouse and keyboard)" 選項

然後點擊"Configure Server..."按鈕,出現的4x3框格正的中央的螢幕圖示代表你當前A電腦的螢幕

此時請用滑鼠左鍵對右上角的螢幕圖案進行拖曳,拖到你B電腦螢幕相對於A電腦螢幕的位置Ex:通常為A電腦螢幕的左側或右側

使用左鍵雙擊A電腦的螢幕圖示並以A電腦的hostname重新命名,同理請更改B電腦螢幕圖示的名稱為B電腦的hostname

選擇"OK" => "Apply" => "Start",並看到"Barrier is running"就代表完成了A電腦的設置,並成功啟動barrier server

此時可以關掉barrier軟體的圖形界面,這並不會停止barrier的運作,你可以從桌面工具列的barrier圖示中再把barrier控制面板叫出來

5.對於B電腦來說叫出barrier軟體後選擇"Client(use another computer's mouse and keyboard)",然後保持預設勾選的"Auto config"選項

點選"Apply" => "Start",並看到"Barrier is running"就代表完成B電腦的設置了

理論上這樣就要可以自動連線了,如果是第一次連線的話barrier client端會向你確認是否接受barrier server的金鑰

###可能出現的問題###
1.如果無法連線請檢查你的防火牆規則,barrier server 端預設使用 port 24800 來 listening

2.barrier軟體一般來說必須先登入桌面後才能啟動,這代表了如果你的系統有login畫面,使用barrier只是增加麻煩

因為我們已經假設另一台就是沒有鍵盤滑鼠的狀態了,難道還要先把鍵盤跟滑鼠拔去另一台電腦登入後再插回來?

所以使用上都是假設沒有使用login畫面,然後直接在bashrc中啟動barrier,這樣只要之前設定過就會自動連線

3.如果想嘗試在系統有login畫面的情況下啟動barrier可能會遇到一些問題(以下是個人臆測,不保證正確)

舉例來說使用systemd的服務來實現在login畫面下自動開啟barrier

因為login畫面(Display Manager)本身是由root來執行的,所以這時必須是以root身份執行barrier而非使用者身份

且因此時並沒有barrier軟體的圖形界面可用,代表說你必須在systemd服務中完全以command line實現barrier的啟動

所以你必須熟知barrier具體的指令參數並預先配置好所有需要的設定檔

再來是systemd服務還需要實現在登入使用者後 "以登入的使用者身份" 啟動 barrier 而非 root 的身份

因為登入使用者桌面後,barrier 的控制權應該要是使用者而非root

補充:後來我個人嘗試後失敗,在login畫面下無法正常啟動barrier server(準確來說是可以啟動但無法正常工作)

###其他###
比較值得注意但還在開發的功能為Drag and Drop,相當於羅技滑鼠在Windows上提供的flow功能
該功能主要是想實現可以用滑鼠直接拖曳一台電腦上的檔案到另一台電腦上

--
Tags: Linux

All Comments

Isla avatar
By Isla
at 2021-08-29T05:31
推實用
Gary avatar
By Gary
at 2021-08-31T11:18
為什麼是全型井號
Rae avatar
By Rae
at 2021-09-02T17:05
fcitx 不知有沒有辦法預設中文輸出半形符號目前這點蠻困擾的 XD
Suhail Hany avatar
By Suhail Hany
at 2021-09-04T22:52
實用推
Yedda avatar
By Yedda
at 2021-09-07T04:39
目前我是中文模式下 shift 切換英文來輸入半形符號
Megan avatar
By Megan
at 2021-09-09T10:26
可惜目前還是無解 XD 感謝回應
Kama avatar
By Kama
at 2021-09-11T16:13
有沒有一台帶螢幕盤鼠主機,控制其他LAN電腦的方案
Catherine avatar
By Catherine
at 2021-09-13T22:00
我上網查了下,發現大多都是得兩台都有螢幕
Donna avatar
By Donna
at 2021-09-16T03:46
推, barrier 好用
Blanche avatar
By Blanche
at 2021-09-18T09:33
中文就應該用全形標點符號(O我自己是習慣半形就 shift 啦,反倒是新注音符號不會全形很討厭
Faithe avatar
By Faithe
at 2021-09-20T15:20
好用推

我叛逃到 Mint了

Elma avatar
By Elma
at 2021-08-26T22:02
因為 T420S安裝 Arch時,NVIDIA optimus怎麼樣都 error,最後系統搞掛了,嘗試要開 雙螢幕真的牡蠣… 所以我叛逃到 Mint一下,看能不能輕鬆一下,但是我發覺我被 pacman和 paru慣壞了。 有沒有大大 TP有帶 NV獨顯的機子開雙螢幕成功的?可以來信教學一下嗎?? 謝 ...

想把 package 加入group

Elizabeth avatar
By Elizabeth
at 2021-08-26T15:28
今天利用了apt-get下載一個package 但是因為我是user,所以去下這個package的指令都會permission denied 看起來是因為沒有權限導致的 因為電腦不是自己的,所以也不能下sudo, 而這台電腦對於其他package(docker)的做法,是創group,然後把要使用這 ...

makefile for loop 問題

Skylar Davis avatar
By Skylar Davis
at 2021-08-23T21:01
※ 引述《rickieyang (Rickie Yang)》之銘言: : ※ 引述《Wudc (二寶來啦!!)》之銘言: : : 想請教一下,如果有這樣一個text file, : : Text.txt: : : a1 b1 c1 : : a2 b2 c2 : : ... : : a100 b100 c100 ...

Manjaro bash completion變紅色

Erin avatar
By Erin
at 2021-08-22T20:50
自問自答一下 原來在Ubuntu下之所以會是普通白色 是因為$LS_COLORS裡面設mi=00 也就是說 completion list還是被當作不存在的檔案 只是色碼為00看不出來異常 在.bashrc裡面改mi的值就可以實驗出來 Manjaro下把mi改成00 completion li ...

Manjaro bash completion變紅色

Genevieve avatar
By Genevieve
at 2021-08-22T15:52
這問題好像很冷門 查不到什麼資料 大概就像這兩篇說的 https://unix.stackexchange.com/questions/481493/ https://forums.gentoo.org/viewtopic-p-8628108.html 就是說 completion list似乎被當成 ...