Sunshine 串流服务器从零跑通:跨平台部署与 Moonlight 首次配对
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
想把自己那台游戏本的高画质画面搬到客厅电视上,又不想受云游戏的延迟和订阅限制?Sunshine 就是干这件事的:它是 Moonlight 的自托管游戏串流服务器,把本机画面与声音用 GPU 硬件编码成低延迟视频流,推给局域网里任意一台 Moonlight 客户端,全程数据不出家门。
自托管串流和云游戏差在哪
Sunshine 和云游戏的核心区别就三点:
| 维度 | 云游戏 | Sunshine 自托管 |
|---|---|---|
| 编码位置 | 服务商机房 | 你自己的 GPU,AMD/Intel/NVIDIA 硬件编码均可,无硬件编码器时可回退 CPU 软编 |
| 画面延迟 | 取决于机房链路 | 局域网内通常个位数毫秒级 |
| 可串内容 | 平台内固定的游戏库 | 本机任意程序:桌面、Steam、独立游戏都行 |
代价是主机得常开、你得自己搞定网络和权限。换来的是延迟上限、内容自由和数据自主。
部署前把这几项过一遍
- 操作系统(必须):Windows 11+ / macOS 14.2+ / Ubuntu 22.04+ / Fedora 43+ / Debian 13+ / FreeBSD 15.1+
- 显卡(必须):带硬件编码单元——NVIDIA 需 NVENC、Intel 在 Windows 上需 Skylake 及以后的 QuickSync(Linux 走 VAAPI)、AMD 需 VCE 1.0 及以上;没有也行,Sunshine 会回退 CPU 软编,但帧率和负载更吃 CPU
- CPU / 内存(必须):Ryzen 3 或 i3 及以上,4 GB 起
- 网络(建议):主机和客户端都走 5 GHz Wi‑Fi 或有线;4K/60 建议双方都拉 CAT5e 及以上网线
- Moonlight 客户端(必须):在电视盒子、手机或平板上装好,版本建议跟主机 Sunshine 大版本对齐
Windows 上取包 → 运行 → 确认
- 取包:到官方 Releases 下载
Sunshine-Windows-AMD64-installer.msi(Intel/AMD 机器)或Sunshine-Windows-ARM64-installer.msi - 运行:双击 MSI,按向导勾选组件。安装向导会注册 Sunshine 系统服务并设开机自启,选项别乱勾,按需选
- 确认:装完服务已在后台跑。另外,Windows 上虚拟手柄/键鼠走虚拟 HID 驱动:ViGEmBus 仅支持 Xbox 360 与 DualShock 4 且已到生命周期终点,全功能需单独安装 Virtual HID Broker,装完驱动后重启一次机器
Linux 上取包 → 运行 → 确认
- 取包:Debian/Ubuntu 下与发行版和架构匹配的
sunshine_*.deb,Fedora 下用.rpm,Arch 用pacman -S sunshine - 运行:装包并启用用户级服务(用户会话内的 service,注意要带
--user):
sudo apt install ./sunshine_{version}-1+{distro}{version}_{arch}.deb systemctl --user --now enable app-dev.lizardbyte.app.Sunshine- 确认:终端执行
systemctl --user status app-dev.lizardbyte.app.Sunshine,状态是 active (running) 即服务起来了
macOS 上取包 → 运行 → 确认
- 取包:Apple Silicon 选
Sunshine-macOS-arm64.dmg,Intel 选Sunshine-macOS-x86_64.dmg - 运行:打开 DMG,把
Sunshine.app拖进"应用程序",弹出磁盘映像,然后从应用程序里启动 - 确认:首次启动会依次请求屏幕录制、辅助功能、麦克风权限,全部允许后系统若提示"退出并重新打开"就照做,进程才能拿到新授权;串系统音频时把 Audio Sink 留空即可走 14.0+ 的原生 Audio Tap
首次配对全流程
打开浏览器访问https://localhost:47990,自签名证书,忽略"不安全"提示;局域网里的其他设备把 localhost 换成主机内网 IP。首次进入会让你创建管理员账号,用户名密码只显示这一次,记下来——忘了可以用sunshine --creds 新用户名 新密码重置。
应用列表里默认已有 "Desktop" 和 "Steam Big Picture",点 Add New 可以加自己的游戏:填名称、可执行文件路径,工作目录与启动参数可选,图标用 600×800 的图即可。然后在 Moonlight 客户端里搜索主机,搜不到就手动输入 IP 添加;客户端弹出 PIN 输入框时,回管理界面顶部导航的 "PIN" 页,把当前 PIN 填进客户端并回车,再给设备起个名字,配对完成。选中任意应用启动,第一次有效串流会话就算跑通了;串流中可用Ctrl+Alt+Shift+F1–F12切换显示器,Ctrl+Alt+Shift+N隐藏光标。
最常动的五个旋钮
| 参数 | 默认值 | 何时该改 | 建议值 |
|---|---|---|---|
encoder | 自动取第一个可用编码器 | 自动选错了,或想用特定硬件编码 | nvenc/quicksync/amdvce/vaapi/vulkan/software按显卡选 |
max_bitrate | 0(跟随客户端请求) | Wi‑Fi 带宽不稳导致马赛克、卡顿 | 降到实测带宽能稳定承载的值,单位 Kbps |
stream_audio | enabled | 把副屏/无音频设备当串流源 | disabled |
audio_sink | 空(系统默认设备) | 想指定环回设备,或 Linux 下抓不到声音 | 填具体设备名,macOS 留空走原生 Audio Tap |
upnp/port | disabled/47989 | 需要外网访问,或端口与路由器冲突 | upnp = enabled;改port会整体偏移整个端口族(1029–65514),Web UI 固定在 47990 |
🔎 翻车速查
| 症状 | 处理动作 |
|---|---|
| 客户端连上了但键鼠/手柄没反应 | Windows 装好虚拟 HID 驱动并重启;Linux/FreeBSD 把运行 Sunshine 的用户加入input组后重新登录 |
| Moonlight 发现不了主机 | 确认两台设备同网段,放行防火墙对应端口,客户端手动输入主机 IP 添加 |
| 画面卡顿、延迟高 | 切回硬件编码,降一档分辨率或比特率,尽量走有线并关掉占带宽的应用 |
| 浏览器打不开管理界面 | 确认服务在跑(Windows 服务 / Linux 的app-dev.lizardbyte.app.Sunshine),用https://localhost:47990访问 |
| macOS 上串流没有声音 | Audio Sink 留空走原生抓取,或手动把 Soundflower/BlackHole 设备名填进audio_sink |
继续深入
- docs/getting_started.md — 各平台安装、服务启动与基本用法,含 AppImage/Flatpak/Docker 等更多渠道
- docs/configuration.md — 全部配置项逐条说明,含每个参数的默认值与示例
- docs/performance_tuning.md — 按 GPU 厂商给的性能调优建议
- docs/troubleshooting.md — 故障排查手册
- src/ — 主程序与平台相关源码,
src/nvenc/是 NVIDIA 编码器适配层
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考