Sunshine 游戏串流应用管理快速上手指南:手把手配置你的第一个可串流游戏

发布时间:2026/8/19 9:37:56

Sunshine 游戏串流应用管理快速上手指南:手把手配置你的第一个可串流游戏
Sunshine 游戏串流应用管理快速上手指南手把手配置你的第一个可串流游戏【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine刚把 Sunshine 装好、兴冲冲地在 Moonlight 里点开客户端时很多人会发现一个尴尬的现实应用列表里只有一个孤零零的Desktop。想玩《赛博朋克2077》、想进 Steam 大屏幕模式全都无从下手。Sunshine 作为一款自托管的游戏串流服务器本身只是个管道工把游戏进程接入视频编码再推给 Moonlight真正决定你能串流什么、怎么串流的是它底下的应用管理模块。这篇文章就带你把这个模块彻底摸透。读完本文你将获得一套 3 分钟就能跑通的最简添加流程对 apps.json 配置文件中每个关键字段的通俗解释三种启动方式的适用场景判断方法cmd / detached / auto-detach利用环境变量做分辨率随客户端自动变化的进阶配置五类高频翻车场景的排查思路先把遥控器理解清楚应用管理到底管什么如果把 Sunshine 比作一台带遥控器的电视那么应用管理就是遥控器上那些自定义按钮每个按钮对应一个游戏按下去之后Sunshine 帮你完成切分辨率 → 启动游戏 → 推流 → 退出后复原分辨率这一整套动作。Sunshine 的应用管理核心其实只有两样东西一个配置文件默认叫apps.json与主配置文件sunshine.conf放在同一目录。里面用 JSON 数组登记每一个应用。一个网页界面在浏览器打开https://localhost:47990首次登录会要求你设置用户名和密码务必记牢顶栏的 Applications 页面就是可视化管理入口。两者是所见即所得的关系你在网页上点几下添加的应用最终都会写进 apps.json反过来你手动改好 apps.json 并重启 Sunshine网页上也会同步显示。所以先学会在网页上操作再回头理解 JSON 内容是最平滑的学习路径。3 分钟极速上手添加第一个游戏我们先用最简单的方式让一个游戏能跑起来之后再去理解背后原理。第一步登录 Web UI点击顶栏 Applications 进入应用列表然后点击 Add 新建一个应用。第二步填写三个必填项。以 Steam 里的《求生之路2》AppID 550为例表单字段填入内容说明Application NameLeft 4 Dead 2会显示在 Moonlight 客户端里最好用英文或拼音避免乱码Command Prepations留空稍后讲解这里先不管Detached Commandssteam://rungameid/550让 Steam 去启动游戏Sunshine 不等它结束第三步点 Save回到 Moonlight 客户端刷新应用列表你就能看到新出现的 Left 4 Dead 2点击即可串流。如果这三步走完游戏成功推流恭喜你你已经掌握了 80% 的操作。剩下 20% 的价值在于搞清楚为什么 Steam 游戏要用 Detached 而不是普通 Command——这正是很多新手第一次配游戏就翻车的根源。深度拆解三条启动通道对应三种脾气Sunshine 给每个应用提供三条启动通道理解它们就像理解三种不同性格的客人通道一cmd —— 进门就坐不聊不走cmd是最直接的启动方式Sunshine 启动该命令持续盯住这个进程一旦它退出串流会话立刻结束。适合那些游戏进程 游戏本体的情况比如直接运行game.exe或.sh脚本。{ name: My Game, cmd: C:\\Games\\MyGame\\game.exe, working-dir: C:\\Games\\MyGame, image-path: mygame.png }注意两点working-dir是工作目录不填则默认取可执行文件所在目录Windows 路径里的反斜杠在 JSON 中要写成\\。通道二detached —— 打个招呼就走不等他坐detached里的命令被启动后Sunshine 不追踪它的生命周期串流会话与命令是否退出互不干扰。这专门用来对付那些壳进程会自己退出的启动器——最典型的就是 Steam你用steam://rungameid/550唤起 Steam 后那个启动进程很快就结束如果放在cmd里串流会当场断开。放进detached就万事大吉。通道三auto-detach —— 先等等看他走了我再撒手auto-detach是个自动判断开关开启后Sunshine 先像cmd一样等待启动进程如果进程在短时间默认约 5 秒内仍在运行就转为脱离跟踪如果很快退出则保持连接。这是解决有些游戏启动器跑得慢容易被误判退出的平衡方案Steam 游戏官方默认配置里就同时用了detachedauto-detach: true。三条通道的取舍可以记成一句口诀程序自己就是本体用 cmd程序是传话筒用 detached拿不准就用 auto-detach 兜底。理解 apps.json一个应用就是一张配置卡在 Web UI 里点出的每个应用最终都以 JSON 对象的形式躺在 apps.json 中。逐个字段认识它你就能跳出网页表单的束缚做出更灵活的配置字段类型作用示例namestring应用显示名Moonlight 里看到的名字Cyberpunk 2077cmdstring/array主启动命令game.exedetachedarray脱离式启动命令可多条[steam://rungameid/1091500]prep-cmdarray预备命令组含 do / undo 两段[{do:...,undo:...}]working-dirstring工作目录C:\\Games\\Cyberpunkimage-pathstring应用图标路径cyberpunk.pngauto-detachbool是否自动脱离跟踪truewait-allbool是否等待所有进程结束再判断退出trueelevatedbool是否以管理员权限运行Windows 服务模式falseexclude-global-prep-cmdbool是否跳过全局预备命令trueoutputstring命令日志输出文件路径game.logenvobject附加环境变量仅能直接改文件{MY_VAR:1}以仓库自带的 Windows 版默认 apps.json 为例你能看到最典型的组合{ env: {}, apps: [ { name: Desktop, image-path: desktop.png }, { name: Steam Big Picture, cmd: steam://open/bigpicture, prep-cmd: [ { do: , undo: steam://close/bigpicture } ], auto-detach: true, wait-all: true, image-path: steam.png } ] }注意 Desktop 这个特殊应用它没有任何命令作用是只推流桌面、不启动任何程序。如果你不小心删了它新建一个名为 Desktop、图标为desktop.png的应用就能找回来。预备命令进门安检与出门复原prep-cmd是整个应用管理中最有威力的字段也是实现体验升级的关键。它由一对命令组成do应用启动前执行像进门安检失败则中止本次启动undo串流结束后执行像离场收拾用来恢复现场。它最常见的用途是按客户端请求动态切换分辨率。Sunshine 会把客户端的请求以环境变量的形式传给预备命令你可以随时取用环境变量含义示例值SUNSHINE_CLIENT_WIDTH客户端请求的画面宽度1920SUNSHINE_CLIENT_HEIGHT客户端请求的画面高度1080SUNSHINE_CLIENT_FPS客户端请求的帧率60SUNSHINE_CLIENT_HDR客户端是否请求 HDRtrue / falseSUNSHINE_APP_NAME当前应用名Cyberpunk 2077SUNSHINE_APP_ID当前应用 ID12345Linux 的 X11 环境下一份跟随客户端切分辨率的配置长这样{ name: Game with Adaptive Resolution, cmd: game.sh, prep-cmd: [ { do: sh -c \xrandr --output HDMI-1 --mode ${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT} --rate ${SUNSHINE_CLIENT_FPS}\, undo: xrandr --output HDMI-1 --mode 3840x2160 --rate 120 } ] }Windows 上同理只是换成了 QRes 之类的命令行工具并把环境变量写成%SUNSHINE_CLIENT_WIDTH%的形式。注意undo里的数值是写死的——它代表串流结束要恢复成的原始分辨率与客户端无关。此外prep-cmd还支持elevated子字段让某条预备命令以管理员权限执行仅 Windows 服务安装模式有效。如果你要配合反作弊系统运行需要提权的游戏可以把整条cmd的elevated设为true。进阶玩法三个让效率翻倍的技巧技巧一全局预备命令一次配置处处生效除了每个应用自己的prep-cmdSunshine 在配置里还支持global_prep_cmd全局预备命令它会在每个应用启动前后执行。适合放所有游戏都要做的准备工作比如关闭显示器省电策略、同步系统时钟。若某个应用不需要把它的exclude-global-prep-cmd设为true即可跳过。技巧二环境变量传参一套模板多种应用apps.json 顶层支持env对象给所有应用注入自定义环境变量单个应用也能通过env覆盖。你可以在命令里用$(HOME)引用主目录$$会被替换成$让同一份配置在不同机器上迁移而无需改路径。比如把游戏放在$(HOME)/Games下cmd写成$(HOME)/Games/MyGame/start.sh换台电脑也不用改。技巧三手工编辑后如何安全生效修改 apps.json 后需要重启 Sunshine 服务才能重新加载。Windows 上在系统托盘图标右键选择重启Linux 上用systemctl --user restart sunshine或对应发行版的启停命令。改之前先备份原文件这是任何配置文件操作的铁律。常见坑位五类高频翻车现场与对策坑位一点开游戏串流立刻断开。八成是启动命令放在了cmd里而那个程序其实是个传话筒Steam、Epic 启动器都算。把命令移到detached或者开启auto-detach问题基本消失。坑位二Steam 唤起了但游戏没进。steam://rungameid/AppID要求 Steam 客户端已登录且 AppID 正确。先在主机上手动确认steam://rungameid/550能正常拉起游戏再回来检查配置。另外 Flatpak 安装的 Sunshine 必须给命令加flatpak-spawn --host前缀才能触达宿主机否则命令会被沙箱吞掉。坑位三Windows 下路径老是报错。JSON 里反斜杠必须写成\\路径含空格时必须加引号例如cmd: \C:\\Program Files (x86)\\Steam\\steam.exe\。偷懒的办法是能用 URI 启动如steam://、com.epicgames.launcher://就优先用 URI官方都推荐这种方式最省心。坑位四串流中鼠标键盘没反应。这通常不是应用配置问题而是输入权限问题。Linux 上把运行 Sunshine 的用户加入input组sudo usermod -a -G input 你的用户名然后重新登录Windows 上检查虚拟手柄驱动如 ViGEmBus是否安装。坑位五分辨率不对画面拉伸变形。检查预备命令里的xrandr/ QRes 命令是否真的执行成功以及目标显示器是否支持该模式。iOS、macOS 客户端常请求非标准分辨率需要先用cvt生成新模式再应用而不是指望显示器原生支持。下一步从能跑到跑得舒服回顾一下这条学习路径先用 Web UI 三步添加第一个 Steam 游戏再理解三条启动通道的脾气接着读透 apps.json 的字段然后用预备命令实现分辨率自适应最后避开五个高频坑。你已经从只会看 Desktop进化到能徒手写配置的阶段了。接下来建议你做三件事打开https://localhost:47990把刚才的配置再点一遍对照本文字段表逐个确认到 Troubleshooting 页面看看日志熟悉正常启动时日志长什么样出问题时能更快定位把你最常玩的 3~5 个游戏全部添加完并为它们配上封面图——一份打理得当的应用列表是流畅串流体验的一半。记住Sunshine 的应用管理不是配一次就完事而是一个随你的游戏库同步生长的清单。把这块配置练熟你离随时随地无缝开玩就只差一个 Moonlight 客户端了。【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于Arduino与树莓派的风力发电机智能监控系统DIY指南

