从游戏主机到客厅电视:Sunshine 自托管 Moonlight 串流服务器完整上手
【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
开篇:先解决一个具体烦恼
你的主机显卡性能拉满,人却被钉在书房那张椅子上。带个轻薄本出差,想开一局 3A 大作,性能直接劝退。Sunshine 就是一个自托管的游戏串流服务器:它把你现有的主机改造成一台私人"云游戏机",配合 Moonlight 客户端,就能在客厅电视、办公本甚至掌机上,以接近本地的延迟运行你整套游戏库。下面带你从下载一路走到能稳定串流,不绕弯路。
它是什么,以及你该不该用
Sunshine 是一个开源自托管的 Moonlight 服务端,核心职责是把你主机的画面、声音和输入实时串到任意客户端,中间不经过任何第三方服务器。它解决的是"人不在主机旁,但想继续用这台主机"这件事。
- 场景:人在沙发/床上 → 能力:调用显卡硬件编码做低延迟串流,画质上限远高于普通远程桌面。
- 场景:想用电视大屏打游戏 → 能力:Moonlight 覆盖 Android TV、iOS、macOS、Windows、掌机等多端。
- 场景:手柄串过去没反应 → 能力:把客户端控制器虚拟成 Xbox/PS 手柄注入主机。
- 场景:开发者远程干活 → 能力:Web 管理界面里改配置、管应用、配对设备,不用手搓配置文件。
- 场景:在意数据安全 → 能力:全程本地直连,不依赖云端中转。
自测清单——满足前两条就值得上:① 有一台性能尚可、能流畅跑游戏的主机;② 你想在另一块屏幕(电视/笔记本/掌机)上接着玩。其余为加分项:③ 局域网是千兆有线或 5GHz Wi-Fi;④ 有独立显卡(没有也能靠软件编码跑,只是体验打折)。
三分钟选对部署路线
不同系统和显卡,最省事的路线不一样。先看表,按自己的情况挑一条走:
| Windows | NVIDIA / AMD / Intel | 官方 MSI 安装器(AMD64 或 ARM64),装 Virtual HID Driver 保手柄完整 |
| Linux | 任意(含核显) | 优先发行版现成包:Ubuntu/Debian 用 .deb、Fedora 用 COPR、Arch 用 pacman;要 HDR 就选支持 KMS 采集的包 |
| macOS | 核显/独显 | Homebrew 一条命令;注意目前属实验阶段,手柄模拟暂不支持 |
为什么优先挑发行版包或官方安装器:它们把依赖、权限、服务都替你处理好了。Linux 上的 AppImage / Flatpak 这类通用格式不支持 KMS 采集,会直接卡掉 HDR 串流,所以能选官方发行版包就别选通用格式。偏爱从源码编译的话,把仓库拉到本地后跑一遍构建脚本即可,脚本会自己查依赖、配置并打包——这条路需要完整编译工具链且耗时,普通用户没必要折腾:
git clone https://gitcode.com/GitHub_Trending/su/Sunshine && cd Sunshine
./scripts/linux_build.sh # 检查依赖 + CMake 配置 + 编译打包
一句话预警:macOS 版手柄模拟还不能用,主力机是 Windows 的,优先在 Windows 上部署。
从下载点到能访问
这条主线按"做完该看到什么"来推进,弱化命令、盯着结果。
第 1 步 装上它。 Windows 双击 MSI 按向导装完,建议重启一次,之后系统托盘常驻 Sunshine 图标。Linux 上 .deb 用 sudo dpkg -i ./sunshine-ubuntu-24.04-amd64.deb 安装(这条命令就是把你下载好的安装包解到系统里)。macOS 两条命令搞定,brew tap 先把官方仓库加进本地源,install 再拉包:
brew tap LizardByte/homebrew
brew install sunshine
第 2 步 首次登录,拿到管理凭据。 浏览器打开 https://localhost:47990(把 localhost 换成内网 IP 也可),进欢迎页设置 Web 界面的用户名和密码。这一步只展示这一次,务必当场记牢。浏览器弹"不安全"警告别慌,是默认的自签名证书导致的,忽略即可。
第 3 步 打通网络。 进 Configuration 页,顶部搜索框输入 Upnp(所有配置项都支持这种快速检索),勾上再保存——它会自动在路由器上开端口转发,是公网串流的先决条件。路由器若不支持 UPnP,就手动转发 TCP 47989 / 47990 与 UDP 47998–48000、48010 这一段(以官方文档为准)。

