請參見:Linux開源免費的遠端桌面列表
本文要介紹的WayPipe,能夠將遠端Linux電腦的Wayland視窗,拉到本地桌面執行,方便你查看圖形界面程式的執行結果。
這是一種類似SSH X11 Forwarding的技術,準確來說是讓Wayland實現網路透明性(network transparency)的功能。下圖是作者部落格給的工作原理圖。
因為WayPipe是透過網路傳輸圖形界面的,雖然有部份GPU加速,但是跟其他遠端桌面比起來效能很差勁,效能不比RDP、VNC要好,更別說RustDesk和Sunshine了!
1. WayPipe的運作條件#
遠端和本地端的電腦都必須使用Wayland桌面。因此理想情況下,兩邊最好都是Linux系統,譬如Ubuntu。
如果本地端的電腦是Windows,就得找一個能夠支援Wayland的軟體,目前最簡單的方案是WSLg,WSL在安裝Ubuntu之後,會提供一個基於Weston開發的Wayland合成器,用於顯示圖形界面。
WayPipe僅能啟動Wayland協定的應用程式,如果應用程式還在使用X11,也就是XWayland,需要使用相應的環境變數強制以Wayland執行(例如QT5以上程式使用QT_QPA_PLATFORM=wayland
),否則的話就得改用SSH X11 Forwarding執行了。
2. 安裝WayPipe#
- 首先在遠端和本地電腦安裝OpenSSH:
sudo apt install openssh-server openssh-client
- 接著在遠端和本地電腦安裝WayPipe:
sudo apt install waypipe
- 再於本地電腦安裝Wayland的參考實作Weston:
sudo apt install waypipe
3. 用WayPipe執行單一應用程式#
在本地電腦輸入以下指令,以SSH連線到遠端電腦,後面加上二進位檔路徑,例如啟動firefox
waypipe ssh -C user@192.168.1.104 firefox
這樣Firefox視窗就會跳出來了。實測能勉強看網頁,但圖形效率很差。
4. 用WayPipe執行完整桌面環境#
WayPipe可以用來啟動KDE Wayland工作階段:
waypipe ssh -C user@192.168.1.104 startplasma-wayland
如此一來就能在這個視窗裡面啟動其他不支援Wayland協定的舊版應用程式,但是該桌面視窗無法縮放。
5. 播放遠端電腦的音效#
遠端電腦的PipeWire音效得透過SSH forwarding到本地電腦,否則會在遠端電腦的喇叭放出來。
在本地電腦輸入以下指令:
pactl load-module module-tunnel-sink server=tcp:<本地電腦IP>:4656
sudo ufw allow 4656/tcp
sudo ufw reload
在遠端電腦輸入:
pactl load-module module-native-protocol-tcp port=4656 listen=<本地電腦IP>
接著在遠端電腦的音訊輸入裝置切換成本地電腦的TCP裝置就可以聽到音效。