Sunshine 游戏串流主机 30 分钟从安装到串出第一帧画面
2026/9/12 12:45:29 网站建设 项目流程

Sunshine 游戏串流主机 30 分钟从安装到串出第一帧画面

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

场景切入 + 一句话定位

客厅电视很大,主机却塞在书房,抬过来太沉,跨房间拉 HDMI 太乱,再买一块显示硬件更贵。你只想把主机画面推到电视上,坐在沙发上把昨晚的进度续完。

Sunshine 是一个自托管游戏串流主机(self-hosted game stream host):装在这台主机上,负责采集画面、硬件编码,把流推到局域网里任意一台 Moonlight 客户端上。

跑通标准

带着目标往下看,三条全部满足才算成功:

  • 客户端设备(手机、平板、电视盒子都行)打开 Moonlight,主机出现在设备列表里。
  • 点进列表里自带的Desktop条目,客户端屏幕上出现主机桌面的实时画面,键鼠操作有响应
  • 主机端装完服务后不需要你做任何额外操作,它在那儿待命。

三条都做到,说明采集、编码、传输、配对四条链路全部打通,后面只是加应用和调参数。

事实速查

维度内容
主机端平台Windows、Linux、FreeBSD;macOS 实验性且不支持手柄
编码通路NVENC、QuickSync、AMF、VAAPI、Vulkan Video、VideoToolbox,CPU 软编码兜底,默认自动选第一个可用
画面采集Windows 走桌面复制 API;Linux 可选 NvFBC、KMS、X11、Wayland、KWin、Portal 后端;macOS 走系统屏幕录制
管理入口浏览器 Web UI,地址https://localhost:47990
费用开源免费、自托管,无账号无订阅

与云端串流的本质区别一句话:编码跑在你自己的机器上,画质上限留在局域网里,隐私和钱都不经过第三方。

最短路径

阶段一:装主机端软件

📌 Step 1|按系统拿安装包

  • Windows:到 Release 页面下Sunshine-Windows-AMD64-installer.msi,双击安装,防火墙规则由安装器自动写入,不用手动加。
  • Linux:按发行版选 deb、copr 或 pacman 包。
  • macOS:把 DMG 里的Sunshine.app拖进 Applications。

官方安装包已经把采集后端、编码库、输入驱动都打包好了,你不用自己挑依赖。

📌 Step 2|Flatpak 用户补一步

Flatpak 装完必须再执行下面这条,补装输入依赖,否则键鼠注入会缺组件:

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

检查点:安装程序正常退出,无报错弹窗。

阶段二:把服务跑起来

📌 Step 3|启动服务

Windows 上 MSI 已把 Sunshine 注册成系统服务并开机自启,这步直接跳过。Linux 手动拉起:

systemctl --user start app-dev.lizardbyte.app.Sunshine

想开机自启,再加一条:

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

macOS 首次启动会弹屏幕录制和麦克风授权,两个都点允许,否则后面采集不到画面。

检查点:进程在后台活着。Linux 用systemctl --user status app-dev.lizardbyte.app.Sunshine确认状态为 running。

阶段三:建账号、配对、出画面

📌 Step 4|建管理员账号

浏览器打开https://localhost:47990。页面报"不安全"是正常的,自签名证书所致,忽略即可。首次进入会让你设置管理员用户名和密码——记好,配对全靠它。

📌 Step 5|Moonlight 端配对

客户端设备打开 Moonlight,它会自动扫到局域网里的主机。首次连接 Moonlight 会弹一个四位 PIN 码:回到 Web UI 顶部导航的 PIN 页输入,顺手给设备起个名字,看到成功提示即配对完成。配对建立的是 Moonlight 与主机的信任关系,之后的连接不再要码。

检查点:Moonlight 里点 "Desktop",客户端屏幕出现主机桌面,画面和声音都到位。第一帧,串出来了。

隐性坑点

同一时间全局只有一条流:新串流启动会默认终止上一个在跑的应用,同时只有一条。共用时谁在串谁用,用完退出会话。

