Sunshine 介绍与选型指南
Sunshine(LizardByte)自托管游戏串流主机端全景:GameStream 协议续命者定位、四段式架构与端口契约、功能矩阵、硬件前置说明,以及 Sunshine+Moonlight 与 Steam Link 的量化选型对比(星数/许可证/平台覆盖,数据查询 2026-11-03)。
Sunshine 介绍与选型指南
目标:讲透 Sunshine 是什么、在 Moonlight 游戏串流生态中处于什么位置、架构与能力边界、硬件前置条件,并给出 Sunshine / Steam Link / Moonlight 生态的量化选型对比。本文所有外部数据均标注来源与查询日期(2026-11-03),不涉及本地实测。
1. 环境信息
本文认知型内容的数据来源:
| 项目 | 值 | 来源 |
|---|---|---|
| 组件 | Sunshine(LizardByte/Sunshine) | GitHub 仓库 |
| 最新稳定版 | v2026.914.233613(发布于 2026-09-15) | GitHub Releases,查询 2026-11-03 |
| 语言 / 许可证 | C++ / GPL-3.0 | GitHub 仓库元数据,查询 2026-11-03 |
| 仓库星数 | 43k(shields.io)/ 42,929(API) | shields.io,查询 2026-11-03 |
| 发行渠道 | Windows 安装器、Linux 包(deb/rpm/AppImage)、Docker 镜像(ghcr.io/lizardbyte/sunshine) | 官方文档站 docs.lizardbyte.dev,查询 2026-11-03 |
版本号采用日期式命名 YYYY.MDD.HHMMSS:2026.914.233613 即 2026 年 9 月 14 日构建。近 12 个月发布节奏(GitHub Releases 列表,查询 2026-11-03):
| 版本 | 发布时间 | 通道 |
|---|---|---|
| 2026.914.233613 | 2026-09-15 | 稳定版 |
| 2026.830.204120 | 2026-08-31 | nightly |
| 2026.731.155245 | 2026-07-31 | nightly |
| 2026.617.162634 | 2026-06-18 | 预发布 |
| 2026.528.145512 | 2026-05-29 | 预发布 |
| 2026.302.151130 | 2026-03-03 | 预发布 |
约 1–2 个月一个稳定版,nightly 通道按月滚动,维护活跃(仓库最近推送 2026-11-03,查询自 GitHub API)。
2. 软件概述
Sunshine 是 LizardByte 社区维护的自托管游戏串流主机端:运行在你的游戏 PC(或带 GPU 的服务器)上,负责抓取画面、编码视频、接收输入并推流;另一端的设备用 Moonlight 客户端连接它,即可把主机上的游戏/桌面串流到笔记本、手机、电视、掌机上玩。
它在生态中的位置需要拆开讲:
- 协议层:Sunshine 实现了 NVIDIA GameStream 协议(服务端兼容实现)。NVIDIA 已于 2025 年初终止 GeForce Experience 的 GameStream 功能,Sunshine 成为该协议事实上的开源续命者——任何品牌 GPU(NVIDIA/AMD/Intel)都能当串流主机。
- 客户端层:Moonlight(moonlight-stream 组织)是实现该协议的开源客户端家族,覆盖 Windows/macOS/Linux/Android/iOS/tvOS/Fire TV 等平台。Moonlight 不是竞品,而是 Sunshine 的固定搭档;没有 Moonlight 客户端,Sunshine 无法独立成服务。
- 治理层:两者同属 LizardByte 开源基础设施生态(同组织还维护 Moonlight 相关镜像与 CI 设施),Sunshine 仓库创建于 2021-12-15(查询自 GitHub API,2026-11-03)。
一句话定位:Sunshine = 开源、可自托管、跨 GPU 厂商的"游戏串流发射塔",Moonlight = 接收端。
背景补充两点:
- NVIDIA GameStream 曾是"PC 串流到 Shield/手机"的事实标准,但 GeForce Experience 于 2025 年初移除该功能;Moonlight 客户端因此需要一个非 NVIDIA 官方仍在维护的服务端实现,Sunshine 正是这一生态位的承接者(仓库创建于 2021-12-15,查询自 GitHub API,2026-11-03)。
- LizardByte 是一个开源基础设施社区,除 Sunshine 外还维护 Moonlight 相关构建与容器镜像流水线,因此 Sunshine 的发布节奏、镜像质量、跨平台 CI 都按"基础设施项目"而非"个人玩具"的标准维护(nightly 按月滚动,见第 1 节发布表)。
3. 核心架构
Sunshine 主机端一次串流会话的数据通路分四段:
┌────────────────────────── 主机(Sunshine)──────────────────────────┐
│ ① 画面捕获 ② 视频编码 ③ 流媒体服务 ④ 输入注入 │
│ X11/Wayland/ → NVENC / AMF / → RTSP(TCP) + → 虚拟手柄 │
│ D3D11/kmsgrab QSV / VA-API / UDP 端口组 虚拟键鼠 │
│ (显示器或无头) software/vulkan (uinput/ │
│ 驱动层) │
└──────────────────────────────────────────────────────────────────────┘
▲ GameStream 协议(47984/47989/47990 等端口) │
│ ▼
Web UI + REST API(47990,Basic 认证 + PIN 配对) Moonlight 客户端
- ① 捕获:从显示输出抓取帧。Linux 侧支持 X11、Wayland(portal)、kmsgrab(DRM 直抓,需
/dev/dri);无显示器/无 GPU 时捕获环节不可用,但管理面(Web UI/API)照常工作——这是选型时必须知道的硬件前置。 - ② 编码:编码器后端在源码中枚举为
nvenc、vulkan、vaapi、software四类探测(另有 Windows 侧 AMF/QSV 经各自 API)。H.264/H.265/AV1 可按 GPU 能力开关(配置键h264/hevc/av1)。软件编码(x264/x265 路径)存在但对高帧率 4K 不现实,生产串流强烈建议硬件编码。 - ③ 流媒体:RTSP 会话协商 + UDP 视频/音频/控制三通道推流,兼容 GameStream 客户端。
- ④ 输入:客户端的键鼠/手柄事件在主机侧重放为虚拟设备(Xbox 360 兼容手柄、UInput 键鼠),这是"串流玩游戏"区别于"远程桌面"的关键能力。
- 管理面:内置 HTTPS Web UI 与 REST API(同一端口),负责凭据、客户端 PIN 配对、应用清单(
apps.json)与全部配置项;配置持久化为sunshine.conf键值文件。
3.1 端口契约(部署前必读)
Sunshine 默认占用一组固定端口(官方文档口径,端口关系详见 B2 实测):
| 端口 | 协议 | 用途 |
|---|---|---|
| 47984 | TCP | GameStream HTTPS(TLS + 客户端证书) |
| 47989 | TCP | GameStream HTTP(serverinfo/pair 握手,即配置键 port 默认值) |
| 47990 | TCP | Web UI / REST API(HTTPS,恒为 port + 1) |
| 47998 | UDP | 控制通道 |
| 47999 | UDP | 视频流 |
| 48000 | UDP | 音频流 |
| 48010 | TCP | RTSP 会话协商 |
要点:Web UI 端口由 port 键派生(port + 1),改 port 会同时改变 GameStream 与 UI 端口;公网暴露时这 7 个端口都要过防火墙/映射。
3.2 主机侧文件布局
Linux 上运行时文件落在用户配置目录 ~/.config/sunshine/(官方文档口径):
| 文件 | 作用 |
|---|---|
sunshine.conf | 主配置,key = value 键值行(详见 C1) |
apps.json | 流应用清单(名称、命令行、前置/退出命令、封面) |
sunshine_state.json | 管理员凭据(用户名 + salt + 密码哈希)与已配对客户端状态 |
credentials/ | CA 与服务端自签证书(Web UI/GameStream TLS 共用) |
sunshine.log(.1~.5) | 运行日志,自动轮转保留 5 份 |
4. 功能列表
| 功能 | 说明 |
|---|---|
| 多后端硬件编码 | NVIDIA NVENC、AMD(VAAPI/AMF)、Intel QSV/VAAPI、Vulkan、软件编码 |
| 现代编解码 | H.264 / H.265 / AV1 按 GPU 能力启用 |
| 高规格输出 | 最高 4K、120 FPS+,HDR(需 NVENC/AMF 支持,官方文档口径) |
| 应用级串流 | apps.json 声明任意程序为"流应用",客户端点图标即启动并串流(含 Steam Big Picture 模板) |
| 虚拟输入 | Xbox 360 兼容虚拟手柄、键鼠注入;手柄支持多种模拟类型(配置键 gamepads.*) |
| PIN 配对 | 客户端生成 PIN,Web UI 输入批准,凭据化客户端证书 |
| Web UI + REST API | HTTPS 管理界面(Basic 认证),全套 API 可编程(apps/clients/config/pin/logs) |
| UPnP 自动映射 | 可选开启,路由器自动开端口(配置键 upnp) |
| mDNS 发现 | 局域网自动发现主机(依赖 Avahi;缺失时客户端手动填 IP) |
| 多平台部署 | Windows 安装器、Linux deb/rpm/AppImage、Docker 镜像(ghcr.io) |
| 开源与许可 | GPL-3.0,C++,LizardByte 社区维护 |
5. 快速上手(官方渠道)
以下为官方文档给出的最小路径(docs.lizardbyte.dev,查询 2026-11-03):
# Linux(deb 包,安装后启用用户级服务)
sudo apt install ./sunshine.deb
systemctl --user enable --now sunshine
# 或 Docker 形态(镜像 tag 带 OS 后缀)
docker run -d --name sunshine \
-p 47989:47989 -p 47990:47990 -p 48010:48010 \
ghcr.io/lizardbyte/sunshine:v2026.914.233613-ubuntu-24.04
首次访问 https://<主机IP>:47990 创建管理员凭据,然后在 Moonlight 客户端添加主机、输入 PIN 完成配对。完整部署与配对的逐步实测见 Sunshine Docker Compose 部署指南。
5.1 配对流程(双方视角)
- Moonlight 客户端添加主机(自动发现依赖 mDNS,无 Avahi 时手动填 IP:47989)。
- 客户端发起配对并显示一个 4 位 PIN。
- 在 Sunshine Web UI 的 PIN 输入框提交该 PIN(REST 形态为
POST /api/pin)。 - 主机校验后签发/登记客户端证书,客户端获得主机信任,后续免 PIN 直连。
5.2 发行渠道选择
| 渠道 | 形态 | 适合 |
|---|---|---|
| Windows 安装器 | 服务 + 托盘 | 游戏 PC 主机(最主流用法) |
| Linux deb/rpm | 用户级 systemd 服务 | 桌面 Linux 主机 |
| AppImage | 免安装单文件 | 尝鲜/便携 |
| Docker(ghcr.io) | 容器 | 带 GPU 的服务器/NAS,管理面自动化(见 B2) |
Docker 镜像 tag 规则:稳定版 tag 形如 v2026.914.233613-ubuntu-24.04(带 OS 后缀),nightly 通道为 nightly(ghcr 标签列表,查询 2026-11-03);无后缀的裸 tag 为最小构建(B2 实测其缺运行时依赖,勿用于生产)。
6. 适用场景与不适用场景
✅ 适合:
- 家里游戏 PC 串流到客厅电视/笔记本/手机(Moonlight 客户端全平台)
- 局域网低延迟串流为主、偶尔走公网(UPnP/手动端口映射)
- 需要把非 Steam 游戏、模拟器、任意桌面程序作为流应用发布
- 想自托管、可编程管理串流主机(REST API + 配置文件键值体系)
- NVIDIA GameStream 停服后的替代方案
❌ 不适合:
- 主机无 GPU 且无显示输出:画面捕获与硬件编码是硬前置,纯服务器(无独显、无头)只能跑管理面,不能真正串流
- macOS 作主机:官方无 macOS 主机包(仅 Windows/Linux/FreeBSD 渠道)
- 需要云端 GPU 实例串流给多用户:Sunshine 是单人会话主机模型,不是多租户流媒体平台
- 对 8K/360Hz 级极限规格:受编码器与 GameStream 协议约束,官方上限以文档为准
硬件前置(选型必读):串流主机需要一块支持 NVENC/AMF/QSV/VAAPI 之一的 GPU + 可抓取的显示输出;CPU 软件编码仅作兜底。无 GPU 的服务器容器只能验证 Web UI/API/配置面(本专栏 B2/C1/D1 即在此形态下实测管理面)。
7. 同类选型对比(量化)
先澄清对比口径:Moonlight 是客户端家族,不是 Sunshine 的竞品;真正与 Sunshine 竞争"主机端"位置的是 Steam Link / Steam Remote Play(Valve 的串流方案)。因此对比按"方案"组织:
| 维度 | Sunshine + Moonlight | Steam Link(Steam Remote Play) |
|---|---|---|
| 开源性 | 全链路开源(主机 GPL-3.0,客户端 Apache-2.0) | 闭源免费(Valve 专有,含于 Steam) |
| 星数(2026-11-03,shields.io) | Sunshine 43k + moonlight-qt 19k + moonlight-android 7.4k + moonlight-ios 1.7k ≈ 71k | 无公开仓库(不适用) |
| 主机 OS | Windows / Linux / FreeBSD | Windows / macOS / Linux / SteamOS |
| 客户端 OS | Windows / macOS / Linux / Android / iOS / tvOS / Fire TV | Android / iOS / tvOS / Steam Deck /(桌面端内置于 Steam 客户端) |
| 编码 | NVENC/AMF/QSV/VAAPI/Vulkan/软件;H.264/H.265/AV1 | Steam 内置编码(H.264/H.265) |
| 主机 GPU 要求 | 需硬件编码 GPU(软件编码兜底但延迟高) | 核显/CPU 编码即可跑(依赖 Steam 客户端) |
| 可串流内容 | 任意程序(apps.json 应用级)+ 桌面 | Steam 库游戏 + 桌面(非 Steam 游戏需添加为库内快捷方式) |
| 管理面 | Web UI + REST API + CLI + 配置文件(99 个配置键) | Steam 客户端内设置,无公开 API |
| 配对/凭据 | PIN + 客户端证书,自托管可控 | 走 Steam 账号体系 |
| 费用 | 免费 | 免费 |
| 协议 | NVIDIA GameStream 兼容 | Steam 私有协议 |
结论口径:
- 游戏都在 Steam 里、不想折腾、主机 GPU 一般 → Steam Link 开箱即用。
- 要串任意程序/模拟器/桌面、要全平台客户端、要可编程自托管管理面、GameStream 停服后的长期开源路线 → Sunshine + Moonlight 是当前唯一成体系的开源选择。
- 两者可共存:Sunshine 的默认应用清单里就带 Steam Big Picture 模板,串流主机跑 Steam、客户端用 Moonlight 进 Big Picture,体验与 Steam Link 基本对齐。
7.1 Moonlight 客户端家族(接收端量化)
星数取自 shields.io,查询 2026-11-03:
| 客户端 | 仓库 | 星数 | 平台 |
|---|---|---|---|
| Moonlight Qt | moonlight-stream/moonlight-qt | 19k | Windows / macOS / Linux / Steam Deck |
| Moonlight Android | moonlight-stream/moonlight-android | 7.4k | Android / Fire OS |
| Moonlight iOS | moonlight-stream/moonlight-ios | 1.7k | iOS / iPadOS / tvOS |
三个客户端合计约 28k 星,与 Sunshine 43k 星构成同一生态的两端;客户端与主机协议一致,混用无兼容成本。
7.2 选型决策树
要串流玩游戏?
├─ 主机是游戏 PC 且只有 Steam 游戏 → Steam Link(零配置)
├─ 需要串任意程序/模拟器/桌面 → Sunshine + Moonlight
├─ 客户端含 iOS/tvOS/Fire TV → 只能 Sunshine + Moonlight(Steam Link 覆盖不全)
├─ 需要 API/脚本化管理主机 → Sunshine(REST API + 配置文件)
└─ 主机无 GPU/无显示 → 两者都不适用(Sunshine 仅可跑管理面,见 B2/C1 形态)
8. 参考链接
- Sunshine GitHub 仓库(查询 2026-11-03):https://github.com/LizardByte/Sunshine
- Sunshine Releases(版本与发布节奏,查询 2026-11-03):https://github.com/LizardByte/Sunshine/releases
- LizardByte 官方文档(查询 2026-11-03):https://docs.lizardbyte.dev/projects/sunshine/latest/
- Moonlight 客户端家族(moonlight-stream,查询 2026-11-03):https://github.com/moonlight-stream
- ghcr.io 镜像仓库:https://ghcr.io/lizardbyte/sunshine
- 站内:Sunshine Docker Compose 部署指南
- 站内:Sunshine 2026.914.233613 配置参数详解
- 站内:Sunshine 2026.914.233613 常用 CLI 命令与工具详解