2026/8/19 6:03:36

如何 5 分钟搞定 Sunshine 游戏库配置:新手友好的应用添加指南

如何 5 分钟搞定 Sunshine 游戏库配置:新手友好的应用添加指南 如何 5 分钟搞定 Sunshine 游戏库配置新手友好的应用添加指南【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine想象一下这个场景你在客厅的平板上打开了 Moonlight想串流玩《赛博朋克 2077》可游戏库里翻来覆去只有一个桌面选项。折腾了一晚上Sunshine 装好了、串流也通了偏偏卡在游戏加不进去这一步。别急这篇文章就是为此刻准备的——我会带你走一遍 Sunshine 游戏串流的应用配置全流程从零开始5 分钟让第一个游戏出现在你的游戏库里。5 分钟快速上手从 Web UI 添加第一个游戏Sunshine 的配置入口其实很友好。打开浏览器访问https://localhost:47990默认端口登录后找到左侧的Applications应用页面你会看到类似下面的界面添加游戏的路径短得惊人点Add new新建一个应用填一个你认识的名字比如赛博朋克 2077在Command里填游戏主程序的完整路径点Save保存回 Moonlight 刷新。没了真的就这么多。如果你玩的是一些直接双击 exe 就能启动的独立单机游戏到这里任务已经完成 80%。下面这份最小配置就是一个典型例子{ name: 赛博朋克 2077, cmd: D:\\Games\\Cyberpunk 2077\\bin\\x64\\Cyberpunk2077.exe, working-dir: D:\\Games\\Cyberpunk 2077, image-path: cyberpunk.png }working-dir告诉 Sunshine 去哪找相对路径的文件image-path则是游戏封面图——不填也能用只是游戏库看起来光秃秃的。把 apps.json 想成一份游戏点餐单简单来说Sunshine 的游戏库管理核心就是一份叫apps.json的配置文件。Web UI 上你点按钮填写的每个字段最终都会写进这份 JSON 里。你可以把它理解成给串流服务列的一份游戏点餐单每个应用就是一道菜cmd是主料prep-cmd是上菜前的准备工作detached则是让后厨自己忙不用等服务生的特殊做法。配置文件放在哪不同平台位置不一样记住一个原则它和 Sunshine 的主配置文件在同一个目录。系统配置目录Linux / macOS~/.config/sunshine/Windows%ProgramFiles%\Sunshine\configDocker/config平时用 Web UI 就够但当你需要批量导入、或想用文本编辑器做精细调整时找到这份文件会很有帮助。完整的字段说明可以在项目的 configuration.md 里慢慢翻。闯关一把桌面程序变成可串流应用新手的第一关是弄明白主命令和串流会话的关系。Sunshine 的逻辑很朴素你指定一个cmd它启动这个进程这个进程退出时串流会话就结束。所以如果你的游戏是启动器launcher或者会派生多个子进程光靠cmd就会出问题——游戏刚起来主进程退出了串流跟着就断。这时候你需要第二个武器detached分离式命令。闯关二Steam 游戏一键添加为什么必须用 detached如果你玩的是 Steam 或 Epic 平台的游戏恭喜你有更省事的方案——直接用平台的 URI 协议。Steam 游戏的启动链接长这样steam://rungameid/1091500Epic 则是com.epicgames.launcher://apps/游戏ID?actionlaunch。把这类链接填进detached字段Sunshine 只负责叫醒平台剩下的事交给平台自己处理。为什么必须用detached因为 Steam 启动后会自我更新、原进程立刻退出。若你把steam填进cmd串流会话会瞬间失败。来看看 Steam Big Picture 的官方推荐配置{ name: Steam Big Picture, detached: [steam://open/bigpicture], prep-cmd: [ { do: steam://open/bigpicture, undo: steam://close/bigpicture } ] }cmd和detached的区别用一张表说清楚对比项cmd主命令detached分离命令适用场景独立 exe退出即结束串流启动器 / 平台游戏 / 常驻进程串流结束时机命令进程退出需手动结束或等超时典型代表单机游戏主程序Steam、Epic、浏览器顺带一提Web UI 里还有个auto-detach开关勾上之后即使填在cmd里也会自动按分离方式处理对拿不准的命令是个不错的兜底选项。闯关三prep-cmd 最简用法与避坑如果你觉得上面这些还不够高级那prep-cmd预备命令才是 Sunshine 应用配置里最值钱的部分。它的设计是成对的do在游戏启动前执行undo在串流结束时执行。最经典的用法是动态调整分辨率——客户端要 720p你总不能每次都手动切分辨率吧{ name: 艾尔登法环, cmd: eldenring.exe, prep-cmd: [ { do: cmd /C \C:\\Tools\\QRes.exe /X:%SUNSHINE_CLIENT_WIDTH% /Y:%SUNSHINE_CLIENT_HEIGHT% /R:%SUNSHINE_CLIENT_FPS%\, undo: C:\\Tools\\QRes.exe /X:1920 /Y:1080 /R:60 } ] }注意到%SUNSHINE_CLIENT_WIDTH%这类变量了吗这是 Sunshine 注入的环境变量会实时反映客户端的请求用它们就能实现客户端要什么分辨率主机就切什么分辨率。常用的几个变量如下环境变量含义示例值SUNSHINE_CLIENT_WIDTH客户端请求的宽度1920SUNSHINE_CLIENT_HEIGHT客户端请求的高度1080SUNSHINE_CLIENT_FPS客户端请求的帧率60SUNSHINE_CLIENT_HDR是否请求 HDRtrueSUNSHINE_APP_NAME当前应用名称艾尔登法环Linux 上同理把 QRes 换成xrandr即可xrandr --output HDMI-1 --mode ${SUNSHINE_CLIENT_WIDTH}x${SUNSHINE_CLIENT_HEIGHT}。注意别把undo忘了否则串流结束屏幕分辨率切不回来主机就只能委屈地待在 720p 里了。整个串流会话的生命周期可以用下面这张图来理解闯关四游戏秒退和分辨率不匹配的排障配置过程中翻车很正常最常见的两个坑我也替你踩过了。游戏一启动串流就断八成是命令写进了cmd而游戏实际是启动器。解决方案是换成detached或者勾上auto-detach。画面和客户端分辨率对不上多半是没配prep-cmd或者环境变量没传对。先手动执行一次do里的命令验证能否生效再回 Web UI 里跑一遍端到端测试。鼠标键盘手柄没反应Linux 下记得把 Sunshine 运行用户加进input组sudo usermod -a -G input 你的用户名Windows 则检查虚拟手柄驱动装没装。你的行动清单与自查清单到这里理论部分就结束了。剩下的交给行动——照着下面这份清单去添加你的第一个游戏吧打开 Web UIhttps://localhost:47990进入 Applications 页面用cmd添加一个独立单机游戏并配上working-dir用detached添加一个 Steam / Epic 平台游戏体会两者的差别给常用的游戏配一对prep-cmddo/undo至少让分辨率自适应一次从 Moonlight 发起一次完整串流验证启动→游玩→退出全流程确认串流结束后主机的分辨率和窗口状态都恢复原样自查清单其实也是上面这几条——如果你逐项打勾都通过了恭喜你已经超过了 90% 只停留在能连上阶段的玩家。游戏库配置这件事本质上就是一场把命令写对的练习多配几个游戏你自然就熟能生巧了。现在去添加你的第一个游戏吧【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考