請參見: Linux開源免費的遠端桌面列表
本文要介紹的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裝置就可以聽到音效。