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

目錄
請參見: 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裝置就可以聽到音效。