Sunshine and Moonlight

原神启动

摘要

开源的 Sunshine 和 Moonlight 是两个流行的游戏流媒体解决方案,允许用户在不同设备上流式传输 PC 游戏。Sunshine 是一个 GameStream 服务器,而 Moonlight 是一个 GameStream 客户端。

  • moonlight 是一个开源的 NVIDIA GameStream 客户端,允许用户在各种设备上流式传输游戏。
  • sunshine 是一个开源的 GameStream 服务器,旨在提供与 NVIDIA GameStream 相似的功能,但不依赖于 NVIDIA 硬件。

✅ 简介

Sunshine:开源的 NVIDIA GameStream 兼容服务器,运行在主机(Windows/Linux)上,用于编码和推流画面。

Moonlight:客户端程序(支持 Android、iOS、Windows、macOS、Linux),用于接收 Sunshine 推送的画面,实现远程控制和观看。

✅ 工作流程

主机(无显示器)运行 Sunshine:

使用 GPU 编码(如 NVENC) 把桌面图像压缩成视频流。

通过局域网(或公网)推送到客户端。

客户端(如 iPad)运行 Moonlight:

接收并解码 Sunshine 推来的流。

通过触控或蓝牙键鼠回传控制指令。

🎯 关键问题:主机无显示器(Headless)时的注意事项 默认情况下,NVIDIA GPU 在无显示器连接时,不会启用桌面图形输出,Sunshine 也无法正常编码。

🧩 解决方案:使用“虚拟显示器” 要解决这个问题,你可以采用以下方法之一:

方法 1:插入 虚拟显示器(Dummy HDMI Plug) 在主机显卡 HDMI/DP 接口插入一个 HDMI 虚拟显示器头(Dummy Plug)。

操作系统将认为有一个显示器连接,从而启用 GPU 桌面输出。

优点:最稳定、兼容性好,成本低(淘宝/拼多多几块钱一个)。

方法 2:软件虚拟显示器(不推荐) 某些系统可以使用虚拟显示驱动(如 Dummy Display Driver)实现假显示器。

但在现代系统/NVIDIA 驱动中不稳定,经常失败或不支持硬件加速。

🚀 实际部署步骤(以 Windows 主机 + iPad 为例)

1. 主机安装 Sunshine

官网:https://github.com/LizardByte/Sunshine

安装后配置:

启用 Allow without display

添加远程启动程序(如 explorer.exe 启动整个桌面)

配置分辨率和码率

2. 插入 Dummy HDMI Plug

插入后,前往 显示设置 检查系统是否识别显示器(通常为 1920x1080)

3. 客户端安装 Moonlight

iOS:App Store 下载 “Moonlight”

Android:Play Store 下载

初次连接输入主机的 IP 地址(确保网络通)

4. 配置连接

确保防火墙允许 47984/47989 等端口(UDP)

在主机 Sunshine 配置中授权客户端配对

✅ 总结

项目 描述 主机系统 Windows 或 Linux,建议配备 NVIDIA GPU 显示器模拟 插 Dummy HDMI Plug 推流服务端 Sunshine 客户端应用 Moonlight(支持触控、蓝牙键鼠) 编码方式 NVENC(推荐)或软件编码(性能差) 实用场景 家用游戏主机远程玩、办公主机无显示器远程控制