把 PC 游戏串到客厅电视:Sunshine 自托管游戏串流 15 分钟上手
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
晚上窝在沙发上,用电视当屏幕、手柄当控制器,把电脑上的 3A 大作直接串过来玩——这就是 Sunshine 干的事。它是一款免费、开源、自托管的游戏串流服务器(self-hosted game stream host),本身不显示画面,需要搭配 Moonlight 客户端来解码播放;所有数据都留在你自己家里,不经过任何第三方云端。
它是怎么工作的,以及谁适合用
这一节回答"东西到底怎么传过来"和"要不要装它"。
Sunshine 和 Moonlight 是分工关系:装在游戏主机上的 Sunshine 负责抓取屏幕、用显卡把画面实时编码成视频流,再把你的键盘、鼠标、手柄操作反向传回去;装在看端设备上的 Moonlight 负责解码并显示,你操作 Moonlight 就像在直接操作那台主机。两者之间只有一条视频流,不上传、不落地到云端,延迟主要取决于你家的网络和主机的编码能力。
几类典型场景都能覆盖:
- 客厅大屏:把主机串到电视或盒子(Moonlight TV / 机顶盒客户端)上,沙发玩 3A。
- 移动设备:手机、平板在地铁或床上接着玩同一存档。
- 轻量盒子:树莓派 + Moonlight Embedded 接 HDMI 投屏,变成一台廉价串流终端。
Windows、Linux 都正式支持,macOS 是实验性支持且手柄暂不可用,装之前先留意这一点。
跑通第一次串流:从安装到点亮第一个应用
这一节是一条时间线,跟着做完就能看到画面。
第一步:按系统装主机端 Sunshine。官方二进制包最省心,去对应系统取包即可。Windows 下选 AMD64/x64 的.msi安装程序,装完会自动注册成系统服务并开机自启(ARM64 版偏实验性,不推荐日常用)。Linux 上 Debian/Ubuntu 用.deb装:
sudo dpkg -i ./sunshine-{distro}-{version}-{arch}.debFedora 可以走 copr 仓库装;macOS 则把.dmg里的Sunshine.app拖进"应用程序",首次启动要授予屏幕录制和麦克风权限。装好后 Sunshine 以后台服务形式常驻。
第二步:打开管理界面建账户。浏览器访问https://localhost:47990(把localhost换成主机的局域网 IP 也行)。首次打开会提示证书不受信任,这是自签证书,忽略即可。跟着向导设置管理员用户名和密码——这套凭证只出现这一次,务必记下来。
第三步:在 Moonlight 端配对。客户端默认会自动发现局域网里的 Sunshine;如果列表里没出现,就手动添加主机 IP。Moonlight 弹出配对请求时,回 Sunshine 界面顶部导航栏的PIN一项,把它显示的数字填进客户端,再给这台设备起个名字,配对即完成。PIN 会定期刷新,始终以 Sunshine 界面当前显示的数字为准。
第四步:启动第一个应用。管理界面里默认就带一个 "Desktop" 应用,它不启动任何程序、直接串整个桌面,最适合验证链路;也可以点 "Add New" 添加具体游戏:填名称、可执行文件路径(可选工作目录和启动参数),再传一张约 600×800 的图标,保存后就会出现在 Moonlight 列表里。
Moonlight 客户端去哪下,界面 "Featured Apps" 标签里也整理好了。
把画质和延迟调到位
这一节解决"画面不糊、操作不卡"。串流质量基本由三样东西决定:编码用什么、网络给多少带宽、分辨率压到多少。
先挑编码器。编码器就是把原始画面压成视频的部件,能硬编就别软编。有 NVIDIA 独显优先用 NVENC;Intel 核显在 Windows 上走 QuickSync,Linux 上走 VAAPI;AMD 显卡在 Linux 上同样走 VAAPI;实在没有可用的硬件编码器,再退回 x264/x265 软编,兼容性好但要吃 CPU。
再按网络环境定分辨率和比特率。比特率可以理解为每秒要传多少画面数据,给少了发糊,给多了发卡:
| 网络环境 | 建议分辨率 / 帧率 | 建议比特率 |
|---|---|---|
| 有线局域网 | 1080p–1440p / 60fps | 20–50 Mbps |
| 5GHz WiFi | 1080p / 60fps | 10–25 Mbps |
| 远程宽带 | 1080p / 30–60fps | 5–15 Mbps |
默认情况下 Sunshine 按 Moonlight 请求的比特率来编;如果想压一个上限,可在配置里设max_bitrate(单位 Kbps)。
音频与网络各留一句。音频默认用 Opus,低延迟、质量也好,一般不用动。网络侧,主机和看端都尽量走有线或 5GHz 频段;如果要从外网访问,可以在配置里启用 UPnP(默认关闭),让 Sunshine 自动去路由器打开串流端口,省得手动做端口映射;不跑外网就别开。串流相关的端口集中在 47984–47990 这一段,基础端口默认是 47989。
常见卡点实录
这一节把四个高频问题的"现象—原因—解法"讲清楚,对照自查。
客户端搜不到服务器。通常是两端不在同一局域网,或主机防火墙挡住了。先确认两台设备在同一网段,再放行上面那段串流端口;仍不行就在 Moonlight 里用主机 IP 手动添加,绕开自动发现。
画面卡顿、延迟高。多半是带宽和编码没匹配上。优先切回有线,把分辨率或比特率降一档,确认走的是硬件编码而不是软编,再关掉占带宽的后台下载。
忘记管理员密码。用命令行重置即可,把用户名和密码换成新值:
sunshine --creds 用户名 密码手柄不识别。Windows 上 Sunshine 靠 Virtual HID 驱动做虚拟手柄,装好驱动后建议重启一次;Linux 上要把运行 Sunshine 的用户加进input组才能创建虚拟输入设备;macOS 目前不支持手柄。
排查卡在哪一步时,管理界面 "Troubleshooting" 标签里的日志会逐条给出警告和报错,是最快的定位入口。
写在最后
先跑通局域网里的 "Desktop" 串流,确认链路没问题,再按上面的表微调画质,基本就能稳定用了。更细的选项、各平台的采集方式和进阶调优,仓库里都有现成文档:入门看 docs/getting_started.md,逐项配置查 docs/configuration.md,延迟优化看 docs/performance_tuning.md,出问题翻 docs/troubleshooting.md。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考