前言
在寻找替代 NVIDIA GameStream 的方案时,Sunshine 和 Moonlight 的组合无疑是目前的最佳选择。
什么是 Sunshine 和 Moonlight?
- Sunshine:是一个自托管的游戏串流宿主端(Host)。它最初是为了填补 NVIDIA 宣布停止 GameStream 服务后的空白而诞生的。Sunshine 的最大优势在于兼容性,它不仅支持 NVIDIA 显卡,还完美支持 AMD 和 Intel 显卡,并且开源免费,运行在 Windows、Linux 和 macOS 上。
- Moonlight:是对应的开源客户端(Client)。它最初是作为 NVIDIA GameStream 的开源实现,现在完美适配 Sunshine。Moonlight 覆盖了几乎所有平台(iOS, Android, Windows, macOS, Linux, TV OS 等),以其极低的解码延迟和优秀的画质著称。
游戏串流 vs 传统远程桌面 (RDP/TeamViewer)
你可能会问,为什么不用 Windows 自带的远程桌面 (RDP) 或者 TeamViewer/ToDesk 来玩游戏?
| 特性 | 游戏串流 (Sunshine+Moonlight) | 传统远程桌面 (RDP/TeamViewer) |
|---|---|---|
| 设计目的 | 专为高帧率、低延迟的游戏画面设计 | 专为办公、文本清晰度、低带宽环境设计 |
| 传输协议 | 类似视频直播流 (H.264/H.265/AV1),注重实时性 | 传输绘图指令或压缩图像块,注重无损显示 |
| 帧率 | 轻松达到 60fps / 120fps / 144fps | 通常限制在 30fps 以下,动态画面卡顿严重 |
| 输入延迟 | 毫秒级延迟,手柄/键鼠操作跟手 | 延迟较高,不适合动作游戏 |
| 外设支持 | 完美支持手柄震动、多点触控映射 | 手柄支持较差或不支持 |
| 鼠标模式 | 相对鼠标模式 (适合 FPS 游戏) | 绝对鼠标模式 (适合点选) |
简单来说,传统远程桌面是“看幻灯片”,而 Sunshine+Moonlight 是“看高清直播”。
准备工作
- 宿主机(Host):一台性能较好的 Windows/Linux/macOS 电脑,用于运行游戏。
- 客户端(Client):手机、平板、电视盒子或另一台电脑。
- 网络环境:建议宿主机使用有线连接路由器,客户端尽量使用 5GHz Wi-Fi 或有线连接,以保证低延迟。
第一步:安装与配置 Sunshine (宿主端)
Sunshine 是运行在游戏电脑上的服务端软件。
- 下载 Sunshine
前往 Sunshine 的 GitHub 发布页下载最新版本:LizardByte/Sunshine Releases
- Windows 用户下载
Sunshine-Windows-AMD64-installer.exe。
- Windows 用户下载
- 安装 运行安装程序,按照提示完成安装。安装过程中可能会提示安装虚拟手柄驱动(ViGEmBus),请务必安装,否则无法在串流时使用手柄。
- 初始化配置
安装完成后,Sunshine 会自动运行。如果没有,可以在开始菜单搜索 "Sunshine" 启动。
- Sunshine 默认是一个后台服务,配置界面是基于 Web 的。
- 打开浏览器,访问
https://localhost:47990。 - 注意:首次访问可能会提示“连接不安全”,这是因为使用的是自签名证书,点击“高级” -> “继续访问”即可。
- 设置用户名和密码。这是你以后管理 Sunshine 后台的凭证。
- 添加游戏/应用
在 Sunshine Web 管理界面的顶部菜单栏选择 "Applications"。
- 默认通常会有 "Desktop" (桌面) 和 "Steam Big Picture"。
- 点击 "+ Add New" 可以添加特定游戏。
- Application Name: 游戏名称。
- Command: 游戏的启动路径(例如
D:\Games\Cyberpunk 2077\bin\x64\Cyberpunk2077.exe)。 - Working Directory: 游戏所在目录。
- 点击 "Save" 保存。
> **Tips**:其实直接使用 "Desktop" 模式串流整个桌面是最方便的,你可以直接在远程桌面上操作打开任何游戏。
第二步:安装与连接 Moonlight (客户端)
Moonlight 是运行在你用来玩游戏的设备上的软件。
- 下载 Moonlight
前往 Moonlight 官网下载对应平台的客户端:moonlight-stream.org
- 支持 iOS, Android, Windows, macOS, Linux, Apple TV, Android TV 等。
- Linux 用户特别说明:
- Arch Linux / Manjaro: 官方仓库已收录,可直接安装:
sudo pacman -S moonlight-qt # 或者使用 AUR 助手 (如 paru) paru -S moonlight-qt - Debian / Ubuntu: 推荐使用 Flatpak 安装以获得最新版本:
或者参考官方文档添加软件源进行 apt 安装。flatpak install flathub com.moonlight_stream.Moonlight
- Arch Linux / Manjaro: 官方仓库已收录,可直接安装:
- 配对连接
- 确保客户端和宿主机在同一局域网内。
- 打开 Moonlight 客户端,它通常会自动搜索到运行 Sunshine 的电脑。
- 点击电脑图标,会出现一个 PIN 码。
- 回到宿主机的 Sunshine Web 管理界面,点击顶部的 "PIN" 标签页。
- 输入客户端上显示的 PIN 码,点击 "Send"。
- 配对成功!
- 开始串流 在 Moonlight 客户端上点击已配对的电脑,选择 "Desktop" 或你添加的游戏,即可开始串流。
进阶设置与优化
1. 码率与画质设置
在 Moonlight 客户端的设置中,你可以调整:
- 分辨率:建议与客户端屏幕分辨率一致(如 1080p, 2K, 4K)。
- 帧率:60 FPS 是标准,如果网络和配置允许,120 FPS 会极其丝滑。
- 码率 (Bitrate):
- 1080p 60fps 建议 20-30 Mbps。
- 4K 60fps 建议 60-80 Mbps。
- 码率越高画质越好,但对网络带宽要求越高。如果出现卡顿或延迟,请适当降低码率。
2. 远程串流 (外网访问)
如果你想在户外通过 4G/5G 或公司 Wi-Fi 串流家里的电脑,需要进行内网穿透或虚拟组网。
- 方案 A:虚拟组网 (推荐) 使用 Tailscale 或 ZeroTier。在宿主机和客户端都安装并加入同一网络,Moonlight 输入宿主机的虚拟 IP 即可连接。这种方式安全且配置简单。
- 方案 B:端口映射 (公网 IP)
如果你有公网 IP,可以在路由器上映射相关端口(TCP 47984, 47989, 48010; UDP 47998-48000, 48002, 48010)。
- 注意安全风险,建议配合 UPnP 使用 Moonlight Internet Hosting Tool。
3. 常见问题
- 黑屏但有声音:通常是宿主机没有接显示器或显示器关闭了。可以购买一个“显卡欺骗器 (HDMI Dummy Plug)”插在显卡上模拟显示器。
- 手柄没反应:检查宿主机是否安装了 ViGEmBus 驱动。
总结
Sunshine + Moonlight 是目前体验最好的自建云游戏方案。配置一次,终身受用。无论是躺在床上用 iPad 玩 3A,还是在客厅用电视玩 PC 游戏,体验都非常棒。祝大家游戏愉快!

