零成本自建云游戏:Sunshine串流服务器完整上手攻略,一台PC全家设备畅玩
零成本自建云游戏:Sunshine串流服务器完整上手攻略,一台PC全家设备畅玩
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
如果你正在为「云游戏平台月费越来越贵、游戏库还由别人说了算」而头疼,那么免费开源的Sunshine 游戏串流服务器值得你花十分钟了解一下。它是一款自我托管(Self-hosted)的串流主机端,配合免费的 Moonlight 客户端,就能把家里任何一台 PC 变成你的私人云游戏平台——不交订阅费、不依赖公网云机房,数据全程在你自己的局域网里跑。
为什么我劝你先别急着开云游戏会员
先算一笔现实的账:主流的云游戏服务动辄每月几十元订阅费,热门 3A 大作还要另外购买;延迟取决于服务商机房离你多远,高峰时段画面糊成一团是家常便饭;更关键的是,游戏库是服务商给的,不是你的。你真正想要的,其实只是"在客厅电视上玩我 Steam 库里的游戏"而已。
Sunshine 的解法完全不同:游戏跑在你的电脑上,画面通过编码压缩后传到任意设备。这笔账算下来,差距非常直观:
| 对比维度 | 商业云游戏平台 | Sunshine 自托管方案 |
|---|---|---|
| 费用 | 月费 + 游戏单独购买 | 完全免费、开源 |
| 游戏库 | 平台精选,随时可能下架 | 你自己的全部 PC 游戏 |
| 延迟 | 取决于机房与骨干网 | 局域网内,延迟极低 |
| 画质上限 | 受平台码率限制 | 由你的显卡和带宽决定 |
| 隐私 | 账号、存档在云端 | 全部数据留在本地网络 |
| 自定义 | 几乎为零 | 分辨率、码率、HDR 全可调 |
✅一句话总结:云游戏平台卖的是"省事",Sunshine 给的是"完全掌控",而后者成本为零。
它到底是什么:一对分工明确的"串流搭档"
Sunshine 官方定位是Self-hosted game stream host for Moonlight,翻译过来就是"为 Moonlight 而生的自托管串流主机"。理解这个项目,只需要搞清两个角色的分工:
- Sunshine(主机端):安装在你的游戏 PC 上,负责抓取屏幕画面、调用显卡硬件编码、把输入指令回传给游戏;
- Moonlight(客户端):安装在手机、平板、笔记本、电视盒子等任意设备上,负责解码画面并采集你的操作。
也就是说,你的 PC 只需要跑一个 Sunshine,全家的设备都能连上来玩。Sunshine 最厚道的地方在于硬件兼容性:它不只支持 NVIDIA,而是把市面上主流编码 API 基本收齐了:
| 编码方式 | 适用显卡 | 平台 |
|---|---|---|
| NVENC | NVIDIA | Windows / Linux |
| AMF | AMD | Windows |
| QuickSync | Intel 核显 | Windows |
| VAAPI | AMD / Intel / NVIDIA | Linux / FreeBSD |
| Video Toolbox | Apple / Intel | macOS |
| Vulkan Video | 各厂商 | Linux |
| 软件编码 | 任意 CPU | 全平台 |
抓屏方式同样覆盖全面:Windows 用 DXGI 桌面复制,Linux 支持 X11、Wayland、KMS/DRM、KWin、XDG Portal 等十余种后端,macOS 用 ScreenCaptureKit。这意味着无论你是什么平台组合,Sunshine 基本都能找到一条可用的采集链路。
从零到第一次串流:二十分钟的上手旅程
第一步:按你的系统选一条安装命令
Sunshine 为 Windows、Linux、macOS、FreeBSD 都准备了官方打包,优先用系统自带的包管理器,别折腾源码编译:
# Windows:winget 一条命令装好(也可用官方 MSI 安装包) winget install LizardByte.Sunshine # Linux:Flatpak 全发行版通用 flatpak install --system flathub dev.lizardbyte.app.Sunshine # macOS:Homebrew 安装 brew install sunshine # 想自己折腾源码?先克隆仓库再按文档构建 git clone https://gitcode.com/GitHub_Trending/su/Sunshine⚠️避坑提示:官方文档明确写着 Docker 镜像"不推荐给大多数用户",AppImage 和 Flatpak 则不支持 KMS 抓屏。能用发行版原生包就优先用它,这是官方反复强调的一条建议。
第二步:打开欢迎页,创建你的登录凭据
装好后启动 Sunshine(通常安装为系统服务,会自动运行),浏览器访问http://localhost:47990,你会看到它的欢迎界面。
这里有两个新手最容易踩的坑,提前说清楚:
- 浏览器会警告"不安全网站",这是自签名 SSL 证书的正常现象,直接忽略;
- 首次登录用默认用户名
sunshine创建密码后,务必把凭据记在安全的地方——Web 界面所有配置都靠它,忘了密码只能去终端用sunshine --creds 新用户名 新密码重置。
第三步:在 Moonlight 里配对
- 在手机或另一台电脑上安装Moonlight客户端(Windows / macOS / Linux / Android / iOS 都有官方版本);
- 客户端里手动添加你的 PC 局域网 IP;
- 此时 Moonlight 会显示一个 4 位 PIN 码;
- 回到 Sunshine 的 Web 界面,点导航栏的PIN,输入这串数字并给设备起个名字,回车看到 Success 即配对完成。
配对成功后,Moonlight 里就会出现 Sunshine 预置的应用列表,点一下就能开始串流。整个过程 20 分钟内就能跑通,比想象中简单得多。
把核心功能用出价值:四个真实使用场景
场景一:应用管理——把 Steam 大屏模式一键搬进客厅
Sunshine 的Applications页面是它最实用的功能:每个"应用"就是一条启动命令,你可以为任意游戏或程序创建独立的串流入口。预置的Desktop(直接串流整个桌面)和Steam(默认启动 Steam 大屏模式)两个模板开箱即用。
添加自定义应用时,注意两点细节:命令支持环境变量占位(如$(HOME)),且启动参数推荐用 detached 方式运行——比如把steam配成前台 cmd,会导致游戏一退出串流就中断。
场景二:配置搜索——不用翻手册也能精确调参
Sunshine 的配置项很多,但它的Configuration页面内置了实时搜索。比如想开 UPnP 自动端口转发,直接搜 "Upnp" 就能定位到对应开关并保存。
最常用的几个配置,记住就够日常使用了:视频码率(按你的网络带宽给上限)、分辨率与帧率(匹配客户端屏幕)、HDR 开关,以及音频输出设备。
场景三:精选应用——官方帮你把客户端"配齐"
新手最常问"该装哪个客户端",Sunshine 的Featured Apps页面直接给出了答案:Moonlight PC、Moonlight Android、Moonlight Embedded 等官方客户端,以及性能监控、网络诊断、手柄配置等配套工具,一站式列出。
场景四:日志排查——出问题先看这里而不是瞎猜
串流出问题时的第一动作,是打开Troubleshooting标签页看日志。它会按时间列出每条 Info / Warning / Error,还能一键复制,比如Could not open codec这类编码器报错,一眼就能定位是驱动还是配置问题。
加分项:HDR、手柄与快捷键
- HDR 串流:Windows 端官方支持(需显卡支持 HEVC Main 10 或 AV1 10bit 编码),Linux 端为实验性支持且必须用 KMS 抓屏后端;
- 手柄:Windows 下需先安装ViGEmBus虚拟手柄驱动(Web 界面的 Troubleshooting 页即可一键安装);Linux 下把手柄输入交给系统
uinput即可; - 快捷键:
Ctrl+Alt+Shift+N隐藏光标,Ctrl+Alt+Shift+F1~F12切换串流显示器,远程桌面场景很实用。
让画质和延迟兼得:编码与网络的调优思路
Sunshine 会根据你的显卡自动选择编码方案,但手动调对参数能让体验再上一个台阶。一个粗参考:
| 使用场景 | 分辨率/帧率 | 建议码率 |
|---|---|---|
| 手机/平板局域网 | 1080p 60fps | 15–25 Mbps |
| 客厅大屏 | 1440p 120fps | 25–50 Mbps |
| 4K 电视 | 4K 60fps | 50–100 Mbps |
网络方面要破除一个误区:串流看重的不是峰值带宽,而是稳定性。用 iperf3 做一次 60 秒反向 UDP 测试(丢包率低于 5%、抖动低于 1ms 才算健康),比盲目调高码率有效得多。N 卡用户建议在驱动里开启Fast Sync,A 卡用户开启Enhanced Sync,都能再压下一帧延迟。编码实现细节可以参考 src/nvenc/ 目录,里面是各硬件编码器的完整实现。
新手最常踩的六个坑,一次帮你排完
- 忘了 Web 界面密码→ 终端执行
sunshine --creds 新用户名 新密码重置; - 鼠标键盘连上后没反应→ Linux/FreeBSD 下把运行 Sunshine 的用户加入
input组,重新登录生效; - Windows 手柄不识别→ 还没装 ViGEmBus 虚拟手柄驱动;
- 客户端死活搜不到服务器→ 检查防火墙是否放行 47990 端口,并确认两台设备在同一局域网;
- 画面爆卡、掉帧→ 先降码率或分辨率,再查主机端 CPU/GPU 占用和网络丢包,而不是盲目升级硬件;
- 串流偶尔花屏→ 主机网卡 MTU 从 1500 降到 1428 往往能救回来(某些电视客户端的已知问题)。
最后的行动清单与进阶路线
把文章读到这里,你只需要做五件事就能"上车":
- 用上文命令在你的游戏 PC 上装好 Sunshine;
- 打开
localhost:47990完成首次登录和密码设置; - 给常用游戏配置好应用列表(或直接用预置的 Desktop);
- 在手机/平板装 Moonlight,完成 PIN 配对;
- 跑一次串流,按上文的码率表微调画质。
想深入的话,官方文档都躺在项目里:安装与首次配置看 docs/getting_started.md,逐项参数说明看 docs/configuration.md,排错手册看 docs/troubleshooting.md,性能专项看 docs/performance_tuning.md。
✅一句话总结:Sunshine 用零成本换来了商业云游戏给不了的掌控感——一次部署,全家设备随时开玩,游戏库永远是你自己的。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
