Sunshine 快速上手 3 步:把 PC 变成 Moonlight 游戏串流服务器
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
你的游戏装在 PC 上,电视、平板、手机却只能玩自己的应用。Sunshine 是一个自托管的游戏串流主机,装在游戏 PC 上,用显卡硬件编码把画面推给任意设备上的 Moonlight 客户端,输入从客户端传回主机。开源免费,没有订阅费。下面带你从零到串流成功。
速览:开始之前要知道什么
| 你关心的 | 答案 |
|---|---|
| 能不能直接用 | Windows、Linux、macOS、FreeBSD 都有官方安装包 |
| 怎么管理 | 浏览器打开https://localhost:47990,全部配置在这 |
| 客户端要什么 | 任意设备上的 Moonlight 客户端(电视、手机、平板、笔记本) |
| 硬件要求 | 没有独显也能用,自动退回 CPU 软编;有 NVIDIA/AMD/Intel 显卡体验更好 |
| 要开哪些端口 | 基础端口 47989,Web 管理固定 47990,可在配置里改 |
首次跑通:三步连接成功
第 1 步 · 装好主机端(按你的系统选一条):
# Windows 官方推荐方式;Linux 可改用 flatpak install --system flathub dev.lizardbyte.app.Sunshine winget install LizardByte.Sunshine确认成功:终端运行sunshine --version能打印版本号。
第 2 步 · 启动 Sunshine,拿到管理入口。Linux 建议起用户服务,登录后自动运行:
# 立即启动并设置开机自启(Windows 安装后会自动以服务形式运行) systemctl --user --now enable app-dev.lizardbyte.app.Sunshine然后浏览器访问https://localhost:47990。提示"不安全网站"是自签名证书导致的,继续访问即可。首次进入会要求创建用户名和密码,当场记下来——这是进后台的唯一凭据。确认成功:能看到欢迎页和登录入口,见下图。
第 3 步 · 配对第一台设备。在 Moonlight 客户端里"添加主机",按主机 IP 找到 Sunshine,客户端会显示一个 PIN;把 PIN 输入 Web UI 的 PIN 页面,再给设备起个名字。确认成功:客户端里该主机变为可连接状态,点一下就能出画面。
能力地图:画质、输入、管理,你能调什么
画质:编码器按显卡选。有独显时自动走硬件编码——NVIDIA 用 NVENC(实现见 src/nvenc/),Linux 上 AMD/Intel 走 VAAPI,Windows 上 Intel 走 QuickSync、AMD 走 AMF,Apple 芯片走 VideoToolbox;都没有就选软编兜底。分辨率、帧率、码率在 AudioVideo 页签调整,码率建议对照 docs/performance_tuning.md 的调优说明。
输入:客户端的手柄变主机的手柄。键鼠直接透传;Xbox、DualSense、Switch Pro 等手柄会在主机上虚拟出同类型手柄,游戏原生识别。Windows 主机需要装虚拟 HID 驱动(Web UI 内有入口),Linux 依赖 uinput。相关实现可看 src/platform/virtualhid_input.cpp。
管理:一切在浏览器里。端口、UPnP、日志级别、音频设备都在 Web UI,顶部搜索框能直接跳到任意配置项;忘记密码就停掉 Sunshine 后重置:
# 重置 Web 管理账号(需先停掉 Sunshine) sunshine --creds 新用户名 新密码应用入口:给每个游戏一个一键启动。默认自带 Desktop 和 Steam Big Picture 两个入口,更多应用通过 Web UI 添加:名称、可执行文件路径、工作目录,还能加启动前命令。规则记住两条:启动新应用会先结束当前串流;应用退出,串流随之结束。
实战场景:三个你会真正用到的操作
场景 A:给卧室平板串一个具体游戏,手柄输入目标:在平板的游戏列表里点一下就开玩。
- Applications 页签添加应用:填名称、exe 路径、工作目录;
- 平板 Moonlight 里选这个应用启动;
- 手柄接在平板上。 注意:手柄类型要主机和客户端都支持;Windows 主机先确认虚拟 HID 驱动已装好。
场景 B:无独显主机,1080p 保流畅目标:办公本/亮机卡也能串。
- AudioVideo 页签把编码器切到 VAAPI(Linux 核显)或软编;
- 分辨率和码率按网络下调,先保帧率再谈清晰度;
- 串流时看一眼 CPU 占用确认没打满。 注意:软编下 1080p 的 CPU 开销明显,降分辨率比降码率更省资源。
场景 C:人在外面,从手机改主机配置目标:不碰主机,远程调设置。
- 确保手机和主机在同一网络(或已配好可达的路由);
- 手机浏览器打开
https://<主机IP>:47990; - 改完保存,需要时在 Web UI 里重启服务生效。 注意:所有改动都在浏览器里完成,不需要 SSH。
问题诊断:高频症状与一句话修复 🩺
| 症状 | 最可能原因 | 修复 |
|---|---|---|
| 忘了 Web UI 密码 | 凭据只存在主机本地 | 停掉 Sunshine,sunshine --creds 新用户名 新密码后重启 |
| 浏览器 47990 打不开 | 服务没在跑或被防火墙挡 | systemctl --user status app-dev.lizardbyte.app.Sunshine查状态,放行 47990 |
| Linux 连上后键鼠/手柄无反应 | 运行用户缺 uinput 权限 | 把用户加入input组,重新登录 |
| 主机开了 HDR,画面发白过曝 | Moonlight 客户端没开 HDR | 客户端设置启用 HDR;Linux 还需 KMS 捕获后端 |
| 卡顿、丢包 | 路径速率不匹配或 Wi-Fi 不稳 | 客户端跑反向 UDP 测试定位瓶颈,改有线或 5GHz |
丢包测试一条命令(客户端执行,看输出里的丢包和抖动):
# 60 秒反向 UDP 测试,目标 50M iperf3 -c {主机IP} -t 60 -u -R -b 50M定位不了就打开 Web UI 的 Troubleshooting 页,每条 warning/error 都能展开看细节。
进阶:什么时候该看哪份文档
- docs/getting_started.md:各平台安装细节、服务化、无头主机与 HDR 的完整设置
- docs/configuration.md:全部配置项逐项说明,想改某个具体参数时查这里
- docs/troubleshooting.md:凭据重置、网络测试、丢包处理的标准流程
- docs/performance_tuning.md:码率与分辨率调优,串流"卡"或"糊"时看
- docs/api.md:Web 管理的 REST API,想脚本化重启或读状态时用
- src/platform/:各平台屏幕捕获与编码实现(KMS、NvFBC、WGC、VAAPI…),想了解某个平台捕获原理时看
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考