Sunshine 实操指南:5 步搭好低延迟游戏串流服务器
2026/9/20 2:45:52 网站建设 项目流程

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 sunshine

Fedora/openSUSE 用官方源sudo dnf install Sunshine,Arch 用 pacman-repo 的pacman -S sunshine(已含 CUDA 支持)。装好后以 systemd 用户服务自启:

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

macOS 安装

brew tap LizardByte/homebrew brew install sunshine

macOS 版目前是实验性质,首次启动需授予屏幕录制与麦克风权限;虚拟手柄暂不支持,键盘鼠标可用。

📱 第一次串流:Web UI、PIN 配对与添加游戏

启动 Sunshine 后,浏览器访问https://localhost:47990(自签名证书,忽略浏览器警告),首次进入会要求设置用户名密码,记牢它。

接下来四步完成首次串流:

  1. 在 Applications 页面添加游戏或应用("Desktop" 应用不启动程序,直接串桌面,适合先验证链路)
  2. 在 Moonlight 客户端添加这台主机,客户端会请求 PIN
  3. 回到 Web UI 顶部导航的 PIN 入口,输入 PIN 并给设备命名
  4. 在 Moonlight 中选择刚添加的应用,开始串流

添加应用时注意工作目录和命令写法:启动命令失败会中止启动;以cmd方式运行 Steam 这类自身即子进程的应用会立即断流,detached方式不受影响。快捷键与 Moonlight 一致,Ctrl+Alt+Shift+N隐藏光标,Ctrl+Alt+Shift+F1/F12切换串流显示器。

🎮 五个值得用的核心能力

多 GPU 硬件编码矩阵。按显卡自动选择最优编码器,也可用encoder配置项强制指定:

编码器适用平台
NVENCWindows / Linux(NVIDIA)
VAAPILinux(Intel / AMD / NVIDIA)
QuickSync、AMFWindows(Intel / AMD)
VideoToolboxmacOS
软件编码全平台兜底

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 / Vulkan10000–20000默认 5000 细节不足
1440p / 60fps 局域网同上20000–30000千兆有线 + iperf3 验证无丢包
4K / 60fps同上30000–50000编码占用高,预留 GPU 余量
HDR / 10-bitHEVC Main 10 / AV120000–40000Windows 主机正式支持,Linux 实验

带宽与连接方式的建议:

  • 局域网一律有线,Wi-Fi 只作体验兜底
  • 4K 串流要求千兆有线以上
  • 公网串流受限于上行带宽,按上行速率的 60% 预估可用码率
  • AMD 卡编码延迟偏高时确认 Mesa ≥ 24.2,Sunshine 会自动设置AMD_DEBUG=lowlatencyenc低延迟编码模式,无需手动处理
  • NVIDIA 卡可在控制面板开启 Fast Sync,AMD 在 Windows 上开 Enhanced Sync,各可再降约一帧延迟

🛠️ 高频踩坑速查

  1. Web UI 密码忘了,进不去后台→ 凭据存在本地配置文件,浏览器无法找回 → 终端执行sunshine --creds 新用户名 新密码重置。
  2. Linux 连接后键盘鼠标手柄没反应→ 用户不在input组或 udev 规则未加载 →sudo usermod -aG input $USER后重新登录,再sudo udevadm control --reload-rules
  3. NVIDIA 卡 KMS 捕获全是黑屏→ 内核模块未启用 modeset → 内核启动参数加nvidia_drm.modeset=1重启。
  4. Wayland 下 Portal 捕获突然失效,不再弹授权窗口→ 保存的 portal token 在崩溃或换显示器后失效 → Web UI 的 Troubleshooting 页点 Reset XDG Portal Capture,重新授权。
  5. NVIDIA 串流时画面间歇卡顿→ 驱动 Fast Sync 干扰采集 → 在 NVIDIA 控制面板关闭vsync:fast
  6. 客户端频繁 Buffer overrun 丢包→ 宿主网卡比链路最慢段快,突发数据灌爆中间设备缓存 → 升级到 0.23.1 以上(网络代码已优化),仍不行就降宿主网卡速率或用 tc 限速 Sunshine 流量。

排查时优先看 Web UI 的 Troubleshooting 标签页,每条 warning/error 都能点开看上下文,比翻终端日志快。

📚 生态与文档入口

  • 安装与初始配置:各平台安装、配对流程、快捷键、HDR 说明
  • 完整配置参考:所有配置项,含max_bitrateupnp、加密模式等
  • 排障手册:凭据重置、输入失效、捕获失败等完整解法
  • 性能调优: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),仅供参考

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

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

立即咨询