Sunshine 自托管游戏串流指南:从安装配对到外网远程的全参数手册
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一个装在自己电脑上的自托管游戏串流主机,把画面、音频和手柄输入推给任意 Moonlight 客户端。先把一条硬边界说死:同一时间它只维持一条活跃串流,第二台设备连进来会挤掉当前会话,多人各玩各的做不到。
🧭 先对号:三类人值得装,两类人别碰
判断标准只有一条:你是否需要"一台主机、一个玩家、多块屏幕"。
适合你,如果——
- 有一台带 AMD / Intel / NVIDIA 显卡的主机,想在电视、手机、平板上串着玩。硬件编码覆盖三大厂商,AMD 要 VCE 1.0 及以上,Intel Linux 侧要 VAAPI 可用卡
- 坚持自托管:整条串流链路走自己的网络,不经过任何云机房
- 客户端平台随便挑:Android、iOS、macOS、Windows、Linux 都有 Moonlight
不适合你,如果——
- 想让几个人同时各串各的:一条流只服务一个客户端,这是写死的,没有带宽平分一说
- 没有任何硬件编码器还想要 4K 大屏:软件编码全平台可用,但 CPU 底线只是 Ryzen 3 / i3、4GB 内存,4K 下 CPU 先崩
- 网络只有弱 2.4G Wi-Fi:官方最低要求主机和客户端都在 5GHz 802.11ac 或有线环境
🚀 五步跑通第一条串流
1. 把 Sunshine 装进主机
装官方包,别从源码开始折腾。
# Linux(Debian/Ubuntu,先加官方源再装) sudo apt update sudo apt install sunshine systemctl --user --now enable app-dev.lizardbyte.app.SunshineWindows 用 MSI 安装包,自带系统服务,装完即自启;macOS 把 DMG 里的Sunshine.app拖进 Applications,首次启动按提示给屏幕录制和麦克风权限。
容易翻车:Flatpak 和 AppImage 都拿不到 KMS 捕获的权限,有发行版原生包就优先用原生包。
2. 打开 Web 管理界面,记下管理员账号
浏览器访问https://localhost:47990,自签证书警告直接"继续访问"。首次访问强制你创建管理员用户名和密码,写下来。
容易翻车:密码忘了别硬猜,停掉服务跑一条sunshine --creds 新用户名 新密码就能重置,方法写在 docs/troubleshooting.md。
3. 给 Moonlight 设备发 PIN 完成配对
Moonlight 客户端里手动添加主机,填 Sunshine 本机的局域网 IP,发起连接时它会显示一串 PIN。回到 Web 界面的 PIN 页面输入这串码、给设备起个名字并批准,之后这台设备被记住。
容易翻车:PIN 页面在导航栏里,不在配置页;批准动作漏掉的话,客户端会一直转圈。
4. 添加第一个应用
进 Applications 页面点 Add New,填名字、图标和启动命令。命令支持$(HOME)环境变量展开,Steam 游戏直接填steam://rungameid/xxx。
容易翻车:应用分cmd和detached两种类型。cmd一退出串流就跟着断,所以 Steam 本体这种常驻进程必须选detached,流起来会立刻失败。
5. 点一下,开始播
Moonlight 里选刚添加的应用。串流中两个快捷键和 Moonlight 一致:Ctrl+Alt+Shift+N隐藏/显示光标,Ctrl+Alt+Shift+F1~F12切换串流用的显示器。
想从源码构建:git clone https://gitcode.com/GitHub_Trending/su/Sunshine,Linux 执行bash scripts/linux_build.sh,macOS 执行bash scripts/macos_build.sh。NVIDIA 显卡自建前要先装 CUDA Toolkit,编译时选定的 CUDA 支持装完再装是补不回来的,见 docs/getting_started.md。
🎚 三套场景的画质参数:默认值、调的时机、调成什么
分辨率和帧率是 Moonlight 客户端端选的,主机侧真正要动的只有码率封顶和编码器行为。encoder默认自动选第一个可用的硬件编码器:NVIDIA 是nvenc,Intel 是quicksync,AMD 是amdvce,Linux 上另有vaapi和vulkan;别选software,CPU 扛不住。配置页顶部有搜索框,直接搜bitrate、encoder、upnp,比翻长列表快。
电视大屏:先 1080p/60,帧率不让步
max_bitrate:默认0,即完全跟随 Moonlight 的请求;想给 Sunshine 兜底限流就填5000(单位 Kbps)起步;4K/60 跑通后按带宽实测往上加nvenc_preset:默认1(P1 最快档),取值 1–7;延迟敏感就保持1;画面发虚且带宽够,再升到 4~5 换压缩效率。官方文档写得很直白:数字越大压缩越好、编码延迟越高
电视端分辨率可以妥协,帧率不行。
手机与平板:先压带宽,帧率守 60
分辨率和帧率在客户端侧压到 720p/60 起步;主机侧先max_bitrate = 5000观察,Wi-Fi 抖动明显就降到3000,帧率不稳就降到 30 起步。
minimum_fps_target:默认0,表示静态画面时最低降到流帧率的一半,取值 1–1000 可自定义;它是省带宽用的,保持0就行,别拿它救卡顿
外网远程:上行带宽说了算
上行是硬瓶颈,画质全部让位:max_bitrate主动限到5000以内,上行只有 30Mbps 就压到3000;帧率 30 起步;nvenc_preset从1调到 5 左右,拿一点延迟换压缩效率。
upnp:默认disabled;外网必开成enabled,Sunshine 会让路由器自动做端口映射。开成功不等于映射成功,路由器不支持 UPnP 就手动转发基址 47989 那一段:TCP 47984–47990 加 UDP 47998、48000、48004;光猫加路由的双层结构,两层都要转
端口布局以基址port(默认47989,取值 1029–65514,改了它整段平移)为准:HTTPS 管理界面在 47990,视频 UDP 流 47998,音频 UDP 48000,控制信道 48004,RTSP 信令 48010,推导自 src/stream.h。
🩺 排错表:先做第一步,再往下钻
原则:别猜。先打开 Web 界面的 Troubleshooting 页,实时日志就在那里,每条 warning/error 都带上下文。
| 症状 | 第一步动作 | 再深入查 |
|---|---|---|
| 忘了 Web 管理密码 | 停服务,跑sunshine --creds 新用户名 新密码直接重置 | 官方排错文档开头就是这个方案,不需要翻配置文件 |
| Web 界面打不开 | 检查防火墙规则是否放行了 47990 | 服务是否真在跑:systemctl --user status app-dev.lizardbyte.app.Sunshine |
| 键鼠/手柄没反应(Linux) | sudo usermod -aG input $USER把用户加进input组,重新登录生效 | 看 docs/troubleshooting.md 里的 udev 规则重载命令 |
| Linux KMS 捕获黑屏(NVIDIA) | 内核参数加nvidia_drm.modeset=1后重启 | Flatpak/AppImage 本来就没有 KMS 权限,换原生包 |
| 完全没声音 | 检查audio_sink是否指到正确的回环设备 | macOS 14+ 留空即用系统 Audio Tap;想同时静音本机喇叭改用virtual_sink |
| 延迟高、画面卡 | 主机插有线、客户端走 5GHz 或有线;先压到 720p 看帧率稳不稳 | 帧率稳了再逐级升分辨率,定位是带宽还是编码瓶颈;主机网速远超客户端(2.5Gb 对 1Gb)就降网卡协商速度,突发丢包会消失 |
| Linux 硬件编码起不来 | 日志出现Could not open codec [h264_vaapi],是 Mesa 默认禁用了 VA-API 硬件编码 | 按文档重编 Mesa 打开-Dvideo-codecs=h264enc,h265enc,或先换nvenc/vulkan验证 GPU 本身没问题 |
| Windows 上 NVIDIA 卡顿 | NVIDIA 控制面板里把vsync:fast关掉试一遍 | 仍卡就降nvenc_preset一档或降到 30 帧 |
✅ 上线前检查清单
- 主机和所有客户端都在 5GHz 802.11ac 或有线环境
- 管理员密码已记下,Moonlight 设备已批准并命名
encoder实际生效的是硬件编码器(nvenc/quicksync/amdvce/vaapi/vulkan),不是software- 需要兜底限流时
max_bitrate已设值,参考值5000 - 外网场景 TCP 47984–47990 与 UDP 47998、48000、48004 的转发生效,双层 NAT 两层都转了
电视还黑着,遥控器一按,主机风扇慢慢转起来——第一条流,亮起来。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考