Sunshine 游戏串流服务器上手:装好 Moonlight,把游戏画面串到电视上
【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一款自托管的开源游戏串流服务器,跑在你自己的 PC 上,负责抓屏、编码并实时推送画面和音频给 Moonlight 客户端。按本文操作,你能在局域网内完成一次完整的 Sunshine 游戏串流:从安装、配对到串出第一个游戏画面。
Sunshine 和 Moonlight 各负责什么
整条链路只有两个角色:
- Sunshine(服务端):装在游戏机上,负责抓屏、编码、把按键"打回去"。可以把它理解成这条连接里的"屏幕那头"。
- Moonlight(客户端):装在你想看的设备上,负责解码和显示,相当于"遥控器加显示屏"。
两者配合,串流全程走你自己的网络,不经过任何第三方云服务。适合三类人:想把 PC 游戏串到电视或平板的、想把一台主机分享给家人朋友的、想在局域网里用笔记本远程玩主机的。
动手前:系统、显卡与网络自检
花一分钟确认这三件事:
- 操作系统:Sunshine 支持 Windows、Linux 和 FreeBSD,功能完整;macOS 版本仍属实验性质,暂不支持手柄,适合轻度使用。
- 显卡编码器:NVIDIA、AMD、Intel 核显都能做硬件编码,没有独显时还有 CPU 软编码兜底。Linux + NVIDIA 用户注意:NVFBC 抓屏依赖 CUDA,官方预编译包已内置,仅自行编译时才需要额外处理。
- 网络:串流主机和 Moonlight 设备必须在同一局域网。主机侧千兆有线最稳,客户端无线优先 5GHz 频段;如果打算日后走公网访问,路由器要能转发端口。
安装 Sunshine:各平台最短路径
各系统走最短路径即可:
- Windows:从 Releases 页下载 Sunshine-Windows-AMD64-installer.msi,双击安装,按提示允许防火墙规则。安装器默认把 Sunshine 注册为后台服务并开机自启,一般不用额外操作。
- Linux:Ubuntu/Debian 用官方 deb 包、Fedora 用 rpm、Arch 有官方仓库包,优先用发行版原生包;其他发行版用 Flatpak 或 AppImage。
- macOS:下载与你芯片匹配的 DMG(arm64 或 x86_64),把 Sunshine.app 拖进应用程序文件夹;也可以用 Homebrew。
常用安装命令(按你的系统选其一):
flatpak install –system flathub dev.lizardbyte.app.Sunshine # Linux 通用 Flatpak 安装
brew install sunshine # macOS 通过 Homebrew 安装
systemctl –user –now enable app-dev.lizardbyte.app.Sunshine # Linux 启动并设置开机自启
做完应该看到:Windows 任务栏有 Sunshine 托盘图标;Linux 上 systemctl –user status app-dev.lizardbyte.app.Sunshine 显示服务在运行;macOS 菜单栏出现 Sunshine 图标,首次启动会要求授权"屏幕录制"和麦克风权限,点允许。
打开 Web 控制台并创建首个账号
服务跑起来后,打开浏览器访问 https://localhost:47990(也可以把 localhost 换成主机的局域网 IP,方便之后用手机配对)。这是 Sunshine 的 Web 控制台,后面所有配置都在这里完成。
两个常见卡点:
- 浏览器提示"连接不安全":正常现象,因为用的是自签名证书,点"高级 → 继续访问"即可。
- 首次登录:按引导创建账户,默认用户名是 sunshine,密码自己设定。务必记下来,之后每次登录都要用;忘了可以用文末命令重置。

登录后你会看到导航栏、应用页和配置页。Linux 用户先记一笔:如果之后发现鼠标键盘"打不进游戏",多半是把 Sunshine 运行用户加进 input 组的问题,处理办法在文末清单里。
Moonlight 配对流程:串出第一局
这一步只验证链路通不通,先不碰游戏。

