零门槛搞定 Sunshine 游戏串流手把手把第一个游戏加进你的串流库【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine如果你刚接触 Sunshine 游戏串流多半会遇到同一个坎Sunshine 装好了、Moonlight 也能连上主机了可打开客户端一看能串流的只有桌面想玩的游戏却一个都没有。这篇文章就是带你走完把新游戏添加进 Sunshine 串流库的完整流程从认识应用配置的原理到用 URI 一键拉起 Steam 游戏再到用预备命令解决分辨率不匹配全程像朋友在旁边带着你操作。本文适合游戏串流新手和普通玩家不需要任何编程基础跟着步骤点就行。先把话说清楚Sunshine 里的应用到底是什么在正式开始之前先花 30 秒建立一个直觉。你可以把 Sunshine 当成一个遥控器管家Moonlight手机/平板/电视上的串流客户端把你想玩的程序告诉 SunshineSunshine 负责在主机上把这个程序启动起来再把画面和声音实时传回客户端。而你每添加一个应用其实就是给 Sunshine 一张启动卡片卡片上写着这个程序叫什么名字显示在 Moonlight 里用什么方式把它叫醒直接执行 exe还是发一个steam://链接启动之前和结束之后要不要做一些准备工作比如临时改分辨率这些卡片被集中存放在一个名为apps.json的配置文件里。好消息是你完全不需要手写这份文件Sunshine 的 Web 界面会替你把卡片生成好你只需要填表。第一步找到应用管理的大门打开浏览器访问 Sunshine 的管理界面默认地址是https://localhost:47990第一次登录会让你设置用户名和密码。登录后顶部导航栏里找到Applications标签页这里就是你管理所有串流应用的总控制台。在这个页面上你会看到已有的应用卡片比如 Sunshine 预置的Desktop桌面和Steam Big Picture每张卡片都带Edit编辑和删除按钮底部有一个醒目的Add New按钮。接下来的所有操作都从点这个按钮开始。小提示Sunshine 预置了Desktop应用它就是你在 Moonlight 里看到的桌面入口别删它关键时刻能救命。第二步看懂一张启动卡片上要填什么点下Add New后弹出的编辑表单对应到配置文件里就是一条应用的 JSON 记录。核心字段其实没几个用大白话解释一遍表单里的叫法配置文件字段一句话解释举个小例子应用名称name显示在 Moonlight 列表里的名字赛博朋克2077主命令cmd直接执行的启动命令C:\\Games\\cyberpunk\\bin\\x64\\Cyberpunk2077.exe分离命令detached发出去就撒手不管的命令[steam://rungameid/1091500]预备命令prep-cmd启动前/结束后自动做的准备工作[{do: 关闭壁纸, undo: 恢复壁纸}]工作目录working-dir以哪个文件夹作为命令的家C:\\Games\\cyberpunk图标image-path显示在列表里的小图片cyberpunk.png看到prep-cmd可能有点懵它是新手最容易忽略、却是最实用的功能。可以把它理解为游戏启动前的自动准备工作比如很多游戏在非标准分辨率下会黑屏你就可以在do里写一条命令把分辨率切到客户端请求的值在undo里写一条命令等游戏退出后把分辨率改回来。第三步按启动方式给游戏选配方同一个游戏不同的平台和渠道最适合的启动方式完全不一样。填表前先问自己一个问题这个游戏能被一条链接或命令直接叫醒吗判断方法看下面这张决策图三种方式的适用场景一句话各说清楚主命令cmd适合老老实实的可执行程序双击能直接跑的那种。Sunshine 会盯着这个进程游戏一退串流就结束。分离命令detached适合叫醒即走的启动方式比如给 Steam 发steam://链接。命令发出后 Sunshine 不追踪进程所以像 Steam 这种自己更新自己、旧进程会退出的程序必须用这种否则串流会瞬间断掉。URI 链接本质是被系统注册表翻译成命令的启动方式Steam、Epic、Ubisoft 都支持。它是跨游戏最稳定的方案因为哪怕游戏换了安装路径URI 依然有效。第四步实战演示——把一款 Steam 游戏加进来现在动真格的。以某款 Steam 游戏为例游戏 ID 用 1091500 占位你换成自己的即可我们走一遍完整流程。1. 填写基础信息在编辑表单里应用名称填游戏名比如我的 Steam 游戏启动方式选择分离命令在命令框里填[steam://rungameid/1091500]2. 顺手填上退出后的善后工作如果希望游戏退出后自动帮你关掉 Steam 的大屏幕模式可以在预备命令里加一条撤销操作。Sunshine 内置的 Steam 应用就是这么干的[ { do: , undo: steam://close/bigpicture } ]do是启动前执行的undo是串流结束时执行的。这里do留空意思是启动前啥也不用干。3. 保存并重启客户端保存后注意一个容易踩的坑Moonlight 里的应用列表是客户端启动时读取的不是实时刷新的。所以添加完应用要把 Moonlight 客户端整个退出重开新的游戏才会出现在列表里。第五步Linux 用户请看——Flatpak 应用怎么启动如果你在 Linux 上装的是 Flatpak 版 Steam 或游戏直接在detached里写steam://会失败因为 Flatpak 应用运行在沙箱里。正确姿势是用flatpak-spawn --host把命令递出沙箱交给宿主机执行{ name: Steam Big Picture, detached: [flatpak-spawn --host setsid steam steam://open/bigpicture], prep-cmd: [ { do: flatpak-spawn --host setsid steam steam://open/bigpicture, undo: flatpak-spawn --host setsid steam steam://close/bigpicture } ] }同理其他沙箱化的应用Snap 等也可以套用这个思路先查清楚如何从沙箱外启动它再填进分离命令。第六步分辨率不对用预备命令一键修正这是应用配置里性价比最高的一招。很多串流新手遇到的画面模糊比例不对全屏黑边根源是主机分辨率没跟着客户端走。解决办法让预备命令读取客户端请求的分辨率动态切换。Sunshine 会把客户端的信息通过环境变量传给预备命令常用的是这几个环境变量含义典型值SUNSHINE_CLIENT_WIDTH客户端要求的画面宽度1920SUNSHINE_CLIENT_HEIGHT客户端要求的画面高度1080SUNSHINE_CLIENT_FPS客户端要求的帧率60SUNSHINE_CLIENT_HDR客户端是否支持 HDRtrue / falseSUNSHINE_APP_NAME当前正在启动的应用名我的 Steam 游戏SUNSHINE_APP_ID当前应用的唯一编号3比如在 Linux 的 X11 环境下用xrandr做动态分辨率的do/undo一对命令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这类命令行切分辨率的工具。要点只有两个do里用环境变量跟随客户端undo里写死你自己的常用分辨率做恢复。配置完先过一遍验收清单再欢呼游戏加进去不等于万事大吉按下面这份清单快速验收能省下你大把排查时间客户端Moonlight重启后列表里能看到新应用点击启动后10 秒内主机上能看到游戏进程起来串流画面与主机分辨率一致无黑边、无拉伸退出游戏后串流正常结束、分辨率恢复原样如果游戏起不来先查日志Web 界面右上角菜单里能看到运行日志里面有启动命令的完整输出新手最常栽的三个坑也提前预告游戏启动即断开八成是把需要分离启动的程序写进了cmd改成detached或加auto-detach: true就好。Linux 下按键没反应确认 Sunshine 的运行用户属于input组执行sudo usermod -a -G input 你的用户名重启后生效。列表里看不到新应用记住那句口诀——客户端不刷新应用不出现重启 Moonlight 而非只是切回主页。结尾现在就动手打开你的 Sunshine Web 界面https://localhost:47990点下Add New把最常玩的那款游戏加进串流库然后用 Moonlight 实测一次。从今天起躺在沙发上用平板串流 Steam 游戏、或者临时把桌面分辨率切成电视支持的规格都只是一次点击的事。配置过程中卡住了也别慌Sunshine 官方文档对每个配置项都有详细说明社区里也有一堆现成的配置示例可以参考大胆试就行。【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考