如何搭建 Sunshine 游戏串流服务器:安装、配对到调优完整指南
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一个自托管的游戏串流服务器,配合 Moonlight 客户端,把 Windows、Linux、macOS 主机上的游戏实时串到手机、平板或电视上。它优先用 AMD、Intel、NVIDIA 显卡做硬件编码,跑不动时回退到 CPU 软编。下面按你实际操作的时间顺序走:先把它跑起来,再完成首次配对,接着解决第一个卡点,最后处理跑通之后的事。
🎮 把它跑起来:安装包与源码两条路
官方推荐用发布页里的预编译二进制,.deb、.rpm、AppImage、.dmg、.msi 按你的发行版各取所需,Docker 镜像只适合少数场景。要从源码构建或做二次开发,才走克隆这条路。
git clone https://gitcode.com/GitHub_Trending/su/Sunshine cd Sunshine主机和客户端都建议挂在 5GHz 的 802.11ac 网络上,最低门槛是 4GB 内存加 Ryzen 3 或 i3 以上的 CPU,4K 和 HDR 场景的显卡要求更高,见 README 系统要求表。
提示:Linux 上 Sunshine 默认作为 systemd 用户服务跑,装好后用systemctl --user管理启停,服务名是app-dev.lizardbyte.app.Sunshine。
首次运行:打开 Web UI 并配 Moonlight
启动后浏览器访问https://localhost:47990打开 Web UI,浏览器报"不安全网站"是自签名证书所致,忽略即可。首次进入会引导你创建管理员用户名和密码,后面配对、进故障页都靠它,当场记下来。
配 Moonlight 时,客户端发起连接,主机 Web UI 的 "PIN" 入口会给出一个配对码。你登录 Web UI、点 Navbar 的 "PIN",输入主机显示的 PIN、回车并给设备起个名字,看到成功提示后回 Moonlight 选一个应用即可开始串流。找不到 Moonlight 客户端的话,Web UI 的 "Featured Apps" 页签里就有下载入口。
提示:忘了 Web UI 账号密码时,用sunshine --creds 新用户名 新密码重置。
🔧 第一个卡点:捕获、编码与输入
"能连上"和"连得好"是两回事,第一次的三个常见卡点都出在这里。
捕获方式决定会不会黑屏或花屏。它按平台自动挑一种:Windows 用 Desktop Duplication(ddx)或 Windows.Graphics.Capture(wgc),Linux 有 KMS、X11、Wayland(wlr)、KDE(kwin)、XDG Portal 等,macOS 用 ScreenCaptureKit。KMS 在 NVIDIA 卡上出黑屏,多半是内核参数没开,照 故障排查文档 给 nvidia 模块加modeset=1。AppImage 和 Flatpak 权限受限跑不了 KMS,要用发行版原生包。
编码器按显卡对号入座,默认选第一个可用的,也可以手动指定:
| 显卡 | 可用编码器 |
|---|---|
| NVIDIA | nvenc |
| Intel | quicksync、vaapi |
| AMD | amdvce、vaapi |
| Linux 通用 | vulkan |
| 任意 | software(CPU 软编) |
输入不响应多是权限问题。主机用户没进input组时,虚拟键鼠和手柄不会生效,Linux 上执行sudo usermod -aG input $USER后重新登录。
跑通之后:加游戏、调延迟、看日志
第一次串流成功后,先做三件事让体验稳住。
把游戏加进应用列表。Web UI 的应用管理页(底层就是apps.json)里逐条填启动命令和工作目录,客户端看到的列表来自这里。注意:启动一个应用会关掉上一个正在跑的应用,应用退出时串流也随之结束。
用 iPerf3 量一遍网络。串流体验更看稳定性而非纯带宽:主机起iperf3 -s,客户端按 60 秒 UDP 反向测一个目标码率,丢包低于 5%、抖动低于 1ms 才算合格。码率由max_bitrate控制(示例值 5000),可按网络上调或下调。
看日志定位问题。Web UI 的 "Troubleshooting" 页签能逐条展开警告和报错,编码或捕获问题多半在这里就能看出端倪。
跑通后顺手自查:画面稳定不花屏、键鼠和手柄都有响应、日志里没有持续刷新的报错,三点都满足就基本可以放心用了。HDR 目前 Windows 主机正式支持、Linux 还是实验性,需要主机和客户端都开启 HDR 选项,否则串出来是 SDR。
接下来按设备走:Windows 主机核对显卡编码器和捕获方式,Linux 主机核对 KMS/Portal 捕获和input组权限,再照着 configuration.md 把码率、编码器、帧率目标调到匹配网络的值。想深入某个编码器,直接看 NVENC 模块源码。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考