基于Arduino与树莓派的风力发电机智能监控系统DIY指南

2026/8/19 9:37:56

1. 项目缘起:为什么需要自己动手监控风力发电机?如果你在自家后院、农场或者一个偏远的实验场地架设了一台小型风力发电机,你可能会遇到一个很实际的问题:我怎么知道它现在转得怎么样?它今天发了多少电?叶片…

VS Code配CodeWhisperer踩坑实录:从报错到流畅补全的5个关键设置

VS Code配CodeWhisperer踩坑实录:从报错到流畅补全的5个关键设置

2026/8/19 9:27:55

VS Code配CodeWhisperer踩坑实录:从报错到流畅补全的5个关键设置 AWS深度学习开发实战:从CodeWhisperer集成到生产环境部署的完整指南 上周五准备发版前,团队突然要求所有AI辅助代码必须通过AWS认证。这个看似简单的合规要求,让我在深度学习基础项目上卡了整整两天。本文将详细…

XMC1300与DAVE开发环境入门:从零开始图形化配置电机控制应用

XMC1300与DAVE开发环境入门:从零开始图形化配置电机控制应用

2026/8/19 9:27:55

1. 从零开始:为什么选择XMC1300与DAVE如果你和我一样,是从STM32或者Arduino这类更常见的平台转过来,第一次拿到英飞凌的XMC1300开发板,打开DAVE开发环境时,大概率会有点懵。这种感觉,就像你习惯了用螺丝刀拧…

