Sunshine + Moonlight:從 Mac 遠端連線到 Ubuntu 桌面完整教學

Sunshine + Moonlight:從 Mac 遠端連線到 Ubuntu 桌面完整教學

Sunshine 是安裝在 Ubuntu 主機端的串流伺服器,Moonlight 則是安裝在 Mac 端的用戶端 App,兩者搭配可以透過硬體編碼技術,達到接近原生操作的低延遲遠端桌面體驗。以下依照 Ubuntu 端設定、Mac 端設定、配對連線、跨網路存取四個步驟說明。

相關工具

名稱 說明
Sunshine 安裝於 Ubuntu 主機端的自架串流伺服器,支援硬體編碼
Moonlight 安裝於 Mac / iOS / Android / Windows 的用戶端 App
Tailscale 用於跨網路(不同 Wi-Fi、外出時)連線回家中主機的 VPN 工具

步驟一:在 Ubuntu 端安裝 Sunshine

先到 Sunshine 官方 GitHub Release 頁面下載對應 Ubuntu 24.04 版本的.deb 安裝包,再用 dpkg 安裝:

sudo dpkg -i sunshine-ubuntu-24.04-*.deb
sudo apt-get install -f

若有獨立顯卡(尤其是 NVIDIA),建議先確認驅動已正確安裝,否則串流時無法使用硬體編碼、畫質與流暢度會明顯下降。安裝好驅動後可用 nvidia-smi 指令確認是否正常運作。

安裝完成後在終端機執行 sunshine 啟動服務,啟動後可以按 Ctrl+C 結束終端機視窗,服務會繼續在背景執行,之後也可以直接從應用程式清單點擊 Sunshine 圖示啟動。

步驟二:設定 Sunshine 網頁介面

在瀏覽器輸入 https://localhost:47990 打開 Sunshine 的管理網頁,第一次進入會提示憑證不安全,選擇「進階」→「繼續前往」即可。首次登入時需要自行設定管理帳號密碼,之後每次連線都會用這組帳密驗證裝置配對。

有幾個設定值得特別留意:

  • 網路設定建議改為同時支援 IPv4 與 IPv6,確保各種網路環境都能連上
  • 若 Ubuntu 顯示模式是 X11,捕獲方式建議強制指定為 X11,否則 Moonlight 連線時容易報 503 錯誤;若不確定可先選自動偵測
  • 若只用內顯或無獨立顯卡,也能運作,但畫質與延遲表現會不如有 GPU 硬體編碼的情況

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

到 Moonlight 官網下載 macOS 版本安裝,打開後 App 會自動掃描區網內可用的 Sunshine 主機,通常幾秒內就能找到剛才設定好的 Ubuntu 主機。點擊該主機圖示後,畫面會提示要輸入一組 PIN 碼以完成信任配對。

回到 Ubuntu 端的 Sunshine 網頁介面,點擊 PIN 頁籤,輸入 Moonlight App 顯示的那組數字,並替這台 Mac 取個裝置名稱後送出,配對就完成,之後同一台 Mac 不需重新輸入 PIN 即可直接連線。

在正式進入桌面前,建議先點擊 Moonlight 視窗右上角的齒輪設定:

  • 解析度可依需求調整(例如從預設 720p 提高到 1080p 或更高)
  • 顯示模式可選擇無邊框視窗或全螢幕
  • 若目的是操作桌面而非玩遊戲,記得勾選「遠端桌面模式」而非「遊戲最佳化滑鼠」,否則滑鼠游標只會被限制在 Moonlight 視窗範圍內,無法自由移動到其他螢幕

設定完成後點擊主機圖示即可直接進入 Ubuntu 桌面畫面,操作方式與本機幾乎無異。若要結束串流,在 Mac 上可用快捷鍵 Shift + Ctrl + Option + Q 離開連線。

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

如果 Mac 不在家中同一個 Wi-Fi 下(例如在外面或公司),最簡單穩定的做法是在 Ubuntu 主機和 Mac 上都安裝 Tailscale,兩台裝置登入同一個帳號後會自動組成一個虛擬區網,再把 Ubuntu 主機的 Tailscale IP 填入 Moonlight 的手動新增主機欄位即可連線,設定門檻低且不需要對外開路由器 port。

其他替代方案包括在路由器開啟 UPnP 讓 Sunshine 自動對外開放連接埠、手動做 port forwarding 直連公網 IP,或搭配 Duck DNS 解決動態 IP 變動的問題,但這些方式相對繁瑣且有安全性疑慮,一般不如 Tailscale 方便。唯一要注意的前提是,不論用哪種方式,Ubuntu 主機都必須保持開機狀態,Sunshine 服務才能被連上。

常見問題

若連線後出現黑畫面或 503 錯誤,多半是 Sunshine 的顯示擷取方式與系統實際使用的顯示伺服器(X11 或 Wayland)不匹配,需要回到網頁管理介面手動指定為 X11。若沒有獨立顯卡也能使用 Sunshine,但硬體編碼效果會打折扣,若追求最佳流暢度仍建議搭配 GPU(尤其是 NVIDIA)使用。