Sunshine 实操指南:5 步搭好低延迟游戏串流服务器
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
想把 PC 游戏串到客厅电视、手机或平板上,屏幕共享类方案延迟和画质都差强人意。Sunshine 是一个自托管游戏串流服务器,作为 Moonlight 客户端的串流主机,基于 GPU 硬件编码捕获并推送宿主画面,支持 Windows、Linux、macOS 与 FreeBSD。本文覆盖安装、配对、编码调优与排障的完整路径。
🎬 为什么选 Sunshine 而不是其他串流方案
自托管串流赛道里,Sunshine 的定位很清晰:不依赖厂商云、不绑定特定 GPU 厂商。与闭源的厂商串流方案相比,它的差异点可以数出来:
| 维度 | Sunshine | 典型闭源方案 |
|---|---|---|
| 编码后端 | NVENC / VAAPI / Vulkan Video / QuickSync / AMF / VideoToolbox / 软编共 7 类 | 通常仅自家 GPU |
| 平台覆盖 | Windows、Linux、macOS、FreeBSD | 一般仅单平台 |
| 捕获方式 | DXGI、KMS/DRM、NvFBC、XDG Portal、wlroots、X11 等 8 种 | 单一 API |
| 客户端 | 任意 Moonlight 客户端,全设备 | 绑定自家 App |
NVIDIA 的 GameStream 已停止演进后,Sunshine 是 Moonlight 客户端默认对接的主机端,开源、跨平台、编码器可选这三点是它相对其他方案的核心差异。
🚀 三大平台最短安装路径
每个平台只走一条最短路径,装完 5 分钟内应能看到串流画面。
Windows 安装
推荐 winget 一行安装(自动注册为服务并配置防火墙规则):
winget install LizardByte.Sunshine也可以从 Release 页面下载 MSI 安装包,安装器日志位于%TEMP%/Sunshine/logs/install/。安装选项按需勾选,不要无脑全装。
Linux 安装
有发行版包优先用发行版包,Flatpak 不支持 KMS 捕获,AppImage 同样不支持 KMS:
sudo apt update sudo apt install sunshineFedora/openSUSE 用官方源sudo dnf install Sunshine,Arch 用 pacman-repo 的pacman -S sunshine(已含 CUDA 支持)。装好后以 systemd 用户服务自启:
systemctl --user --now enable app-dev.lizardbyte.app.SunshinemacOS 安装
brew tap LizardByte/homebrew brew install sunshinemacOS 版目前是实验性质,首次启动需授予屏幕录制与麦克风权限;虚拟手柄暂不支持,键盘鼠标可用。
📱 第一次串流:Web UI、PIN 配对与添加游戏
启动 Sunshine 后,浏览器访问https://localhost:47990(自签名证书,忽略浏览器警告),首次进入会要求设置用户名密码,记牢它。
接下来四步完成首次串流:
- 在 Applications 页面添加游戏或应用("Desktop" 应用不启动程序,直接串桌面,适合先验证链路)
- 在 Moonlight 客户端添加这台主机,客户端会请求 PIN
- 回到 Web UI 顶部导航的 PIN 入口,输入 PIN 并给设备命名
- 在 Moonlight 中选择刚添加的应用,开始串流
添加应用时注意工作目录和命令写法:启动命令失败会中止启动;以cmd方式运行 Steam 这类自身即子进程的应用会立即断流,detached方式不受影响。快捷键与 Moonlight 一致,Ctrl+Alt+Shift+N隐藏光标,Ctrl+Alt+Shift+F1/F12切换串流显示器。
🎮 五个值得用的核心能力
多 GPU 硬件编码矩阵。按显卡自动选择最优编码器,也可用encoder配置项强制指定:
| 编码器 | 适用平台 |
|---|---|
| NVENC | Windows / Linux(NVIDIA) |
| VAAPI | Linux(Intel / AMD / NVIDIA) |
| QuickSync、AMF | Windows(Intel / AMD) |
| VideoToolbox | macOS |
| 软件编码 | 全平台兜底 |
Linux 上 NVIDIA 卡可走 NVENC(CUDA 直编显存),AMD/Intel 推荐 VAAPI 或 Vulkan Video,具体组合受捕获方式约束(NvFBC 只能配 NVENC 或软编)。
按平台匹配的捕获方式。Windows 用 DXGI 桌面复制,这是标准路径;Linux 可任选 KMS/DRM(无桌面环境、支持 HDR 捕获)、NvFBC(X11 + NVIDIA,延迟最低)、XDG Portal、wlroots(Wayland)、KWin Screencast、X11;macOS 用 ScreenCaptureKit。
虚拟手柄与 HID 输入。客户端的手柄会被模拟成宿主的真实输入设备,Linux 与 Windows 支持 Xbox 360/One/Series、DualShock 4/5、Switch Pro 与通用手柄;Windows 上完整模拟依赖 Virtual HID Driver(付费机器授权),免费回退方案 ViGEmBus 只覆盖 Xbox 360 与 DS4。
HDR 串流。Windows 主机为正式支持,Intel、AMD、NVIDIA 的 HEVC Main 10 或 AV1 10-bit 编码均可;Linux 为实验支持,必须用 KMS 捕获且需要 HDR 合成器(Gamescope、KDE Plasma 6)。Moonlight 客户端侧要同步开启 HDR,否则画面会过曝。
Web UI 一站管理。配对、编码器参数、网络加密、日志排障全在网页完成,配置项支持搜索直达:
常用几项写在sunshine.conf里即可生效:
controller = enabled max_bitrate = 20000 upnp = enabled🎯 场景化调优:码率、编码与网络
场景一:局域网 1080p/60 默认体验不佳。默认max_bitrate = 5000(kbps)对高动态画面细节不足,调到 10000–20000 后噪点与马赛克明显减少。4K 场景建议 30000–50000,同时确认 GPU 编码占用没有顶满。
场景二:Linux Wayland 桌面选组合。按官方排障文档的推荐组合配置:KDE Plasma 或 GNOME 优先portal捕获 +vulkan编码;GPU 不支持 Vulkan 编码时改用非沙盒安装(发行版原生包)+portal/kwin捕获 +vaapi/nvenc编码。Flatpak/AppImage 这类沙盒包缺少CAP_SYS_NICE,EGL 上下文拿不到高优先级,高负载时硬件编码器会掉帧,日志里出现EGL: context priority set to HIGH but CAP_SYS_NICE capability is missing即中招。
场景三:跨公网访问。开启upnp = enabled自动打洞;路由器侧需保证 47998(UDP,串流主端口)与 Web UI 端口可达。加密用lan_encryption_mode/wan_encryption_mode分别控制局域网与外网策略。网络质量先用 iperf3 摸底:
iperf3 -s iperf3 -c <主机IP> -t 60 -u -R -b 50M串流对稳定性的要求高于带宽本身,丢包应低于 5%、抖动低于 1ms,不达标先解决网络再调编码。
各档位的推荐配置:
| 场景配置 | 推荐编码器 | max_bitrate (kbps) | 备注 |
|---|---|---|---|
| 1080p / 60fps 局域网 | NVENC / Vulkan | 10000–20000 | 默认 5000 细节不足 |
| 1440p / 60fps 局域网 | 同上 | 20000–30000 | 千兆有线 + iperf3 验证无丢包 |
| 4K / 60fps | 同上 | 30000–50000 | 编码占用高,预留 GPU 余量 |
| HDR / 10-bit | HEVC Main 10 / AV1 | 20000–40000 | Windows 主机正式支持,Linux 实验 |
带宽与连接方式的建议:
- 局域网一律有线,Wi-Fi 只作体验兜底
- 4K 串流要求千兆有线以上
- 公网串流受限于上行带宽,按上行速率的 60% 预估可用码率
- AMD 卡编码延迟偏高时确认 Mesa ≥ 24.2,Sunshine 会自动设置
AMD_DEBUG=lowlatencyenc低延迟编码模式,无需手动处理 - NVIDIA 卡可在控制面板开启 Fast Sync,AMD 在 Windows 上开 Enhanced Sync,各可再降约一帧延迟
🛠️ 高频踩坑速查
- Web UI 密码忘了,进不去后台→ 凭据存在本地配置文件,浏览器无法找回 → 终端执行
sunshine --creds 新用户名 新密码重置。 - Linux 连接后键盘鼠标手柄没反应→ 用户不在
input组或 udev 规则未加载 →sudo usermod -aG input $USER后重新登录,再sudo udevadm control --reload-rules。 - NVIDIA 卡 KMS 捕获全是黑屏→ 内核模块未启用 modeset → 内核启动参数加
nvidia_drm.modeset=1重启。 - Wayland 下 Portal 捕获突然失效,不再弹授权窗口→ 保存的 portal token 在崩溃或换显示器后失效 → Web UI 的 Troubleshooting 页点 Reset XDG Portal Capture,重新授权。
- NVIDIA 串流时画面间歇卡顿→ 驱动 Fast Sync 干扰采集 → 在 NVIDIA 控制面板关闭
vsync:fast。 - 客户端频繁 Buffer overrun 丢包→ 宿主网卡比链路最慢段快,突发数据灌爆中间设备缓存 → 升级到 0.23.1 以上(网络代码已优化),仍不行就降宿主网卡速率或用 tc 限速 Sunshine 流量。
排查时优先看 Web UI 的 Troubleshooting 标签页,每条 warning/error 都能点开看上下文,比翻终端日志快。
📚 生态与文档入口
- 安装与初始配置:各平台安装、配对流程、快捷键、HDR 说明
- 完整配置参考:所有配置项,含
max_bitrate、upnp、加密模式等 - 排障手册:凭据重置、输入失效、捕获失败等完整解法
- 性能调优:AMD Enhanced Sync、NVIDIA Fast Sync
- API 文档:面向开发者的接口参考
- 社区资源列表 与 实践指南:教程、第三方包汇总
Moonlight 客户端各平台下载入口可直接在 Web UI 的 Featured Apps 标签页找到,不必到处搜:
Sunshine 把任何有 GPU 的 PC 变成自托管游戏串流服务器,配置全在 Web UI 可视化管理。按上面的命令装好,打开 Moonlight 客户端试第一次串流。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考