ComfyUI Manager 节点列表空白故障排查实战:三招根治 KeyError,让自定义节点管理丝滑如初

ComfyUI Manager 节点列表空白故障排查实战:三招根治 KeyError,让自定义节点管理丝滑如初

2026/8/19 10:27:58

ComfyUI Manager 节点列表空白故障排查实战:三招根治 KeyError,让自定义节点管理丝滑如初 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to instal…

BBDown 完整使用指南:免费开源的哔哩哔哩命令行下载器,三步上手到批量自动化

BBDown 完整使用指南:免费开源的哔哩哔哩命令行下载器,三步上手到批量自动化

2026/8/19 10:27:58

BBDown 完整使用指南:免费开源的哔哩哔哩命令行下载器,三步上手到批量自动化 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 你是不是也遇到过这样的时刻&#…

C++创建对象关于new的常见误区

C++创建对象关于new的常见误区

2026/8/19 10:27:58

摘要:本文澄清了C中关于new操作符的常见误解,指出在C中创建对象完全不需要使用new。通过对比Java/C#的引用语义与C的值语义,解释了new仅用于手动堆内存分配的本质。文章详细分析了带new与不带new的四大区别(内存位置、返回类型、生…

Sunshine 串流服务容器化部署实战:3 步把书房主机搬到客厅电视

