快轉到主要內容

WayPipe:Wayland下的Linux遠端桌面,類似SSH X11 forwarding

Linux系統 Linux使用技巧 Linux
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

請參見: Linux開源免費的遠端桌面列表

Linux的遠端桌面軟體目前仍以X為主,支援Wayland的甚少。舉凡Chrome遠端桌面、Teamviewer、Rustdesk都沒有好的解決方案。

既然套裝遠端桌面軟體不支援,是否可以採取比較簡單的手段,例如在Wayland下跑VNC、用SSH傳輸Wayland桌面呢?沒錯,WayVNC和WayPipe即符合此要件,能在Wayland下達到簡易遠端桌面效果。

之前已經 介紹過WayVNC,效率不好,也不能降低畫質。而本文要介紹的WayPipe是類似SSH X11 forwarding的技術,準確來說是網路透明性(network transparency)。

下圖是作者 部落格給的工作原理圖。

透過SSH傳輸圖形界面,可想而知效率也不會高到哪去,但總比VNC快,適合區域網路(LAN)使用。

以下測試環境,A電腦代表本機,B電腦代表遠端。二者都是裝Arch Linux。此外因Nvidia顯示卡驅動(520.56.06-12)不支援DMABUF,二者都用的是Intel顯示卡(Mesa驅動)測試。

1. 安裝WayPipe
#

首先安裝OpenSSH:

sudo pacman -S openssh

接著從AUR安裝WayPipe,二部電腦皆要:

yay -S waypipe

再安裝Wayland的參考實作Weston:

sudo pacman -S weston

2. 在A電腦啟動B電腦的應用程式
#

讓二部電腦連線到同一個Wifi。A電腦安裝的是GNOME,B電腦安裝的是KDE,但B電腦並無登入桌面環境。

在A電腦輸入以下指令,以SSH連線到B電腦並啟動weston-terminal,會出現Weston終端機:

waypipe ssh -C [email protected] weston-terminal

接著啟動Firefox。Firefox需要在B電腦的~/.bashrc加入MOZ_ENABLE_WAYLAND=1強制啟用Wayland。實測能勉強看網頁,但圖形效率很差。

WayPipe也可以用來啟動KDE Wayland工作階段:

waypipe ssh -C [email protected] startplasma-wayland

如此一來就能啟動其他不支援Wayland協定的舊版應用程式,但是該桌面視窗無法縮放。

3. A電腦播放B電腦的音效
#

B電腦的PipeWire音效得透過SSH forwarding到A電腦,否則會在B電腦的喇叭放出來。

在本機(A電腦)輸入以下指令:

pactl load-module module-tunnel-sink server=tcp:<A電腦區域IP>:4656
sudo ufw allow 4656/tcp
sudo ufw reload

在遠端(B電腦)輸入:

pactl load-module module-native-protocol-tcp port=4656 listen=<A電腦區域IP>

接著在B電腦的音訊輸入設備切換成A電腦的TCP裝置就可以聽到音效。

參考資料
#

相關文章

用Android手機播放Linux電腦音樂 ~ Pulse Audio串流設定
Linux系統 Linux使用技巧 Linux Android
Linux如何將SD卡/隨身碟格式化
Linux系統 Linux使用技巧 Linux
在Linux上用WoeUSB製作Windows開機隨身碟
Linux系統 Linux使用技巧 Windows Linux

留言板

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

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。