3步搭好自托管游戏串流服务器:Sunshine + Moonlight 低延迟完整指南
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
想把家里的游戏串到客厅电视上,或者出门在外远程连回家里的电脑,最省心的组合就是 Sunshine 加 Moonlight。Sunshine 是一款开源的自托管游戏串流服务器,装在电脑上后负责抓帧和编码,Moonlight 则是装在电视、手机、平板上的接收端,两端配对后即可串流。它支持 AMD、Intel、NVIDIA 三家显卡的硬件编码,端到端延迟可以做到 8 毫秒以内,串流画质和响应速度都接近本地游玩。
它是什么:30秒看懂 Sunshine
一句话:Sunshine 是给 Moonlight 用的自托管串流主机(server),开源免费,运行在你自己的设备上。
| 核心能力 | 说明 |
|---|---|
| 串流主机 | 负责采集画面、编码、推流,与 Moonlight 客户端配对使用 |
| 硬件编码 | NVENC(NVIDIA)、AMD AMF、Intel QuickSync、VAAPI,另备软件编码兜底 |
| 跨平台 | Windows、Linux、macOS、FreeBSD 均可部署 |
| Web 管理界面 | 浏览器配置编码器、网络、应用列表,内置日志查看 |
| 手柄支持 | 通过虚拟手柄把操作回传给主机,不同平台支持的控制器类型略有差异 |
三步上手:装好就能串
第1步:安装服务器
Windows 最省事的是用 winget 一条命令:
winget install LizardByte.Sunshine也可以直接下载官方安装包运行。Linux 上推荐 Flatpak:
flatpak install flathub dev.lizardbyte.app.SunshineUbuntu/Debian 可以用 apt 安装 sunshine,Arch 上直接用 AUR 的 sunshine 包。
第2步:初始化配置
首次启动后用浏览器访问https://localhost:47990,页面会要求你创建访问 Web 界面的用户名和密码,创建后不会再显示,记得存好。
进入配置页后先处理两件事:在 Network 标签里勾选 UPnP——它会自动配置路由器端口转发,方便跨网访问;再根据你的显卡类型选好编码器并保存。
第3步:用 Moonlight 连接
在电视、手机或平板上安装 Moonlight 客户端,输入服务器地址完成配对(配对码在 Sunshine 端出示),选一个应用即可开始串流。应用列表里默认有桌面和 Steam 大画面模式,也可以添加自定义应用,例如某个游戏启动器。
不在同一局域网时,在路由器上手动转发 47984 到 48010 的 TCP 和 UDP 端口即可远程连接。
编码器怎么选:按你的显卡挑
编码器是负责压缩画面的芯片,显卡厂商都在 GPU 里内置了硬件编码器,比 CPU 软件编码快得多。你的选择主要看显卡品牌和系统:
| 你的显卡 | 推荐编码器 | 可用平台 | 编码延迟参考 |
|---|---|---|---|
| NVIDIA | NVENC | Linux、Windows | 约 2~3ms(RTX 40 系) |
| AMD | AMD AMF | Windows | 约 3~4ms |
| Intel 集显/核显 | QuickSync | Windows | 约 3~4ms |
| Intel/AMD 集显 | VAAPI | Linux | 约 4~5ms |
| 任意(兜底) | 软件编码 | 全平台 | 约 10~15ms |
对应平台的选择逻辑:Linux 上一般从 VAAPI、NVENC、Vulkan 里挑,Windows 上从 NVENC、AMF、QuickSync 里挑,macOS 用系统自带的 VideoToolbox。
画面怎么抓进来也分平台,这里帮你排好:Windows 用 DXGI 桌面复制,这是该平台的默认方式;Linux X11 下装了 NVIDIA 驱动可用 NvFBC 直接从显存抓帧,延迟最低;Wayland 桌面走原生协议支持;无桌面环境则可用 KMS/DRM 直接访问显示设备。
带宽怎么定:1080p60 需要多少 Mbps
先记住一条原则:串流主机和客户端都尽量走有线,路由器里给 Sunshine 的流量开 QoS 提高优先级。不同画质档位的带宽需求如下:
| 画质目标 | 建议带宽 | 参考硬件搭配 |
|---|---|---|
| 入门 1080p/60fps | 15~25 Mbps,百兆有线即可 | GTX 1660 Super + Ryzen 5 3600 + 8GB |
| 主流 1440p/60fps | 25~40 Mbps,千兆有线 | RTX 3060 Ti + Ryzen 5 5600X + 16GB |
| 旗舰 4K/60fps | 40~60 Mbps,建议 2.5G 有线 | RTX 4080 + Ryzen 7 7800X3D + 32GB |
如果显卡是 NVIDIA 且想要更高画质,可以把码率直接拉到 50Mbps 级别,再选低延迟预设(llhq)配合恒定码率模式。
遇到问题:按症状排查
Web 界面里自带 Troubleshooting 日志页,Sunshine 上报的日志可以直接在这里搜索,这是排查的第一步:
- 延迟高:先确认两端是不是都走的有线;然后降低分辨率或帧率;再检查编码器是否已换成硬件编码并启用低延迟模式。
- 画面卡顿:把编码器预设调成 llhq;适当加大编码器缓冲;观察 GPU 占用是否长期满载。
- 声音不同步:调整音频缓冲区大小;启用音频重采样;核对音频编码器的设置。
进阶玩法与后续规划
两点进展值得留意:AV1 编码支持计划 2025 年第三季度发布,相比 HEVC 同等画质下码率可降约 30%,新一代 GPU 有硬件加速,且开源免专利费;团队还在评估 WebRTC 接入(免去客户端、更好的 NAT 穿透)以及基于场景复杂度的智能码率控制。
高级参数方面,NVENC 支持两遍编码、VVB 百分比上调、加权预测、自适应量化、最小 QP 限制等选项,都在配置页的 NVENC 标签下可以找到,平时用不到可以先不动。
官方资源索引
- 完整文档:docs/
- 配置项说明:docs/configuration.md
- 开发者 API:docs/api.md
- 性能调优:docs/performance_tuning.md
- 故障排查:docs/troubleshooting.md
- 构建指南:docs/building.md
- 核心源码:src/,各平台实现位于 src/platform/
- 测试代码:tests/
下一步
装好 Sunshine,打开 47990 端口把 UPnP 和编码器设置好,在 Moonlight 里完成配对,今晚就能在电视上玩 PC 游戏了。遇到卡顿或同步问题,先翻 docs/troubleshooting.md,再用日志页定位具体报错。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考