Sunshine + Moonlight:從 Mac 遠端連線 Ubuntu 桌面完整教學與架構選型指南
若你需要「操作起來像原生電腦」的低延遲遠端桌面體驗,傳統的 RDP、VNC、SPICE 協定因缺乏硬體編碼與輸入延遲優化,往往無法滿足需求。本文整理社群實測心得,說明為何 GPU 直通 + 串流協定(Sunshine/Moonlight 或 NoMachine) 是目前最接近原生體驗的方案,並提供從 Mac 連線 Ubuntu 的完整設定步驟、跨網路存取方式,以及針對 CLI 為主工作負載的 SSH-First 替代架構建議。
為何放棄傳統遠端桌面協定?
| 方案 | 延遲/幀率體驗 | 核心瓶頸 | 適用場景 |
|---|---|---|---|
| Sunshine + Moonlight | 接近原生,硬體編碼,低延遲 | 需 GPU 直通或內顯直通 | 需完整 GUI 操作、Agent 設定介面、瀏覽器預覽 |
| NoMachine | 非常流暢,支援硬體編碼 | 建議搭配 GPU 直通 | 同上,且對防火牆/NAT 環境較友善 |
| RDP (Ubuntu 24.04 內建) | 普通,純軟體編碼 | 無硬體加速 | 內網低畫質需求、非即時任務、過渡方案 |
| VNC/SPICE (Proxmox 內建) | 最差,延遲高 | 軟體編碼、無輸入優化 | 僅適合救援/初次安裝時操作 |
關鍵差異:傳統協定採「軟體編碼」畫面再傳輸,缺乏硬體加速與輸入延遲優化;Sunshine/Moonlight 採用 GPU 硬體編碼(NVENC/AMD VCN/Intel Quick Sync),並針對遊戲級串流優化輸入管線,因此能達到 60 fps、低延遲、無拖影的操作體感。
社群實測:在 Proxmox 上以 GPU 直通給多台 VM,各跑 Sunshine 串流,區網可跑滿 75 Mbps 頻寬、60 fps 高畫質,操作感「像跑在本機一樣」。
架構選型:你真的需要遠端桌面嗎?
在動手架設前,先評估工作負載性質:
情境 A:需要完整 GUI(瀏覽器、IDE 圖形介面、影片預覽、Agent 設定頁)
→ 採用 GPU 直通 + Sunshine/Moonlight(本文主軸)
情境 B:工作內容以 CLI 為主(跑 Claude Code、AI Agent、終端機腳本、Git 操作)
→ 採用 SSH-First 架構,根本不需要遠端桌面
| SSH-First 架構優勢 | 說明 |
|---|---|
| 資源極省 | Ubuntu 裝 Server 版,不裝 Desktop GUI,省下數 GB RAM 與 CPU |
| 近零延遲 | VS Code Remote-SSH 直接在本機編輯、終端機操作,文字傳輸極快 |
| 斷線不中斷 | 搭配 tmux/screen 管理多 Agent session,關掉筆電也能繼續跑 |
| 按需啟動 GUI | 真正需要看圖形介面時,再臨時啟動輕量桌面 + Sunshine 串流 |
實務案例:多位開發者在 Proxmox 上以 LXC/VM 跑多個 OpenClaw / Hermes Agent 實例,全程靠 SSH + API 管理,僅在需除錯 GUI 時才開串流,資源利用率最高。
硬體需求與前置準備
| 項目 | 建議規格 | 備註 |
|---|---|---|
| GPU | NVIDIA (NVENC) > Intel Quick Sync > AMD VCN > 純軟體編碼 | NVIDIA 相容性最好、畫質最穩;無獨顯可用內顯直通,效能打折但可用 |
| Proxmox 主機 | 支援 IOMMU/VT-d,且有多餘 GPU 或支援 vGPU (NVIDIA vGPU) | vGPU 可讓多 VM 共享一張實體 GPU,適合多 Agent 並行 |
| Ubuntu VM | 24.04 LTS Desktop 版,已安裝顯卡驅動 (nvidia-smi 正常) |
Server 版需自行裝桌面環境 (GNOME/KDE) |
| Mac 客戶端 | macOS 13+,安裝 Moonlight App | 支援 Apple Silicon / Intel |
| 跨網路工具 | Tailscale (推薦) / UPnP / Port Forwarding + DDNS | Tailscale 設定最簡單、安全性最高 |
步驟一:Ubuntu 端安裝 Sunshine
- 前往 Sunshine GitHub Releases 下載對應 Ubuntu 24.04 的
.deb安裝包。 - 安裝:
sudo dpkg -i sunshine-ubuntu-24.04-*.deb sudo apt-get install -f - 確認 GPU 驅動(關鍵):
若驅動未裝或版本不符,Sunshine 將退回軟體編碼,畫質與延遲大幅下降。nvidia-smi # NVIDIA 卡必須正常顯示 - 啟動服務:
按sunshineCtrl+C可離開終端機,服務會在背景持續執行。之後也可從應用程式清單點擊 Sunshine 圖示啟動。
步驟二:設定 Sunshine 網頁管理介面
- 瀏覽器開啟
https://localhost:47990 - 首次進入會提示憑證不安全 → 選「進階」→「繼續前往」
- 設定管理帳號密碼(用於裝置配對驗證)
- 關鍵設定項:
- 網路:啟用 IPv4 + IPv6 雙協定,確保各種網路環境可連線
- 顯示捕獲方式:若 Ubuntu 使用 X11(預設),強制指定為 X11;若選自動偵測在 Wayland 下易出現 503 錯誤
- 硬體編碼器:確認偵測到 GPU 編碼器 (NVIDIA/Intel/AMD),否則檢查驅動與直通設定
步驟三:Mac 端安裝 Moonlight 並完成配對
- 從 Moonlight 官網 下載 macOS 版安裝
- 開啟 App,自動掃描區網內 Sunshine 主機,點擊目標主機圖示
- 畫面顯示 PIN 碼 → 回 Ubuntu 端 Sunshine 網頁介面 → PIN 頁籤 → 輸入 PIN、命名裝置 → 送出
- 配對成功後,同一台 Mac 免再輸入 PIN 即可直連
連線前建議調整的 Moonlight 設定(齒輪圖示)
| 設定項 | 建議值 | 理由 |
|---|---|---|
| 解析度 | 1080p 或更高 | 預設 720p 畫質不足,視頻寬調整 |
| 顯示模式 | 無邊框視窗 / 全螢幕 | 依個人習慣 |
| 遠端桌面模式 | 勾選 | 關鍵:預設「遊戲最佳化滑鼠」會鎖定游標在視窗內,勾選後游標可自由移動到其他螢幕 |
| 幀率上限 | 60 fps / 120 fps | 視螢幕支援度與頻寬而定 |
快捷鍵離開串流:Shift + Ctrl + Option + Q
步驟四:跨網路(非同一區網)連線設定
推薦方案:Tailscale(最簡單、安全、免開 Port)
- Ubuntu 主機與 Mac 分別安裝 Tailscale,登入同一帳號
- 兩裝置自動組成虛擬區網,取得彼此 Tailscale IP (如
100.x.y.z) - Moonlight 點選「手動新增主機」→ 填入 Ubuntu 的 Tailscale IP → 連線
優點:零設定、穿透 NAT/防火牆、端到端加密、無需公網 IP 或 DDNS
替代方案(較繁瑣、有安全性考量)
- 路由器開啟 UPnP 讓 Sunshine 自動對外開 Port
- 手動 Port Forwarding (預設 47989/47990/48010 UDP/TCP) + Duck DNS 解決動態 IP
- 不建議直接暴露 Sunshine 管理介面於公網
前提:Ubuntu 主機必須保持開機、Sunshine 服務運行中。
常見問題排查
| 症狀 | 可能原因 | 解決方式 |
|---|---|---|
| 黑畫面 / 503 錯誤 | 捕獲方式與顯示伺服器不匹配 (X11 vs Wayland) | Sunshine 網頁介面 → 強制指定捕獲方式為 X11 |
| 延遲高、畫質差 | 未使用硬體編碼 | 確認 nvidia-smi 正常、Sunshine 偵測到硬體編碼器、GPU 直通正確 |
| 滑鼠游標被鎖在視窗 | 未勾選遠端桌面模式 | Moonlight 設定 → 勾選 遠端桌面模式 |
| 無法掃描到主機 | 防火牆阻擋、不同子網 | 確認區網通訊、或改用 Tailscale 手動輸入 IP |
| 聲音無法傳輸 | PipeWire/PulseAudio 設定 | Sunshine 設定 → 音訊裝置選擇正確的系統預設或指定 sink |
實作建議順序總覽
- 評估 GPU 資源:Proxmox 主機是否有多餘 GPU/內顯可直通?支援 vGPU?
- 需 GUI 的 VM:直通 GPU → 裝 Ubuntu Desktop → 裝驅動 → 裝 Sunshine → Moonlight 連線測試
- 純 CLI 的 Agent VM:裝 Ubuntu Server → SSH +
tmux+ VS Code Remote-SSH 操作,完全跳過圖形層 - 暫無 GPU 時的過渡:Ubuntu 24.04 內建 RDP (GNOME Remote Desktop) 可先應急,社群反應優於預期
- 跨網路需求:優先部署 Tailscale,避免 Port Forwarding 風險
結語
Sunshine + Moonlight 是目前開源方案中、體感最接近原生的遠端桌面組合,核心在於 GPU 硬體編碼 與 遊戲級輸入管線。若你的 Proxmox 主機有顯卡資源可直通,這是首選;若工作負載以終端機、代碼編輯、Agent 部署為主,SSH-First + VS Code Remote 反而更輕量、更快、更穩定,且能省下寶貴的 GPU 資源給真正需要圖形運算的任務。
實務上最順手的往往是混合模式:主力走 SSH,按需啟動 Sunshine 串流。先從你的硬體條件與工作流出發,選擇適合的架構,才能在 Homelab 環境下獲得最佳體驗。