Steam 这类启动命令别直写:Steam 进程会立即退出,流刚开就断。在应用配置里勾上detached(脱离式启动)。

Flatpak 环境忘加前缀:沙箱里找不到宿主程序,命令必须加flatpak-spawn --host前缀。

应用路径别写死:路径支持$(HOME)这类环境变量写法,写死路径换用户就失效。

想静音主机扬声器别动audio_sink:它决定采哪个声卡,改了就换了采集源。改用virtual_sink指向虚拟声卡。

新应用在这一页添加。三个关键参数,只在需要时动:

  • max_bitrate:默认0,含义是码率完全由 Moonlight 请求说了算 → 只有想在主机端给带宽封顶时才改 → 比如5000(Kbps)。
  • encoder:默认自动选第一个可用编码器 → 只有排障时才手动指定nvencamdvcevaapivulkansoftware→ 日常留空。
  • nvenc_preset1(最快)到7(压缩率最高),默认1→ 只有网络或客户端解码顶不住时才调大 → 多数情况下提高码率比调 preset 划算。

配置页顶部有搜索框,几百个设置项直接输bitrate就能定位,不用翻菜单。

对号入座

  • 如果你是轻薄本显卡带不动 3A 的人:用它当解码显示端,串流书房主机跑游戏。前提:两台设备同一局域网且网络稳定,客户端分辨率按自身屏幕设即可。
  • 如果你不玩游戏、只想要一块大屏:主机当家庭影音节点,把 Desktop 串到电视上放本地片源。不用动编码参数,静态内容带宽占用很小。
  • 如果你是一家人共用一台主机:每个成员在自己的 Moonlight 设备上独立配对,Web UI 里各记各的设备名。前提:所有人同一局域网。

故障速查

症状最可能原因一条修复动作验证方式
https://localhost:47990打不开防火墙拦了 47990Windows 先确认 MSI 写入的防火墙规则还在,临时关防火墙验证一次重新开启防火墙后页面仍可打开
Moonlight 发现不了主机不在同一局域网,或服务没在跑Linux 执行systemctl --user status app-dev.lizardbyte.app.Sunshine确认 running,再核对两台设备同网段Moonlight 设备列表出现主机
串流卡顿、掉帧大概率是网络,不是 Sunshine跑 iPerf3 体检,命令见下丢包低于 5%、抖动低于 1ms
忘了管理员密码凭据丢失sunshine --creds {新用户名} {新密码}直接重置用新凭据登录 Web UI

体检先在主机端起服务端:

iperf3 -s

客户端侧测速(把主机 IP 换进去,UDP 反向测 60 秒):

iperf3 -c <主机IP> -t 60 -u -R -b 50M

目标值:丢包低于 5%、抖动低于 1ms。丢包高的典型诱因是"两头速度不匹配",比如 2.5G 网卡配 WiFi 客户端:降一档网卡速率,或把主机改回有线,通常立刻见效。

还不解,看日志:Web UI 的 Troubleshooting 页内置日志与告警导航;日志文件 Windows 在%ProgramFiles%\Sunshine\config\sunshine.log,Linux/macOS/FreeBSD 在~/.config/sunshine/sunshine.log,Docker 用docker logs sunshine

收尾 + 下一步

  • 稳定性比峰值带宽更决定体验:动手调画质之前先跑一次 iPerf3。
  • 编码器自动选择日常够用:手动指定只留给排障场景。
  • 码率 0 等于听客户端的:只有要封顶带宽才去碰max_bitrate
  • 想走出局域网先开门upnp默认disabled,公网连不进来,确认改成enabled

现在就拿第二台设备配一次对,再往应用列表里加一条真实游戏,完整走一遍"配对 → 启动 → 串流 → 退出"。

想深入:完整参数表见 docs/configuration.md,疑难杂症索引见 docs/troubleshooting.md,各平台采集与编码实现在 src/platform/ 目录。

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

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

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

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

立即咨询