本文分享五個Linux系統開源免費的遠端桌面方案,並解說安裝過程。
簡介#
Linux最古老的遠端桌面方案是跑VNC或RDP伺服器,再用客戶端程式存取。他們都是自由開源的遠端桌面方案,不過這類方案比較適合用於管理伺服器的工作,而非像是坐在遠端電腦前使用一般。
使用者可能會想要更完善的套裝遠端桌面軟體,開箱即用的,舉凡「TeamViewer」、「Chrome遠端桌面」、「Anydesk」、「NoMachine」、「Splashtop」皆提供簡易上手的界面,他們有的支援Linux,而且免費使用。
縱然它們免費使用,授權卻都是專有軟體,畫面訊號也要透過該公司的伺服器傳輸,用下去就會變成依賴特定公司的產品。
為此,自由開源的VNC和RDP還是有一定優勢。
最近幾年,有了新開源遠端桌面軟體選擇,那就是「RustDesk」和「Moonlight」,這類遠端桌面較VNC和RDP簡單上手,可讓使用者直接登入離開電腦前的狀態繼續工作,甚至頻寬足夠的情況下還能串流遊戲。
開源遠端桌面注意事項#
遠端桌面需注意有無支援最新的Wayland顯示協定。
開源軟體比較少商業支援,若有問題,請在Github向開發者回報並尋求社群幫助。
再者,下面談到的遠端桌面方案,有些沒有公共伺服器,使用者需要自行解決外部連線問題。
要從外部網路連內部電腦的方法有二個:
- 動態DNS + 路由器通訊埠轉發 port forwarding
- 內網穿透 P2P hole punch
就難易程度來說,內網穿透比較簡單,不用動路由器。
主要是借助 內網穿透,例如ZeroTier中轉,把所有連線到ZeroTier網路的裝置連到虛擬區域網路,像A電腦會分配到192.168.1.100,B電腦192.168.1.101。
其伺服器僅負責讓二個裝置連接,設定很簡單。如果電腦防火牆有開通訊埠就能P2P,就不需要依賴ZeroTier伺服器中轉封包,速度會快很多,而且連線是點對點加密。
就隱私考慮這點,DDNS+通訊埠轉發,再另外架個WireGuard VPN會是最安全的方式,不過就有點麻煩。
設定完成後,VNC、RDP這類桌面技術也是可以運作的,並且別忘了你能夠透過虛擬區域網路SSH到遠端電腦。
1. 桌面環境內建的遠端桌面功能#
這個要看各家怎麼實作,沒有通吃的解決方案。支援X11與Wayland工作階段。
例如,GNOME 42以上內建遠端桌面功能,叫做 GNOME Remote Desktop。
KDE Plasma 6.0以上內建的遠端桌面叫做Krdp,還有一款專為KDE打造的遠端桌面軟體 Krfb。
基於wlroots寫成的桌面可以使用 WayVNC遠端連線。
2. VNC與RDP伺服器#
大部分是X11,部份支援Wayland工作階段。
這二個都是設定比較麻煩的遠端桌面方案,需要手動撰寫設定檔,寫明登入後要啟動哪些服務,使用上較不直覺,並且有的傳輸還沒有加密。
VNC伺服器的實作,較常見的有讓使用者接續離開電腦前工作階段的 x11VNC,適用headless伺服器的 TigerVNC、專為瀏覽器設計的KasmVNC、商業化的RealVNC。
RDP則是效能較好的遠端桌面協定,較常見的實作有xRDP和FreeRDP,通常音訊會一併傳輸過來。
3. RustDesk#
支援X11與Wayland工作階段。
以Rust寫成,支援各大作業系統。設計上跟TeamViewer類似,都是透過一組隨機產生的帳密連線,直覺易用,支援音訊。
連線全程加密,會先嘗試走P2P,連不通才會走公共中繼伺服器。
RustDesk使用一切免費,另提供商業方案。客戶端和伺服器端都是開源的,可以自己架設Relay server,無須受限於官方提供的服務。
RustDesk原始碼可在 Github取得。
4. Moonlight + Sunshine#
支援X11與Wayland工作階段。
Moonlight其實是用來串流玩遊戲用的,遠端桌面是附贈功能。功能類似Parsec。
Moonlight伺服器的Linux移植版叫Sunshine,由LizardBytes維護,支援Nvidia/AMD/Intel GPU的電腦。
Sunshine非常依賴GPU計算畫面,傳輸效率不賴。網路速度夠快的話1080p60畫面不是問題,音訊也會自動傳送過來。不過若是在遠端進行GPU吃重的工作,則畫面品質會嚴重受干擾。
Sunshine原始碼可在 Github取得。
5. Weylus / Deskreen#
這二款程式的目的類似,主打免APP,用瀏覽器遠端操控,類似Chrome遠端桌面那樣。
Weylus還可以把平板當作電腦第二個螢幕,延伸桌面獲得更多工作空間。
Weylus支援Wayland,請看 Weylus教學
Weylus原始碼位於 Github。