news 2026/11/4 2:14:42

Sunshine 自托管游戏串流指南:从安装配对到外网远程的全参数手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sunshine 自托管游戏串流指南:从安装配对到外网远程的全参数手册

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.Sunshine

Windows 用 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 2:14:37

WeChatMsg 使用指南:把微信聊天记录离线备份成三种文档

WeChatMsg 使用指南:把微信聊天记录离线备份成三种文档 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…

作者头像 李华
网站建设 2026/11/4 2:14:29

贪心_接水问题

贪心_接水问题一. 算法思路二. 具体代码实现题目链接:贪心_接水问题 一. 算法思路 我们要让平均接水的时间更少,那么肯定让花费时间更少的人排在前面,所以我们要用sort(使用sort要包含算法头文件algorithm)去给接水时间排序,但是…

作者头像 李华
网站建设 2026/11/4 2:12:26

用 REA 解剖 iOS IPA:4 步从哈希清单走到 dylib 加载追踪

用 REA 解剖 iOS IPA:4 步从哈希清单走到 dylib 加载追踪 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea 输入是一份 iOS 应用的 .ipa …

作者头像 李华
网站建设 2026/11/4 2:10:39

Mac 当主机,Linux 当服务器(23)grep 实战——在 10 万行日志里找一根针

摘要:grep 是日志分析的第一把刀,但很多人只会 grep 关键词,结果一屏刷几千行、想统计又数不出来。这篇把 grep 讲透:-c 统计、-n 定位、-v 排除、-i 忽略大小写、-E 扩展正则、-A/-B/-C 看上下文、-f 从文件读模式;再给三条实战管道(404 统计、IP 过滤、/posts/ 访问量)…

作者头像 李华