Linux常見的遠端桌面有VNC和XRDP通訊協定,但是他們比較適合用於管理伺服器的工作。
而非像是使用坐在遠端電腦前使用一般。
此時使用者可能會尋找更完善的套裝遠端桌面軟體,舉凡TeamViewer、Chrome遠端桌面、
Anydesk皆提供亦上手的界面,而且免費使用。
然而,他們都是專有軟體,訊號也要透過該公司的伺服器傳輸。
最近有了新開源遠端桌面軟體選擇,那就是RustDesk和Moonlight。這類遠端桌面都是要求使用者必
須保持登入session的狀態。
RustDesk
以Rust寫成,支援各大系統。設計上跟TeamViewer類似,都是透過一組隨機產生的帳密
連線,直覺易用。
https://i.imgur.com/vA0HL6Z.jpg
連線打密碼,或是在遠端電腦上同意。
https://i.imgur.com/M7uEk6S.png
連線會先嘗試走P2P,連不通才會走Relay server。但現階段relay server只有4個
,品質可想而知。
Rustdesk客戶端和伺服器端是開源的,理論上可以全盤自己架。
但RustDesk我個人建議是想辦法採用P2P連線較佳,依賴公共站點很容易lag。
Moonlight
其實這是串流遊戲用的,用GPU下去算,畫面傳輸效率不輸RustDesk。
網路速度夠快的話1080p畫面不是問題,音訊也會自動傳送過來。
https://i.imgur.com/G8J05u6.jpg
Moonlight server在Linux的移植版叫Sunshine,由LizardBytes維護,支援各大GPU的
加速技術,連Nvidia都支援。
Sunshine架設教學:https://reurl.cc/zrDRpN
相較於遠端桌面軟體的各種快捷鍵,Moonlight就只是即時算繪電腦的畫面而已。
Rustdesk網路不好時會跳畫格,Moonlight則是讓畫面變模糊。
不過Moonlight沒有relay server可以用,不同網段連線請看下個段落。
支撐這二個遠端桌面的必要條件
上面說到,這二個遠端桌面的relay server連線都不可靠,所以要想辦法P2P。
外部網路連內部電腦的方法:
1. 動態DNS + 路遊器通訊埠轉發 port forwarding
2. 內網穿透 P2P hole punch
就難易程度來說,內網穿透比較簡單,不用動路由器。
內網穿透主要是借助ZeroTier這類軟體中轉,把所有連線到ZeroTier網路的裝置連到虛擬
區域網路,像A電腦會分配到192.168.1.100,B電腦192.168.1.101。
其伺服器僅負責讓二個裝置連接,如果電腦防火牆有開通訊埠就能P2P,就不需要依賴
ZeroTier中轉封包,速度會快很多,而且連線是點對點加密。
缺點就是你得信任ZeroTier這家公司,即使連線有加密,他們的伺服器畢竟不完全開源。
就隱私考慮這點,DDNS+通訊埠轉發,再架個VPN會是最安全的方式,不過就有點麻煩。
設定完成後,要沿用VNC、XRDP這類桌面技術也是可以的。並且別忘了你能夠透過虛擬區域
網路SSH到遠端電腦。
Wayland的支援度
令人傷心的事實來了,遠端桌面軟體幾乎不支援Wayland通訊協定。
目前只有WayVNC和WayPipe這二個專案,圖形效率都不高。
WayVNC使用的合成器KDE和GNOME都不支援,效率又低。只有Phosh和SWAY支援。
https://i.imgur.com/6BJGW6P.png
GNOME有內建遠端桌面,其實也是VNC,但KDE和XFCE的用戶呢?
WayPipe則是X11 over SSH的翻版,泛用性高,但萬惡的Nvidia不支援WayPipe使用的
技術,要用開源Mesa驅動的顯示卡才行。
https://i.imgur.com/kLpwmLH.png
總而言之,現階段想用遠端桌面還是遠離Wayland。
總結
RustDesk跨平台適合一般大眾用途,能充當遠端協助他人的工具
如果有夠多的公共伺服器加強易用性,或許就能取代TeamViewer。
我個人還是比較愛Moonlight,效率比RustDesk好,只是設定上沒那麼直覺就是了,僅適合
個人使用。