Sunshine:从零搭建专属低延迟游戏串流服务器完整指南
2026/9/20 5:36:47 网站建设 项目流程

Sunshine:从零搭建专属低延迟游戏串流服务器完整指南

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

周末朋友来家里,想在客厅大屏上玩你 PC 里的单机大作,可 HDMI 线插到电视上、主机搬到客厅又都麻烦。自托管游戏串流是这时最务实的路线——Sunshine 正是一款自托管游戏串流服务器:它跑在你的电脑上,实时抓取画面、用 GPU 硬件编码压缩视频,通过网络送到 Moonlight 客户端,手机、平板、电视、另一台电脑都能玩。全程免费开源,配置管理在浏览器里完成。想把家里旧主机变成游戏盒子、或远程接管自己的游戏机,10 分钟就能搭起来。

它解决什么问题

很多人听到"串流"先想到云游戏服务,但那条路是租别人的机器:按月付费,游戏库受平台限制。Sunshine 走的是自托管路线——用你自己的 GPU 编码、你自己的游戏做内容,成本只有电费。Sunshine 负责服务端,配合开源的 Moonlight 客户端(覆盖 Windows、macOS、Linux、iOS、Android 和电视),串流链路就闭环了。

它的核心价值有三点:三家 GPU 厂商都支持硬件编码,即调用显卡上的专用编码单元压缩视频,不占用 CPU;项目开源免费;Windows、macOS、Linux、FreeBSD 都有官方包。而且串流源不限于游戏,PC 上能跑的任何程序都可以推到大屏。

维度云游戏服务Sunshine + Moonlight
费用按月或按次付费免费开源,只花硬件电费
游戏库平台提供哪些玩哪些PC 里装了什么都能玩
硬件租用云端机器自己的 PC,GPU 硬件编码
网络依赖服务商节点局域网最稳,跨网需端口转发
数据游戏跑在别人的机器上全部留在本机

下一步建议:家里有吃灰的游戏 PC 的话,直接按下面步骤把它变成串流主机。

快速上手 🚀

官方推荐用最新 Release 的安装包,源码编译只在有特殊需求时考虑。

Windows

绝大多数 x86 电脑安装 AMD64 版 MSI 安装包,向导里的选项(防火墙规则、Windows 服务、开机自启)建议逐项确认,不要一路下一步。也可以直接用包管理器:

winget install LizardByte.Sunshine

Linux

Debian/Ubuntu 先添加官方 stable 源(配置脚本见官方入门文档),然后:

sudo apt update sudo apt install sunshine

不想动系统源的话可以用 Flatpak,注意它不支持 KMS 捕获,有发行版原生包时优先原生包:

flatpak install flathub dev.lizardbyte.app.Sunshine

装好后启用用户级服务,登录桌面时自动启动:

systemctl --user --now enable app-dev.lizardbyte.app.Sunshine

macOS

下载对应芯片的 DMG,拖入"应用程序"即可。官方明确 macOS 版本是实验性的,手柄暂不可用,首次启动需要授予屏幕录制和麦克风权限。

首次启动与配对

Sunshine 跑起来后,浏览器打开https://localhost:47990,首次进入时创建用户名和密码(浏览器对自签名证书的"不安全"警告可忽略)。之后在 Moonlight 客户端搜索到 Sunshine,网页端会弹出 PIN 配对请求,输入 PIN 并给设备命名,配对完成。

下一步建议:先串流内置的"桌面"项试试,客户端能看到桌面画面,说明链路全通,再加具体游戏。

核心能力拆解

选对编码器:硬件编码省 CPU

软件编码全靠 CPU 硬压,帧率一高就卡。Sunshine 会自动识别显卡并匹配对应的硬件编码接口,你在网页上只需确认选中的是哪一种:

编码器适用 GPU可用平台
NVENC(NVIDIA 显卡内置编码器)NVIDIAWindows / Linux
AMFAMDWindows
QuickSyncIntelWindows
VAAPI(Linux 的标准视频加速接口)AMD / Intel / NVIDIALinux / FreeBSD
VideoToolboxApple / IntelmacOS
软件编码任意 CPU全平台兜底

建议:网页配置项很多,直接用搜索栏定位"encoder"比逐页翻快得多。

屏幕捕获:Windows 省心,Linux 要选对

Windows 用 DXGI 桌面复制(系统级屏幕镜像 API),基本不用管。Linux 的麻烦在于捕获方式多:KMS/DRM 直接读显示输出、NvFBC 是 NVIDIA 在 X11 下的低延迟路径、Wayland(Linux 新一代桌面协议)下有 wlroots 和 XDG Portal 等,选错容易黑屏或掉帧。

