Sunshine串流指南:三步把PC变成低延迟私人云游戏主机
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一款自托管的游戏串流服务端,它解决的问题很直接:让你在任何终端上流畅玩自己电脑里的游戏,而不必依赖商业云游戏平台。把这台"主机"搭好之后,手机、平板、电视盒子、甚至另一台电脑都可以变成你的游戏屏幕。读完这篇文章,你能独立完成安装、首次配对,并根据自己的网络情况调出最稳的串流画质。
它到底帮你解决什么
先说一个常见场景:你的 PC 性能过剩,但你的位置经常不在它旁边——周末在沙发上、出差在酒店、孩子在用同一台机器。商业云游戏要么按天收费,要么游戏库受限,要么数据走第三方服务器。
Sunshine 的思路是反过来:游戏和画面始终在你自己的局域网里传输,它只负责把屏幕捕捉下来、用显卡硬件编码、再推给 Moonlight 客户端。延迟低、画质高、免费开源,而且隐私数据不出你家网络。换句话说,你买的显卡不只是给自己玩,还能当"串流编码器"用。
配好主机后,你在 Web 界面里为每个游戏建一个入口——桌面应用、Steam 游戏或任意自定义命令都行,之后在 Moonlight 里点一下就能玩。
三步跑起来
装 Sunshine 只需要一个安装包,下面按系统给最短路径,每条命令复制即用。
Windows
winget install LizardByte.SunshineLinux
flatpak install flathub dev.lizardbyte.app.SunshinemacOS
brew install sunshine如果你习惯从源码构建来体验完整功能,可以克隆仓库后按 docs/building.md 编译:
git clone https://gitcode.com/GitHub_Trending/su/Sunshine装完后不需要额外敲什么,服务端随系统自启动。下一步是打开它的配置界面。
第一次运行会发生什么
第一次访问配置页时,Sunshine 会要求你设置管理员账号,这是之后所有客户端配对和改配置的入口。跟着界面走,大约两分钟就能完成:
- 打开浏览器,访问
http://localhost:47990(本机)或http://<主机IP>:47990(局域网内其他设备)。 - 首次进入会提示设置管理员用户名和密码——请记下来,忘了可以用命令行重置(见后面踩坑速查)。
- 登录成功后进入主界面,左侧是配置项,右侧是日志;右上角可以配对 Moonlight 客户端。
- 在"应用"页添加第一个串流目标:选一个桌面应用或 Steam 游戏,保存即可。
界面默认跟随系统深浅色,也可以在 General 设置里单独指定语言。到这里,你的串流主机已经能用了。
核心能力一张表看懂
Sunshine 的兼容矩阵是它最实用的部分:编码走显卡硬件,不占 CPU;不同平台支持的编码器不一样,选错会白白多一帧延迟。下表整理了主要编码 API 的适用情况:
| 编码方案 | 显卡 | Windows | Linux | macOS |
|---|---|---|---|---|
| NVENC | NVIDIA | ✅ | ✅ | ➖ |
| AMF | AMD | ✅ | ➖ | ➖ |
| QuickSync | Intel | ✅ | ➖ | ➖ |
| VAAPI | AMD / Intel / NVIDIA(部分) | ➖ | ✅ | ➖ |
| VideoToolbox | Apple / Intel | ➖ | ➖ | ✅ |
| Vulkan Video | AMD / Intel / NVIDIA(部分) | ➖ | ✅ | ➖ |
| 软件编码 x264 | 任意 | ✅ | ✅ | ✅ |
三句话总结:N 卡在 Windows 和 Linux 上都能走 NVENC,是体验最稳的组合;AMD/Intel 核显在 Linux 上优先 VAAPI,在 Windows 上走 AMF 或 QuickSync;实在没有合适的硬编,x264 软件编码全平台兜底,只是更吃 CPU。屏幕捕捉方式(DXGI、KMS/DRM、ScreenCaptureKit 等)与平台的对应关系,可查 README.md 中的 Screen Capture 表格。
调出最佳体验
串流体验的第一变量不是码率,而是网络的稳定性:丢包和抖动比带宽更致命。先保证有线优先、无线用 5GHz,然后再按下表分档设置:
- 标准档(日常家用,千兆有线或信号好的 5GHz):1080p / 60fps,码率 20~30 Mbps。大多数家庭网络的甜点区,画质与延迟平衡最好。
- 高速档(万兆/满速千兆,客户端信号强):1440p / 120fps,码率 50~80 Mbps。适合追求高刷的玩家,注意确认你的显卡支持对应帧率的 NVENC/VAAPI 输出。
- 极限档(局域网满速、N 卡中高端):4K / 60~120fps,码率 80~150 Mbps。仅在有线 + 低抖动网络下推荐,否则优先降分辨率而不是降码率。
几个进阶开关(都在 Web 配置的 Audio/Video 页里,详细字段说明见 docs/configuration.md):
max_bitrate:给编码设一个上限,防止网络波动时突发码率导致缓冲溢出。- 帧率目标:尽量贴近游戏原生帧率,避免编码器在两个档位间反复切换。
- NVIDIA 用户可在显卡驱动里开 Fast Sync,AMD 用户可试 Enhanced Sync,各能再省一帧左右的延迟,参考 docs/performance_tuning.md。
踩坑速查
遇到问题先看这张表,大多数情况两分钟内能定位:
| 现象 | 可能原因 | 处理 |
|---|---|---|
| Moonlight 客户端发现不了主机 | 防火墙拦了 47990/5201 端口,或不在同一网段 | 放行 Sunshine 相关端口;确认两台设备在同一局域网 |
| 忘了 Web UI 密码登不进去 | 凭据记错 | 命令行执行sunshine --creds 新用户名 新密码重置 |
| 画面正常但频繁卡顿、提示 Buffer overrun | 主机到客户端链路上某段带宽/缓冲不足 | 降一档分辨率或码率;用 iPerf3 测出瓶颈段 |
| 游戏里手柄识别异常(Steam 里却正常) | 主机上已直连了实体手柄,抢占了"第一个手柄"身份 | 在系统里禁用直连手柄,让客户端模拟的手柄排在第一 |
| 鼠标行为怪异 | 缺少物理鼠标参照 | 给主机接一个实体鼠标再试 |
| 日志报错看不懂 | 需要结合硬件信息排查 | 打开 Web 界面右侧日志页逐条查看,或查 docs/troubleshooting.md |
进阶与收尾
到这里,从装包到调参你已经跑通了全流程。接下来可以按兴趣深入:
- 想用 Flatpak 之外的 Linux 包(DEB/RPM/AppImage)或 Docker 部署,看 docs/getting_started.md;
- 想给电视盒子/树莓派配对,参考精选客户端页和 docs/app_examples.md;
- 想理解每个配置项的默认值和可选值,docs/configuration.md 有完整字段清单。
回到开头那个场景:现在你的 PC 已经是一台 24 小时待命的私人串流主机。今晚就去沙发上,打开 Moonlight 连上它,把第一个游戏点进去——从按下播放键到画面出现,你应该只需要几秒钟。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考