Sunshine 自托管游戏串流教程:十分钟把 PC 变成你的私有云游戏主机
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
下午在书房卡在一个 Boss 前,晚上窝在沙发上想接着打——只要那台游戏主机没关,Sunshine(一款免费开源的自托管游戏串流服务器)就能把主机画面通过网络实时送到你的电视、平板或手机上,操作照样落回主机。搭配 Moonlight 客户端(Moonlight 配对 是整套流程里最顺的一步),这套组合就是目前自托管游戏串流方案里口碑最好的那一个。本文按"先懂它 → 对号入座 → 落地跑通 → 逐步拉满 → 翻车自救"的顺序带你走完全部流程。
它到底替你做了什么
一句话:Sunshine 装在游戏主机上当"发射端",Moonlight 装在任何终端上当"接收端"。主机侧先截屏,再把原始画面丢给 GPU 的硬件编码器(NVENC、VAAPI 这些名字指的都是显卡里专门压视频的电路,压缩工作几乎不占 CPU)打包成视频流,经网络送到客户端;客户端解码出画面,同时把你的键鼠、手柄动作原路回传给主机。整条"采集 → 硬件编码 → 传输 → 解码 → 回传输入"的链路里,Sunshine 负责前三段,Moonlight 负责后两段,两边一握手就形成低延迟的交互闭环。所有设置都放在浏览器的 Web 管理界面里完成(默认地址https://localhost:47990),不写配置文件也能跑起来。
首次打开 Web 界面时会引导你创建登录凭证,页面本身集成了官方文档与社区入口。
先对号,再动手
买不买新硬件之前,先按你心里的目标档位对号入座。下面的数据来自项目仓库的系统要求表:
| 目标档位 | CPU | 内存 | NVIDIA 显卡 | AMD 显卡 | Intel 显卡 | 网络 |
|---|---|---|---|---|---|---|
| 720p 尝鲜 | 酷睿 i3 / 锐龙 3 及以上 | 4GB 及以上 | 支持 NVENC 即可 | VCE 1.0 及以上 | VAAPI 兼容 / Skylake 及以上 | 5GHz Wi-Fi(802.11ac) |
| 1080p 流畅 | 酷睿 i5 / 锐龙 5 及以上 | 8GB 及以上 | 桌面端 GTX 1080+ | VCE 3.1 及以上 | HD Graphics 510 及以上 / QuickSync | 千兆有线(CAT5e) |
| 4K+HDR 拉满 | 酷睿 i5 / 锐龙 5 及以上 | 8GB 及以上 | Pascal 架构(GTX 10 系)及以上 | VCE 3.4 及以上 | HD Graphics 730 及以上 | 千兆有线(CAT5e) |
选卡的另一张依据是编码 API 支持矩阵——同一张卡在不同系统里走的编码通道完全不同,同一张 AMD 卡在 Windows 上走 AMF,换到 Linux 就改走 VAAPI,NVIDIA 在 Linux 下除了 NVENC 也有 VAAPI 可选:
| 编码 API | 通俗解释 | 适用显卡 | Windows | Linux | macOS | FreeBSD |
|---|---|---|---|---|---|---|
| NVENC | NVIDIA 卡自带编码器 | NVIDIA | ✅ | ✅ | ➖ | ➖ |
| AMF | AMD 在 Windows 上的编码通道 | AMD | ✅ | ➖ | ➖ | ➖ |
| QuickSync | Intel 核显硬件编码 | Intel | ✅ | ➖ | ➖ | ➖ |
| VAAPI | Linux/FreeBSD 上的通用编码接口 | AMD / Intel / NVIDIA | ➖ | ✅ | ➖ | ✅ |
| Vulkan Video | 新一代 Vulkan 标准编码接口 | AMD / Intel / NVIDIA | ➖ | ✅ / 🟡 | ➖ | 🟡 |
| Video Toolbox | Apple 系统自带编码框架 | Apple / Intel | ➖ | ➖ | ✅ | ➖ |
| 软件编码 | 纯 CPU 压视频,应急能用 | 任意 CPU | ✅ | ✅ | ✅ | ✅ |
✅ 完全支持,🟡 部分支持,➖ 不适用。
规律很清楚:只要显卡里那块编码电路能用,压视频基本不消耗 CPU,编码器越新,同码率下画质上限越高;纯软件编码能跑通,但 CPU 会先喊累。
十分钟落地
装好服务、完成配对,十分钟内能走完。
Windows:推荐 MSI 安装器(会顺手注册成后台服务),也可以让系统自带包管理器代劳:
# winget 一键安装(Windows 10/11) winget install LizardByte.SunshineLinux:Ubuntu/Debian 直接装.deb包;Arch 走 PKGBUILD,编译前先补齐可选依赖:
sudo dpkg -i ./sunshine-ubuntu-24.04-amd64.deb # Ubuntu/Debian sudo pacman -S libva-mesa-driver # Arch:AMD 硬件编码 sudo pacman -S cuda # Arch:NVIDIA 硬件编码 yay -S sunshinemacOS:Homebrew 最省心,macOS 目前属于实验性平台,手柄暂不支持:
brew tap LizardByte/homebrew brew install sunshine安装完在终端敲sunshine启动服务(Windows 安装器已默认注册服务)。想从源码或完整流程入手的话,可以翻一下 docs/getting_started.md。
接着打开浏览器访问https://localhost:47990,走五步配对:
- 建管理员账号:首次访问会要求设置 Web 界面用户名和密码,这组凭证记牢;
- 忽略证书警告:页面用的是自签名 SSL 证书,浏览器提示"不安全"是正常现象,继续访问即可;
- 添加应用:Applications 页面默认有 Desktop 和 Steam Big Picture 两个条目,可以继续加游戏或任意命令行程序;
- 客户端生成 PIN:手机或平板上打开 Moonlight,手动添加主机 IP,客户端会显示一组 PIN 码;
- Web 端输入 PIN:回到 PIN 标签页填入 PIN 并给设备起个名字,配对完成,选应用就能开串了。
Applications 页面以卡片管理串流入口:Desktop 直接串流整个桌面,Steam Big Picture 一键进客厅模式。
配对完顺手记两组快捷键,都以Ctrl+Alt+Shift开头(与 Moonlight 一致):Ctrl+Alt+Shift+N隐藏/显示鼠标指针,远程桌面场景很实用;Ctrl+Alt+Shift+F1~F12在多显示器主机上切换要串流的那块屏。
从能玩到好玩
跑通之后,按"网络 → 画质 → 外设"的顺序逐项加码。
先给网络打底。想跨设备甚至跨网玩,先让 Sunshine 帮你把端口开出来:UPnP(通用即插即用,路由器上自动打洞转发的协议)打开后会自动完成公网端口转发。所有参数都能在 Web 界面的 Configuration 页搜索修改,按 General、Input、Audio/Video、Network 等标签分类,带即时搜索,输入 "upnp" 就能直达对应开关:
习惯手改文件的话,等价参数写在~/.config/sunshine/sunshine.conf里,最小示例如下:
# 启用 UPnP,自动完成公网端口转发 upnp = true # 流媒体端口范围 port_start = 47984 port_end = 48010 # 指定编码器与码率(按显卡情况调整) encoder = nvenc bitrate = 25000再把画质拉满。HDR(高动态范围,简单说就是画面亮部暗部信息都保留得更多)串流在 Windows 主机上已正式支持,前提是 GPU 支持 HEVC Main 10 或 AV1 10-bit 编码;Linux 属于实验性支持,要求 KMS 捕获后端(Linux 下直接经内核 DRM 子系统抓帧的通道)加上具备 HDR 合成能力的桌面环境(如 Gamescope 或 KDE Plasma 6)。有个容易踩的坑:主机系统必须已开启 HDR,Moonlight 客户端的 HDR 选项也要同步打开,否则画面会偏色或过曝。
最后把手柄对上。Sunshine 能把主机模拟成多种手柄,让客户端的手柄按键原样映射过去,各平台支持范围差异明显:
| 手柄类型 | Windows | Linux | macOS | FreeBSD |
|---|---|---|---|---|
| Xbox 360 | ✅ | ✅ | ❌ | 🟡 |
| Xbox One / Series | ✅ | ✅ | ❌ | 🟡 |
| PlayStation 4 (DS4) / 5 (DualSense) | ✅ | ✅ | ❌ | 🟡 |
| Nintendo Switch Pro | ✅ | ✅ | ❌ | 🟡 |
| 通用手柄 | ✅ | ✅ | ❌ | 🟡 |
Windows 上要拿到完整手柄功能,需单独装虚拟手柄驱动(Virtual HID Driver,已替代旧的 ViGEmBus 方案),安装入口就在 Web 界面的 Troubleshooting 页面,未安装时直接给一键安装按钮:
Linux 用户则要把运行 Sunshine 的账户加入input组,虚拟输入设备才创建得出来(加入后重新登录生效):
sudo usermod -aG input $USER翻车自救
出问题先看 Web 界面 Troubleshooting 页面的日志,错误信息通常直接指向原因;更细的排查思路在 docs/troubleshooting.md。高频症状对照如下:
| 症状 | 常见原因 | 解决方向 |
|---|---|---|
| 浏览器一直提示网站不安全 | 自签名 SSL 证书 | 属正常现象,点"继续访问"即可 |
日志出现Encoder not found | 编码器与显卡/驱动对不上 | 到 Configuration 换编码 API,或升级显卡驱动 |
| 画面一打起来就卡顿、糊成马赛克 | 带宽吃紧或编码器超负荷 | 分辨率、帧率、码率依次往下压,直到流畅 |
| 键鼠和手柄都动不了 | 账户没有虚拟输入权限 | Linux 把用户加入input组后重新登录 |
| 手柄接上就是识别不了 | Windows 缺虚拟手柄驱动 | 在 Troubleshooting 页一键装驱动并重启 |
| HDR 画面惨白过曝 | 客户端没开 HDR | 在 Moonlight 设置里同步打开 HDR 选项 |
日志页按颜色分级展示错误,支持搜索定位;图中 "Could not open codec [av1_amf]" 这类提示,就明确指向 AMF 编码器缺失或驱动不支持。
调参这件事没有万能配置:先从 1080p 起步,确认画面稳、延迟可接受,再逐步上调帧率和码率,直到你的网络开始出现明显劣化,回退半档,那个位置就是你这条链路的甜点值——比照搬任何人的参数都可靠。现在就动手:装好 Sunshine 启动服务、浏览器里建好管理员账号、手机上用 Moonlight 完成 PIN 配对,先串一次桌面验证链路,剩下的调优交给时间慢慢磨。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考