捕获方式平台特点
DXGI 桌面复制Windows标准方式
KMS/DRM(内核显示管理接口)Linux / FreeBSD无桌面(无头)环境也能用
NvFBCLinux(X11)NVIDIA 专属,延迟低
Wayland / XDG Portal / KWinLinux适配现代桌面
ScreenCaptureKitmacOS系统标准录屏 API

建议:Linux + NVIDIA + X11 优先试 NvFBC;Wayland 桌面用 KMS 或 wlroots。

任何程序都能当串流源

串流不等于只能玩游戏——网页、模拟器、整个桌面都可能是你想要的画面。在网页端"应用"页签里添加任意程序:填命令、工作目录即可,支持环境变量和启动参数。

注意:流中启动新应用会终止当前应用;像 Steam 这类需要常驻的程序,建议设成 detached(脱离)方式运行,避免串流随进程退出而断开。

手柄透传:虚拟手柄

手柄握在客户端手里,服务器端的游戏却"没有手柄"。Sunshine 的做法是在宿主机上模拟一个虚拟手柄,把客户端输入映射过去,支持 Xbox 360/One/Series、DualShock 4/5、Switch Pro 手柄等。

手柄类型LinuxWindowsmacOSFreeBSD
通用 HID支持支持不支持部分支持
Xbox 360/One/Series支持支持不支持部分支持
DualShock 4 / DualSense支持支持不支持部分支持
Switch Pro支持支持不支持部分支持

Windows 上需要装虚拟手柄组件:ViGEmBus 只支持 Xbox 360 和 DS4 且已停止维护,官方 Virtual HID Driver 支持更多手柄但属于付费选项。

建议:主力用手柄玩的话,先确认目标平台的虚拟手柄支持情况再部署。

实测数据 📊

官方 README 公布了捕获与编码的兼容矩阵(适用 Linux/FreeBSD),这是选方案时最可靠的依据。延迟没有公开的统一基准值,本文不编造数字——它取决于 GPU 编码链路与网络路径,官方排障文档建议用 iPerf3 测试客户端与服务器之间链路的稳定性(重点是低延迟抖动、无丢包,而不是极限带宽)。

捕获方式VAAPIVulkan VideoNVENC软件编码
KMS/DRM
NvFBC
Wayland (wlroots)
X11
XDG Desktop Portal
KWin Screencast

结论很直接:NvFBC 只能配 NVENC,KMS/DRM 通吃,Wayland 下 XDG Portal 覆盖面最广。网络方面,官方建议主机与客户端都走 5GHz(802.11ac)Wi-Fi,上 4K 则要求 CAT5e 以上有线。实测发现:局域网里硬件编码加有线连接,体感明显稳于无线。

下一步建议:部署前先用 iPerf3 跑一轮链路测试,把网络变量排除掉再调画质。

避坑与常见问题 ⚠️

卡住时先看网页端 Troubleshooting 页签的日志,官方把常见报错都列在里面:

  1. 浏览器提示"不安全"或打不开 47990 页面现象:地址栏红色警告,或从其他设备完全访问不到。 原因:网页使用自签名证书,警告属正常现象;访问不到多为防火墙拦了端口。 解法:忽略或信任该证书;在防火墙放行 47990。

  2. 忘记网页端账号密码现象:登不进配置页,什么也改不了。 原因:凭据存在本机配置里,网页端没有找回入口。 解法:命令行直接覆盖——sunshine --creds 新用户 新密码,然后正常登录。

  3. Linux 下键盘、鼠标、手柄无响应现象:能连上、能看画面,但输入全部失效。 原因:运行 Sunshine 的用户不在input组,没有权限创建虚拟输入设备。 解法:把该用户加入input组,注销并重新登录生效。

  4. 串流卡顿、丢帧现象:画面周期性掉帧,音频偶尔不同步。 原因:实时串流对网络稳定性的要求高于带宽——丢包和延迟抖动才是主因。 解法:iPerf3 测链路,能换有线就换有线,检查 MTU(网络包大小)设置,仍不行再降分辨率或码率。

生态与资源

  • 入门指南(安装、初始化、配对):docs/getting_started.md
  • 配置项全参考:docs/configuration.md
  • 性能调优:docs/performance_tuning.md
  • 故障排查手册:docs/troubleshooting.md
  • 三大平台实现(linux/windows/macos 子目录):src/platform/
  • NVENC 编码器封装:src/nvenc/
  • 单元与集成测试:tests/
  • 第三方依赖子模块:third-party/

想看源码可以执行git clone https://gitcode.com/GitHub_Trending/su/Sunshine,clone 后按 docs/building.md 编译。建议从 configuration 文档挑两三个最关心读一读,比通读效率高。

Sunshine 让你用现成的 PC 拿到云游戏给不了的串流体验。挑一个平台按"快速上手"装起来,半小时后电视上就能玩你整个游戏库。

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询