配对并挂上你的应用
配对走 PIN 码。 在 Moonlight 里手动加上主机的 IP,客户端会弹一串 PIN 码;回到 Sunshine 的 Web UI,点顶栏的 PIN,输入这串数字、给设备起个名,回车看到 Success 就成功了。之后的每次串流都基于这套信任关系做校验。
再挂上应用。 切到 Applications 页,默认已有 Desktop 和 Steam Big Picture,点 Add New 可加任意程序,填名称和可执行路径即可。
一句话预警:应用列表只在客户端重启后刷新,改完记得在 Moonlight 里重进一次,否则看不到新应用。

想给电视、掌机选客户端,Featured Apps 页汇总了各平台的 Moonlight 客户端和工具,按设备挑一个装好即用。

把延迟和画质榨干
三项核心参数,每项都按"目标 → 操作 → 验证"来。
目标:编码器匹配显卡。 操作:encoder 按卡选——NVIDIA 用 nvenc,AMD 用 amf,Intel 用 qsv,Linux 下 Intel/AMD 用 vaapi。验证:串流时 CPU 占用不上满、无编码报错,说明选对了;选错常表现为编码失败或 CPU 满载。
目标:画质不糊又不爆带宽。 操作:max_bitrate 在局域网里可以放心调到 50–100 Mbps,它是画质上限的关键。验证:码率提上去后画面细节更清晰且帧数稳定,就是合理区间。
目标:上 HDR。 操作:Linux 下采集后端必须选 KMS,这是绕不开的硬性要求;Windows 端官方支持最完整。验证:主机和客户端都开 HDR 后再串流,高亮与暗部层次明显更宽。
验收清单
逐条勾,全过才算部署成功:
- 客户端能搜到主机,且 PIN 配对返回 Success
- 选中 Desktop 应用,主机桌面实时出现在客户端屏幕上
- 键鼠可正常操作;串手柄时,游戏内能识别到对应控制器
- 局域网内帧数稳定、无明显音画不同步
- 高码率下画面细节清晰,未见明显压缩糊块
故障速查
| 忘了 Web UI 账号密码 | 凭据只展示一次 | 终端执行 sunshine –creds 新用户 新密码 重置(AppImage 换成 ./sunshine.AppImage –creds …) |
| 串流连上,但键鼠/手柄没反应 | 权限或驱动缺失 | Linux/FreeBSD 把运行用户加入 input 组并重登;Windows 检查 Virtual HID Driver 是否已装 |
| 浏览器提示网站不安全 | 自签名证书 | 属正常现象,忽略;介意可在配置里替换成自己的证书 |
| 画面卡顿、频繁丢包 | 网络或编码器选型 | 先确认客户端连有线/5GHz,再降 max_bitrate,最后看日志判断是网络还是编码器问题 |
| 打不开 Web UI | 端口被拦或进程没起 | 放行 47990 端口,并确认 Sunshine 进程确实在运行 |
日志入口在 Troubleshooting 页,错误码、显卡型号、内存占用都列得清清楚楚,比瞎试高效得多。

延伸
想深挖每个配置项,查 配置参考;卡壳优先翻 疑难排查 和 快速上手。现在就去装一个 Moonlight 客户端,把第一局游戏串到你最想看的那块屏幕上。
【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




