Sunshine 游戏串流从装机到出画面:30 分钟最短路径
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
主机塞在书房桌下,你却想瘫在客厅沙发续昨晚的进度。抬机器太沉,跨房间拉 HDMI 太乱,再买一套显示硬件更贵。Sunshine 自托管游戏串流服务端一次性解决这事:主机端负责采集画面、硬件编码,走局域网把流推到手机、平板或电视上,开源免费,30 分钟内能串出第一帧。
动手前的验收标准与准备
跑通长什么样,三条全满足才算成功:
- 客户端设备(手机、平板、电视盒子)打开 Moonlight,主机出现在设备列表里
- 点列表里的 "Desktop" 条目,屏幕出现主机桌面实时画面,键鼠有响应
- 主机端装完服务后全程待命,不需要你做任何额外操作
需要备好的前提:
- 主机支持 Windows、Linux 或 macOS(macOS 为实验性,暂不支持手柄)
- 两台设备在同一局域网,网络稳定
- 客户端设备能装 Moonlight
核心操作路径
下载安装包
按系统拿官方安装包:Windows 到 Release 页下Sunshine-Windows-AMD64-installer.msi,双击安装,防火墙规则安装器自动写入;Linux 按发行版选 deb、rpm 或 flatpak 包;macOS 把 DMG 里的Sunshine.app拖进 Applications。
Flatpak 用户多敲一条,补装输入依赖,否则键鼠注入缺组件:
flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine安装程序正常退出、无报错弹窗,这步就成了。
把服务拉起来
Windows 上 MSI 已注册成系统服务、开机自启,这步跳过。Linux 手动启动:
systemctl --user start app-dev.lizardbyte.app.Sunshine systemctl --user --now enable app-dev.lizardbyte.app.Sunshine第一条是这次启动,第二条是开机自启。macOS 首次启动会弹屏幕录制和麦克风授权,都点允许,否则后面采集不到画面。跑systemctl --user status app-dev.lizardbyte.app.Sunshine,状态显示 running 就对了。
建管理员账号
服务活着之后,浏览器打开https://localhost:47990。页面提示"不安全"是正常现象,自签名证书所致,忽略即可。首次进入会让你设置管理员用户名和密码,记好它,配对全靠这套凭据。
配对出画面
客户端设备打开 Moonlight,它会自动扫到局域网里的主机。首次连接时 Moonlight 弹一个四位 PIN 码,回到 Web UI 顶部导航的 PIN 页输入,顺手给设备起个名字,看到成功提示即配对完成。再点 "Desktop",屏幕出现主机桌面,画面声音都到位——第一帧,串出来了。
常用参数与反直觉默认值
只挑你大概率会碰的四个:
max_bitrate
- 是什么:主机端编码码率上限(Kbps)
- 默认值:
0,码率完全由 Moonlight 请求决定 - 何时改:想给带宽封顶时才填,比如
5000
encoder
- 是什么:强制指定编码器(nvenc / quicksync / amdvce / vaapi / vulkan / software)
- 默认值:空,自动选第一个可用编码器
- 何时改:排障时才手动指定,日常留空
nvenc_preset
- 是什么:NVENC 性能预设,1 最快,7 压缩率最高
- 默认值:
1 - 何时改:网络或客户端解码顶不住时,多数情况提高码率比调它划算
upnp
- 是什么:让 Sunshine 自动为公网串流开端口
- 默认值:
disabled - 何时改:要走出局域网时才设
enabled
配置页顶部有搜索框,几百个设置项直接输bitrate就能定位,不用翻菜单。
默认行为里藏着的四个坑
- 同一时间全局只有一条串流,新串流会终止上一个在跑的应用 → 想多人用只能轮流 → 谁在串谁用,用完退出。
- Steam 这类进程启动命令会立即退出,流刚开就断 → 应用配置里没勾
detached→ 勾上脱离式启动。 - Flatpak 环境里宿主程序找不到 → 沙箱隔离了命令 → 命令前加
flatpak-spawn --host前缀。 - 改
audio_sink想让主机静音,声音照放 → 它只决定采哪个声卡 → 改用virtual_sink指向虚拟声卡。
两个真实用法
旧本带不动 3A 的人:主机端串流书房主力机,客户端分辨率按自己屏幕设,硬前提是两台设备同一局域网且网络稳定。
只想要一块大屏的人:Applications 页自带的 Desktop 条目直接串到电视,放本地片源、看网页;max_bitrate保持默认0就行,静态内容带宽占用很小。
一家人共用一台主机的人:每个成员在自己的 Moonlight 设备独立配对,Web UI 里各记各的设备名;硬前提是同时只有一条流,谁连着谁用。
卡住了先翻这里
| 你看到什么 | 最可能的原因 | 做这一个动作 |
|---|---|---|
https://localhost:47990打不开 | 防火墙拦了 47990 端口 | Windows 确认 MSI 写入的防火墙规则还在,临时关防火墙验证一次 |
| Moonlight 发现不了主机 | 不在同一局域网,或服务没跑 | Linux 跑systemctl --user status app-dev.lizardbyte.app.Sunshine确认 running |
| 串流卡顿、掉帧 | 大概率是网络,不是 Sunshine | 主机端跑iperf3 -s,客户端跑iperf3 -c <主机IP> -t 60 -u -R -b 50M,目标丢包低于 5% |
| 忘了管理员密码 | 凭据丢失 | 不用重装,sunshine --creds {新用户名} {新密码}直接重置 |
日志在 Web UI 的 Troubleshooting 页直接看,也能翻文件:Windows 在%ProgramFiles%\Sunshine\config\sunshine.log,Linux/macOS/FreeBSD 在~/.config/sunshine/sunshine.log。还有疑问就去项目社区的 issue 区搜,重复坑大多有人踩过。
收尾
- 编码器拿不准就留空
- 码率 0 表示听 Moonlight 的
- 卡了先跑网络体检再怪软件
- 公网串流前先开
upnp
现在就拿第二台设备配一次对,再往应用列表里加一条真实游戏,完整走一遍"配对 → 启动 → 串流 → 退出"。
- 完整参数表
- 疑难杂症索引
- 各平台编码与采集实现
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考