Sunshine 介绍与选型指南

Sunshine(LizardByte)自托管游戏串流主机端全景:GameStream 协议续命者定位、四段式架构与端口契约、功能矩阵、硬件前置说明,以及 Sunshine+Moonlight 与 Steam Link 的量化选型对比(星数/许可证/平台覆盖,数据查询 2026-11-03)。

SunshineSunshineMoonlight游戏串流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.0GitHub 仓库元数据,查询 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.2336132026-09-15稳定版
2026.830.2041202026-08-31nightly
2026.731.1552452026-07-31nightly
2026.617.1626342026-06-18预发布
2026.528.1455122026-05-29预发布
2026.302.1511302026-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 实测):

端口协议用途
47984TCPGameStream HTTPS(TLS + 客户端证书)
47989TCPGameStream HTTP(serverinfo/pair 握手,即配置键 port 默认值)
47990TCPWeb UI / REST API(HTTPS,恒为 port + 1)
47998UDP控制通道
47999UDP视频流
48000UDP音频流
48010TCPRTSP 会话协商

要点: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 APIHTTPS 管理界面(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 配对流程(双方视角)

  1. Moonlight 客户端添加主机(自动发现依赖 mDNS,无 Avahi 时手动填 IP:47989)。
  2. 客户端发起配对并显示一个 4 位 PIN。
  3. 在 Sunshine Web UI 的 PIN 输入框提交该 PIN(REST 形态为 POST /api/pin)。
  4. 主机校验后签发/登记客户端证书,客户端获得主机信任,后续免 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 + MoonlightSteam 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无公开仓库(不适用)
主机 OSWindows / Linux / FreeBSDWindows / macOS / Linux / SteamOS
客户端 OSWindows / macOS / Linux / Android / iOS / tvOS / Fire TVAndroid / iOS / tvOS / Steam Deck /(桌面端内置于 Steam 客户端)
编码NVENC/AMF/QSV/VAAPI/Vulkan/软件;H.264/H.265/AV1Steam 内置编码(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 Qtmoonlight-stream/moonlight-qt19kWindows / macOS / Linux / Steam Deck
Moonlight Androidmoonlight-stream/moonlight-android7.4kAndroid / Fire OS
Moonlight iOSmoonlight-stream/moonlight-ios1.7kiOS / 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. 参考链接