用 Desktop 应用做第一局:系统一般自带 Desktop 应用,它不启动任何程序,直接把当前桌面串出来,是验证链路最干净的例子。如果你的列表里没有,点新增,名称填 Desktop、图标路径填 desktop.png 即可。
做完应该看到:电视或平板上出现你 PC 的桌面画面,延迟肉眼可辨但可接受,声音从客户端设备出来。到此,整条串流链路已经打通。
添加自己的游戏:启动命令与工作目录
验证链路后,把真正的游戏加进列表。在 Applications 页点新增,要填四样东西:
- 显示名称:Moonlight 里看到的名字;
- 图标:挑一张图即可;
- 启动命令:可执行文件的完整路径,比如游戏的 .exe 或启动脚本;
- 工作目录:一般设为游戏根目录。

这里有一个最容易翻车的点:应用退出时串流会随之结束。所以像 Steam 这类常驻后台的程序,启动方式必须选 detached(分离),否则会立刻断流——Steam 进程一"结束",Sunshine 就以为游戏关了。普通单机游戏用默认方式启动即可。
编码器与网络调优:一张表选对方案
编码器优先选硬件方案,CPU 占用低、延迟也小。选型建议:
| NVIDIA | NVENC | H.265,高画质预设 | 主流配置,综合表现最好 |
| AMD | AMF(Windows)/ VAAPI(Linux) | H.264 或 H.265 平衡档 | 1080p/60fps 无压力 |
| Intel | QuickSync | H.264,性能优先 | 核显机型、轻度游戏 |
| 无硬件编码 | x264 软编码 | H.264,降分辨率与码率 | 兜底方案 |
网络侧记住一条原则:稳定性比峰值带宽更重要。主机侧走有线,客户端 Wi-Fi 用 5GHz;客户端按设备能力选分辨率,手机可以先从 1080p/60fps 起步,画面跟不上就往下调一档码率。Linux 主机如果网卡速率远高于链路中某一段(比如主机 2.5G 网口、客户端只有百兆),可能出现丢包,把主机网卡限制到 1Gbps 往往有效,细节见 docs/troubleshooting.md。
另外两个能省一帧延迟的小开关:AMD 用户在驱动里开 Enhanced Sync,NVIDIA 用户开 Fast Sync,说明见 docs/performance_tuning.md。
卡住了?快速排查清单
遇到问题先看 Web UI 的 Troubleshooting 页,它会把日志里的警告和错误逐条列出并给提示:

- 打不开 47990 控制台 → 多半是防火墙拦截或端口被改。放行 Sunshine 使用的一组端口(默认从 47989 起),并确认服务在运行。
- Moonlight 找不到主机 → 两边不在同一局域网,或发现机制失败。手动输入主机 IP 添加;仍不行就检查防火墙。
- 串流卡顿、丢帧 → 带宽不足或信号弱。降分辨率和码率,客户端改 5GHz 或换有线。
- 画面正常但按键无效(Linux/FreeBSD) → 运行 Sunshine 的用户没有虚拟输入权限。把该用户加入 input 组,重新登录后生效。
- 忘了控制台密码 → 在终端运行 sunshine –creds 新用户 新密码 重置 ⚠️ 重置后要记好新凭据。
继续深入:文档、源码与下一步
基本链路跑通后,建议按这个顺序继续:
- docs/configuration.md:所有配置项的完整说明,支持搜索,找不到某个开关就翻这里;
- docs/performance_tuning.md:针对延迟和帧率的调优建议;
- docs/troubleshooting.md:故障排查的系统性说明;
- src/platform/:各平台抓取与输入的实现代码,Linux 下的 X11/Wayland/NVFBC/KMS 抓取后端都在这里,想搞懂底层原理从这里入手。
还有问题可以去项目官方论坛和 Discord 社区提问。
今晚就可以做的一件事:挑一款常玩的游戏,把码率从默认值降一档再串一次,对比画面和流畅度,找到你这台网络下的平衡点,把它记下来作为常用配置。
【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





