Sunshine + Moonlight:從 Mac 遠端連線 Ubuntu 桌面完整教學與架構選型指南

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

  1. 前往 Sunshine GitHub Releases 下載對應 Ubuntu 24.04.deb 安裝包。
  2. 安裝:
    sudo dpkg -i sunshine-ubuntu-24.04-*.deb
    sudo apt-get install -f
    
  3. 確認 GPU 驅動(關鍵):
    nvidia-smi  # NVIDIA 卡必須正常顯示
    
    若驅動未裝或版本不符,Sunshine 將退回軟體編碼,畫質與延遲大幅下降。
  4. 啟動服務:
    sunshine
    
    Ctrl+C 可離開終端機,服務會在背景持續執行。之後也可從應用程式清單點擊 Sunshine 圖示啟動。

步驟二:設定 Sunshine 網頁管理介面

  1. 瀏覽器開啟 https://localhost:47990
  2. 首次進入會提示憑證不安全 → 選「進階」→「繼續前往」
  3. 設定管理帳號密碼(用於裝置配對驗證)
  4. 關鍵設定項
    • 網路:啟用 IPv4 + IPv6 雙協定,確保各種網路環境可連線
    • 顯示捕獲方式:若 Ubuntu 使用 X11(預設),強制指定為 X11;若選自動偵測在 Wayland 下易出現 503 錯誤
    • 硬體編碼器:確認偵測到 GPU 編碼器 (NVIDIA/Intel/AMD),否則檢查驅動與直通設定

步驟三:Mac 端安裝 Moonlight 並完成配對

  1. Moonlight 官網 下載 macOS 版安裝
  2. 開啟 App,自動掃描區網內 Sunshine 主機,點擊目標主機圖示
  3. 畫面顯示 PIN 碼 → 回 Ubuntu 端 Sunshine 網頁介面 → PIN 頁籤 → 輸入 PIN、命名裝置 → 送出
  4. 配對成功後,同一台 Mac 免再輸入 PIN 即可直連

連線前建議調整的 Moonlight 設定(齒輪圖示)

設定項 建議值 理由
解析度 1080p 或更高 預設 720p 畫質不足,視頻寬調整
顯示模式 無邊框視窗 / 全螢幕 依個人習慣
遠端桌面模式 勾選 關鍵:預設「遊戲最佳化滑鼠」會鎖定游標在視窗內,勾選後游標可自由移動到其他螢幕
幀率上限 60 fps / 120 fps 視螢幕支援度與頻寬而定

快捷鍵離開串流Shift + Ctrl + Option + Q


步驟四:跨網路(非同一區網)連線設定

推薦方案:Tailscale(最簡單、安全、免開 Port)

  1. Ubuntu 主機與 Mac 分別安裝 Tailscale,登入同一帳號
  2. 兩裝置自動組成虛擬區網,取得彼此 Tailscale IP (如 100.x.y.z)
  3. 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

實作建議順序總覽

  1. 評估 GPU 資源:Proxmox 主機是否有多餘 GPU/內顯可直通?支援 vGPU?
  2. 需 GUI 的 VM:直通 GPU → 裝 Ubuntu Desktop → 裝驅動 → 裝 Sunshine → Moonlight 連線測試
  3. 純 CLI 的 Agent VM:裝 Ubuntu Server → SSH + tmux + VS Code Remote-SSH 操作,完全跳過圖形層
  4. 暫無 GPU 時的過渡:Ubuntu 24.04 內建 RDP (GNOME Remote Desktop) 可先應急,社群反應優於預期
  5. 跨網路需求:優先部署 Tailscale,避免 Port Forwarding 風險

結語

Sunshine + Moonlight 是目前開源方案中、體感最接近原生的遠端桌面組合,核心在於 GPU 硬體編碼遊戲級輸入管線。若你的 Proxmox 主機有顯卡資源可直通,這是首選;若工作負載以終端機、代碼編輯、Agent 部署為主,SSH-First + VS Code Remote 反而更輕量、更快、更穩定,且能省下寶貴的 GPU 資源給真正需要圖形運算的任務。

實務上最順手的往往是混合模式:主力走 SSH,按需啟動 Sunshine 串流。先從你的硬體條件與工作流出發,選擇適合的架構,才能在 Homelab 環境下獲得最佳體驗。


參考資源