不花一分钱把游戏搬到任何屏幕:Sunshine 串流从零到上手,5 个问题一次讲透
不花一分钱把游戏搬到任何屏幕:Sunshine 串流从零到上手,5 个问题一次讲透
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一款完全开源、免费的自托管游戏串流服务器,专门给 Moonlight 客户端当"后台"。它把你 PC 里的游戏画面实时编码成视频流,推送到手机、平板、电视等任何设备,你的按键和摇杆操作再从远端传回来——相当于把你的电脑变成一台私有云游戏机房,游戏库、画质参数、数据隐私全部自己说了算。这篇文章不打算按"第一步、第二步"的教程腔来写,而是用 5 个你最关心的问题,带你把整套流程跑通。
它到底是什么?凭什么说"零成本"?
先想象一个场景:晚上加班回家,你瘫在沙发上,想继续推《星露谷》的进度,可游戏装在书房那台 PC 里。以前解决这个问题,无非三种笨办法——把主机搬到客厅(接线、占地方)、买云游戏会员(按月付费、游戏库还受限)、用远程桌面(延迟高到根本没法玩)。
Sunshine 走的是第四条路:串流。它让电脑负责两件事——渲染游戏画面,再用显卡的硬件编码器(NVIDIA 的 NVENC、AMD 的 AMF、Intel 的 QuickSync,Linux 上还有 VAAPI 和 Vulkan Video,macOS 走 Video Toolbox)把画面压成视频流;Sunshine 负责把视频流推给远处的 Moonlight 客户端,客户端解码显示,同时把手柄、键盘的输入回传。因为编码发生在显卡硬件里,CPU 占用很低,画面损耗也小,局域网环境下延迟几乎可以忽略不计。
所以它"零成本"体现在两个层面:一是软件本身免费开源、无隐藏费用;二是你的游戏库原封不动,不用为每个游戏重新买授权。硬件门槛也不高——一颗 4 核以上 CPU、8GB 内存,加一块支持硬件编码的显卡(NVIDIA GTX 1050 及以上、AMD RX 550 及以上、Intel 核显即可)就能流畅跑起来。系统方面,Windows、Linux、macOS、FreeBSD 全覆盖,甚至没有独立显卡时还有软件编码兜底。
💡 想研究编码底层实现,可以翻翻源码里的 src/nvenc/ 目录;各平台的功能支持对照表在仓库根目录 README.md 里。
从下载到登录,最快几分钟能跑起来?
Sunshine 在各大系统上都有现成安装包,挑一条执行就行:
# Windows:推荐,自带自动更新 winget install LizardByte.Sunshine # macOS:Homebrew 方式 brew install sunshine # Linux:Flatpak 通用方式,适配绝大多数发行版 flatpak install flathub dev.lizardbyte.app.Sunshine # Docker:适合 NAS、服务器这类常驻环境 docker pull lizardbyte/sunshine想从源码编译、按自己的需求定制构建参数,也可以 clone 官方仓库后照着 docs/building.md 来:
git clone https://gitcode.com/GitHub_Trending/su/Sunshine装完之后,Sunshine 会作为系统服务常驻后台。这时候打开浏览器,访问http://localhost:47990,你会看到它的 Web 管理后台——这就是整个串流系统的"总控制台"。
首次登录只需做两件小事:
- 用户名默认是
sunshine,直接沿用 - 设置一个 12 位以上的强密码(大小写字母 + 数字 + 特殊符号都来点),这是整套系统唯一的门锁,请务必记牢
登录后可以在右上角切换界面语言和深浅主题,夜间在客厅大屏上操作时,深色模式会舒服很多。配置项也能靠顶部搜索框秒定位,比如输入"Upnp"就能直接跳到自动端口转发开关。
⚠️ 如果用 Docker 部署,记得映射47989、47990等端口,并挂载配置目录,否则管理后台和串流端口都会"失联"。
手机第一次怎么"认出"它?配对其实只有两步
服务端就绪,接下来轮到客户端。Moonlight 是 Sunshine 的官方搭档,覆盖 Android、iOS、Windows、macOS、智能电视和树莓派等几乎所有平台。
配对流程简单到可以概括成两步:
- 在目标设备装上对应的 Moonlight 客户端,确保和 Sunshine 主机在同一个局域网里;
- 打开客户端,它会自动发现名为 "Sunshine" 的主机;点击后,回到 Sunshine 后台的 "PIN" 页面拿一个配对码,输入就完成了绑定。
| 你手里的设备 | 装哪个客户端 | 一句话亮点 |
|---|---|---|
| Android 手机 / 平板 | Moonlight Android | 自带虚拟触控手柄,通勤路上也能玩 |
| iPhone / iPad | Moonlight iOS | 触控和实体手柄都支持,画面顺滑 |
| Windows / Mac 电脑 | Moonlight PC | 画质上限最高,支持 4K HDR |
| 智能电视 / 树莓派 | Moonlight Embedded | 客厅大屏的最佳选择 |
配对成功后,主机就会出现在客户端列表里,点进去就能看到应用列表。整个过程不需要敲命令行、不需要手动配端口,局域网环境下就是开箱即用。
想玩的不止桌面?三个字:加应用
默认情况下,Sunshine 已经内置了 "Desktop"(桌面串流)和 "Steam" 两个入口,你可以先拿桌面串流试试水。但更讲究的做法,是为每个游戏单独建一个入口,让客户端列表干净又清晰。
在后台 "Applications" 页面点 "Add New",填上名称和启动命令即可:
- Steam 大屏模式:启动命令填
steam://open/bigpicture,手柄操作的游戏库直接进入大屏界面; - 独立游戏:直接指向游戏的可执行文件,比如
D:\Games\Hades\Hades.exe; - 模拟器:指向 RetroArch 这类模拟器主程序,把核心参数顺手写在启动参数里。
更省心的是 "Featured Apps" 精选页,官方把常用的 Moonlight 客户端和配套工具分门别类列好,点 "Get" 就能直达下载,相当于内置了一个串流生态应用商店。
画面糊、延迟高?先动这三个参数
串流体验好不好,九成取决于参数调得对不对。好在编码器不用你操心——Sunshine 会自动识别显卡并选择对应的硬件编码器。你真正需要关心的只有三件事:码率、帧率、分辨率。
以 HEVC 编码为例,下面这张速查表可以当起点参考:
| 分辨率 | 帧率 | 码率区间 | 适合的场景 |
|---|---|---|---|
| 720p | 60fps | 5–10 Mbps | 手机流量、弱网环境 |
| 1080p | 60fps | 15–25 Mbps | 标准游戏体验 |
| 1440p | 120fps | 25–50 Mbps | 高刷显示器 |
| 4K | 60fps | 50–100 Mbps | 客厅大屏 + 有线网络 |
几个立竿见影的延迟优化小技巧,我建议按顺序试:
- 优先用有线网络;WiFi 至少上 5GHz 频段,别挤在 2.4GHz;
- 路由器开启 QoS,把游戏流量优先级提到最高;
- 帧率尽量匹配游戏原生帧率(60/120/144),别让编码器做多余的帧率转换;
- 如果客户端和主机都支持 HDR,确认两端设置一致,否则画面会发灰。
这些参数全都能在后台 "Configuration" 页面用搜索框快速定位,改完点 Save 即时生效,不需要重启服务。
连不上、手柄没反应?按这个顺序自查
就算配置再顺,偶尔也会翻车。把最高频的四个问题按排查顺序列给你:
问题一:客户端发现不了 Sunshine 主机先看防火墙是否放行47989、47990端口;再确认两台设备在同一个子网;最后检查路由器是否开了 UPnP,或者手动做端口转发。
问题二:画面卡顿、掉帧把码率降一档试试;关掉正在跑的下载、直播等占带宽的应用;更新显卡驱动——编码器性能往往随驱动更新而提升。
问题三:花屏或画面发灰优先排查 HDR 开关是否两端一致;再尝试把编码器从 HEVC 切回 H.264 做个对比。
问题四:手柄没反应Windows 主机需要在后台 "Troubleshooting" 页面安装 ViGEmBus 虚拟手柄驱动——这是 Sunshine 把客户端手柄"映射"给系统用的桥梁,一键即可完成安装。Linux/macOS 则一般开箱即用。
如果问题依旧,直接看日志。Sunshine 的日志界面自带搜索和错误高亮,"Encoder not found" 这类报错会直接标红,定位问题比翻文件快得多。日志文件的位置也给你备好:
| 系统 | 日志路径 |
|---|---|
| Windows | %ProgramFiles%\Sunshine\config\sunshine.log |
| Linux / macOS | ~/.config/sunshine/sunshine.log |
| Docker | docker logs sunshine |
完整的排障手册在 docs/troubleshooting.md,疑难杂症可以对照着查。
玩熟之后的三个加分项
基础串流跑通后,这几件事能让体验再上一个台阶:
- 多显示器按场景切换:主机同时接着电视和显示器时,可以在配置里指定串流用哪一块、是否随客户端自动切换主屏,实现"客厅用电视、书房用显示器"互不打扰;
- 手柄自由映射:Xbox、PlayStation、Switch Pro 手柄都支持,Linux/macOS 下手柄配置文件位于
~/.config/sunshine/gamepads/,需要精细按键映射时可以直接编辑; - 走出家门也能玩:局域网串流天然低延迟,但想在外网访问,我更推荐用 ZeroTier、Tailscale 这类组网工具把设备拉进同一个虚拟局域网,而不是把公网端口直接暴露出去——既安全又保留低延迟体验。
更详细的参数说明可以看 docs/configuration.md 和 docs/performance_tuning.md。
今晚就能跑起来的行动清单
到这里,整套流程你已经全部掌握了。按下面这份清单,今晚就能玩上:
- 用对应命令装好 Sunshine
- 浏览器打开
localhost:47990,设好强密码 - 手机或平板装 Moonlight,完成 PIN 配对
- 添加想玩的游戏入口,或者先用桌面串流
- 按设备调整码率和帧率
- 开玩,然后按需探索多屏、手柄和外网玩法
游戏不应该被锁在电脑桌前。Sunshine 免费、开源、自托管,你的游戏库和隐私都在自己手里——现在就动手,让家里的每一块屏幕,都成为你游戏库的窗口。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