Sunshine 串流服务容器化部署实战:3 步把书房主机搬到客厅电视

2026/8/19 10:27:58

Sunshine 串流服务容器化部署实战:3 步把书房主机搬到客厅电视 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine 是一款开源的自托管游戏串流服务端&#xff0c…

BetterJoy实战清单:3步让Switch手柄在Windows上满血复活

BetterJoy实战清单:3步让Switch手柄在Windows上满血复活

2026/8/19 10:27:58

BetterJoy实战清单:3步让Switch手柄在Windows上满血复活 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.co…

基于4节点ESP与Blynk 2.0的智能家居核心PCB设计与实战

基于4节点ESP与Blynk 2.0的智能家居核心PCB设计与实战

2026/8/19 10:17:58

1. 项目概述:一个面向智能家居的“大脑”级PCB设计 最近几年,自己动手做智能家居的乐趣,已经从单纯的软件编程,逐渐渗透到了硬件层面。很多朋友已经不满足于使用现成的智能插座、传感器,而是希望从电路板开始&#xff…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/19 9:17:18

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

SQL 调优 [ 2 ]

SQL 调优 [ 2 ]

2026/8/19 0:07:32

type列详解EXPLAIN输出的type列描述了表是如何连接的,性能从最好到最差的排序如下:systemconsteq_refreffulltextref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALL接下来我们对 type列 做详细讲解。我们都知道,想要评估一条…

正式评优怎么选投票工具?人人微投票审计级防刷能力实测

正式评优怎么选投票工具?人人微投票审计级防刷能力实测

2026/8/19 0:07:32

在线上投票工具遍地开花的今天,选择一个合适的平台,本质上是在做一道关于场景与需求的匹配题。人人微投票是一个很典型的案例——它的产品逻辑、技术架构和商业模式,都围绕着“正式评选”这个细分场景深度扎根,也因此形成了自己鲜…

15 天 3 连发:DeepSeek 的「机枪」节奏,到底在下什么棋?

15 天 3 连发:DeepSeek 的「机枪」节奏,到底在下什么棋?

2026/8/19 0:07:32

15 天 3 连发:DeepSeek 的「机枪」节奏,到底在下什么棋?回看 2026 年 8 月这半个月,DeepSeek 的动作密度堪称疯狂:月初端出便宜快速的 V4-Flash,8 月 13 日同一天甩出 V4-Pro 正式版 开源 Harness 框架&am…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…