Sunshine 游戏串流完整指南:把 PC 变成 Moonlight 串流服务器
2026/9/20 6:34:06 网站建设 项目流程

Sunshine 游戏串流完整指南:把 PC 变成 Moonlight 串流服务器

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

按下电视前遥控器上的播放键,三米外游戏 PC 里的《艾尔登法环》立刻开始运行——这就是 Sunshine 游戏串流的效果。Sunshine 是一个自托管的游戏串流主机:跑在你的游戏 PC 上,把桌面画面用硬件编码压缩,推给 Moonlight 客户端(Moonlight 装在电视、平板或手机上,负责显示画面并回传键鼠手柄输入)。开源、免费、无订阅费。本文按"第一次跑通 → 按硬件选配置 → 典型用法 → 出问题怎么办"的顺序,带你把它用起来。

🚀 第一次跑通:从安装到 Moonlight 配对成功

这节帮你解决"第一次把它装好、连上"的问题。全程大约十分钟。

安装,按你的系统选一条。Linux 用户推荐 Flatpak,装完执行一次附加安装脚本:

flatpak install --system flathub dev.lizardbyte.app.Sunshine flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine

Windows 可用winget install LizardByte.Sunshine,macOS 用 Homebrew 的 sunshine 包,Debian/Ubuntu 也可以直接装官方 .deb 包。各平台完整安装包(AppImage、.rpm、FreeBSD pkg 等)见 docs/getting_started.md。

启动。没装成服务时直接在终端跑sunshine;Linux 上建议起一个用户服务,开机自动跑:

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

打开 Web UI。浏览器访问https://localhost:47990,提示"不安全网站"是正常的——它用的是自签名证书,点继续即可。首次进入会要求你创建用户名和密码,这是后台的唯一入口,当场记下来。

客户端配对。在电视或手机上的 Moonlight 客户端里添加这台主机,客户端会显示一个 PIN;把它填进 Sunshine Web UI 顶部的 PIN 页面,顺手给设备起个名字,配对完成,就能开始串流了。

编码器怎么选:按显卡对号入座

这节帮你解决"我的显卡该用哪种编码方式"的问题。串流的核心动作是把画面压成视频流,硬件编码(NVENC、AMF 这类 GPU 上的专用编码模块)不占 CPU,画质和帧率都更好;软编(CPU 编码)是兜底方案,1080p 下 CPU 占用会明显上升,能硬编就别硬扛。

你的显卡选它说明
NVIDIANVENCWindows / Linux 都支持,Linux 端核心实现在 src/nvenc/
AMDWindows 选 AMF,Linux 选 VAAPIVAAPI 是 Linux 通用的视频加速接口
IntelWindows 选 QuickSync,Linux 选 VAAPI核显同样有独立编码单元
Apple 芯片VideoToolboxmacOS 平台,官方标记为实验性
没有独显 / 都不支持软编(CPU)三平台兜底,注意 CPU 开销

Web UI 的 AudioVideo 页签里可以随时切换编码器。另一件事和编码相关:HDR 串流在 Windows 上是正式功能,Linux 上仍是实验性的,需要 Intel/AMD 显卡 + VAAPI 的 HEVC Main 10 或 AV1 10-bit 编码 + KMS 捕获后端 + 支持 HDR 的合成器(如 Gamescope、KDE Plasma 6)。主机开了 HDR 而 Moonlight 客户端没开,画面会过曝发白——两端要同时开,细节见 docs/getting_started.md 的 HDR 章节。

把游戏加进串流列表:客户端一键启动

这节帮你解决"Moonlight 里想看到哪些入口"的问题。Moonlight 客户端显示的应用列表来自 Sunshine,Web UI 里点 "Add New" 就能添加:填应用名、可执行文件路径、工作目录,还可以加prep-cmd(启动前执行的命令,比如先切显示器分辨率)。Linux 默认的"桌面"和"Steam 大屏模式"两个入口就来自内置的 src_assets/linux/assets/apps.json。

三条行为规则,配应用前先知道:

  • 启动新应用时,正在串流的应用会被先终止;
  • prep-cmd执行失败,这次启动直接放弃;
  • 应用退出,串流随之结束。

典型用法:4K 电视串 Steam 大屏。确认列表里有 "Steam Big Picture"(默认自带,没有就按上面方法手动加,命令用steam steam://open/bigpicture),AudioVideo 页签把分辨率设成电视原生(如 3840×2160),码率按你的网络带宽调,具体推荐值参考 docs/performance_tuning.md。电视上的 Moonlight 里选 "Steam Big Picture" 启动即可。另外,每个配置项都能用 Web UI 顶部的搜索框直接搜到,不用一页页翻。

无头主机:不接显示器的 PC 怎么串流

这节帮你解决"游戏 PC 没接显示器,人在远处,如何拉起串流"的问题。Linux/X11 环境下,SSH 进去手动指定显示设备再启动就行:

ssh <user>@<主机IP> 'export DISPLAY=:0; sunshine'

注意一点:没有物理显示器时,部分显卡会认为"没有输出"而停掉渲染。NVIDIA 显卡走 NvFBC 捕获,通常需要一个 HDMI 欺骗器或 EDID 模拟器让显卡保持输出状态。这套无头方案的完整步骤(包括 X11 自登录、服务化)在 docs/getting_started.md 里有专门章节。

⚠️ 排障:连不上、卡顿、没输入怎么办

这节帮你解决"串流体验不对,先查什么"的问题。先说一条判断原则:串流卡顿八成是网络问题,不是编码问题。Sunshine 每 16ms 突发发一帧(对应 60fps),路径上任何一台设备带宽或缓冲不够就会丢数据——典型如主机是 2.5Gb 有线、客户端只有 1Gb 或 Wi-Fi。所以先量网络:主机起iperf3服务端,客户端做 60 秒 UDP 反向测试:

iperf3 -s # 主机 iperf3 -c {主机IP} -t 60 -u -R -b 50M # 客户端

看客户端输出:理想情况丢包低于 5%、抖动低于 1ms。不达标,先换 5GHz Wi-Fi 或改有线;确认是两端速率差(2.5G vs 1G)导致,就把主机网卡降速到 1G,或升级到 0.23.1 之后的版本(改进了突发传输)。

其余高频问题按现象对号:

现象最可能的原因先做什么
浏览器打不开 47990防火墙挡了端口,或服务没在跑先查服务状态,再放行 47990 端口
忘了 Web UI 账号密码凭据只存在本地,没有云端找回停掉 Sunshine 后用--creds重置(见下)
Linux 上键鼠/手柄没反应运行用户没有 uinput 权限把用户加进input组并重新登录
画面发白过曝客户端没开 HDR,流按 SDR 解码Moonlight 设置里启用 HDR,主机端确认 HDR 已激活

重置凭据的命令是sunshine --creds {新用户名} {新密码}(Flatpak 环境用flatpak run --command=sunshine dev.lizardbyte.app.Sunshine前缀),停止服务执行即可。完整的网络测试、丢包处理和各平台细节都在 docs/troubleshooting.md。

最后养成一个习惯:出问题先打开 Web UI 的 Troubleshooting 页,每条 warning/error 都能点开看细节,比翻论坛快得多。

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

立即咨询