☰
Sunshine 快速入门指南:Moonlight 串流主机完整上手手册
2026/10/27 18:44:35 网站建设 项目流程

Sunshine 快速入门指南:Moonlight 串流主机完整上手手册

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

Sunshine 是自托管游戏串流主机:装在自己的 PC 上,把画面、音频和手柄输入推给任意 Moonlight 客户端,电视、手机、另一台电脑都能当屏幕。边界先讲清:一台 Sunshine 同一时间只维持一条活跃串流,第二台设备发起连接会顶掉当前会话。

🧠 30 秒建立心智模型

把 Sunshine 想成你自己机房里的一间「直播棚」:它负责抓屏、硬编码、打包推流;Moonlight 客户端是「电视机」,只负责解码播放。串流主机和播放端分工明确,你调参数永远只调「棚」这一侧。

能做什么

  • 用 GPU 硬件编码(nvenc/quicksync/amdvce/vulkan/vaapi)推 1080p、4K 视频 + 系统音频
  • 把键盘、鼠标、手柄输入反向送进主机上的游戏
  • 提供https://localhost:47990的 Web 管理面板,管理应用、设备、配置
  • 同网段内 Moonlight 自动发现主机,零配置连接
  • 外网场景下用upnp让路由器自动开端口映射

不能做什么

  • 不能多人同时各看各的:只有一条活跃串流,带宽也不会"平分"
  • 不自带播放端,必须搭配 Moonlight 客户端(各平台入口在 Web 面板 Featured Apps 页)
  • macOS 目前不支持虚拟手柄;Linux 上 HDR 串流仍是实验性支持

最小闭环:5 步到第一帧画面

第 1 步:安装 Sunshine

Windows 装官方 MSI 安装包(自带系统服务,装完即自启);macOS 把Sunshine.app拖进 Applications,首次启动授予屏幕录制、麦克风权限;Linux 加官方源后装包:

sudo apt update && sudo apt install sunshine

验证信号:Windows 任务栏托盘出现 Sunshine 图标;macOS 菜单栏出现图标;Linux 跳到第 2 步。想从源码构建的,clone 仓库(https://gitcode.com/GitHub_Trending/su/Sunshine)后 Linux 执行bash scripts/linux_build.sh,macOS 执行scripts/macos_build.sh。

第 2 步:启动 Linux 用户级服务

systemctl --user --now enable app-dev.lizardbyte.app.Sunshine

验证信号:命令无报错返回,且systemctl --user status app-dev.lizardbyte.app.Sunshine显示active (running)。

第 3 步:设定管理员账号

浏览器打开https://localhost:47990。自签证书会有警告,点继续即可。首次访问要求设定管理员用户名和密码——务必写下来,丢了只能翻配置文件找回。

验证信号:输入用户名密码后登录成功,进入串流主界面。

第 4 步:批准 Moonlight 设备

Moonlight 客户端里手动添加主机(填 Sunshine 本机的局域网 IP),发起连接时客户端会弹出一串 PIN。回到 Sunshine 面板顶部的 PIN 页面输入这串码、给设备起个名字、确认。

验证信号:PIN 页面出现批准成功提示,此后这台设备被记住,不用再输。

第 5 步:添加第一个应用并串出第一帧

进 Applications 页面点 "Add New",填名字、图标、启动命令。命令支持环境变量展开($(HOME)会替换为$HOME的值)。Steam 游戏建议选detached类型,否则串流结束游戏进程会被直接杀掉。

验证信号:新应用出现在应用列表里;Moonlight 客户端点开它,电视/手机出现主机画面且声音正常——闭环完成。

场景化调参:一个表定参数

核心判断只有一条:编码器决定画质和负载,帧率决定手感。进配置页直接用顶部搜索框搜bitrate、encoder、upnp,比翻长列表快。

场景关键参数推荐值取值理由
客厅电视encoder不填(自动选第一个可用硬编码器)software软编在电视大屏分辨率下 CPU 会先崩
客厅电视max_bitrate0,或兜底50000表示完全跟随 Moonlight 客户端请求,想限流再设 5000
客厅电视nvenc_preset1P1 是 NVENC 最快档,低延迟优先;带宽紧张再上调换压缩效率
手机/平板分辨率/帧率(客户端侧)720p–1080p,60 帧客户端解码器和屏幕是瓶颈,先降分辨率测帧率稳定
手机/平板nvenc_preset1编码延迟最低
外网远程max_bitrate3000–5000上行带宽是硬瓶颈,画质参数全部让位
外网远程nvenc_preset2及以上牺牲一点延迟换压缩效率,码流更省
外网远程upnpenabled默认disabled;路由器不支持 UPnP 时改手动转发

手动转发的端口全集(基端口47989,由源码端口偏移推出):TCP47984(客户端 HTTPS)、47989(客户端 HTTP)、47990(Web 面板)、48010(RTSP 信令);UDP47998(视频)、47999(控制)、48000(音频)。光猫+路由的双层 NAT 结构,两层都要转。参数逐项含义见 官方配置文档。

故障速查:顺着分岔问下去

出问题先看 Web 面板Troubleshooting页——实时日志就在里面,每条 warning/error 都带上下文。

Q1 客户端能不能看到主机?同网段却没被发现 → 在 Moonlight 里手动填主机 IP 添加。能发现但连不上 → 进 Q2。

Q2 是网络问题还是参数问题?主机是否插了网线、客户端是否走 5 GHz Wi-Fi 或有线?否 → 先换线/换频,多数"卡顿"到此为止。是 → 进 Q3。

Q3 帧率稳不稳?把分辨率降到 720p 测:稳了 → 瓶颈在带宽,逐级升分辨率定位拐点;仍不稳 → 编码过载,把nvenc_preset降回低档或降到 30 帧。

Q4 有没有声音?配置里的audio_sink是否指到正确的回环设备?否 → 改成对应设备名。是 → macOS 用户确认装了 BlackHole 这类虚拟声卡且 Sunshine 有麦克风权限。

Q5 键鼠/手柄没反应?Linux 用户:运行 Sunshine 的用户在input组里吗?否 → 加组并重新登录才生效。是 → 看日志里输入设备初始化段的报错。

Q6 外网到底通没通?upnp = enabled不等于映射成功——查日志里的 UPnP 映射结果。失败 → 按上文端口清单手动转发,双层 NAT 检查光猫和路由两层。更多细节对照 官方排障文档。

上线前决策清单

硬件与网络

  • 主机走有线;所有客户端在 5 GHz Wi-Fi 或有线环境内
  • 编码器确认是硬件编码(encoder非software)

账号与设备

  • 管理员密码已记录在安全处
  • Moonlight 设备已批准并命名,再次连接无需 PIN
  • 第二个设备发起连接前已知晓:它会顶掉当前串流

参数与外网

  • max_bitrate已按需设置:保持0或兜底5000
  • 外网场景:upnp开启且日志确认映射成功,或 TCP 47984–47990/48010 与 UDP 47998–48000 手动转发生效
  • 常驻类应用(如 Steam 本体)已设为detached,避免退出串流时被杀进程

打开电视,从 Moonlight 里点开你的第一个应用,等第一帧画面亮起来。

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询