
Sunshine 完全指南搭建游戏串流主机并与 Moonlight 完成联动【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/SunshineSunshine 是一款免费开源的游戏串流主机self-hosted game stream host。它装在你自己的游戏电脑上负责屏幕采集、硬件编码和输入转发你则通过 Moonlight 客户端在手机、平板、电视或另一台电脑上观看和操作。本文不堆砌参数只讲清楚一件事从安装到第一次串流通路中间每一步会发生什么、容易在哪里卡住。先分清 Sunshine 和 Moonlight 的分工串流链路有两端很多人一开始就搞混了Sunshine主机端运行在游戏所在的那台 PC 上把画面抓下来、编码成视频流再把你在客户端上的键盘、鼠标、手柄操作回传进去。Moonlight客户端运行在你观看的任意设备上负责解码播放并提供操作入口。理解这个分工后Sunshine 的核心工作就三块画面采集——用各平台的原生方式抓屏Windows 用 DXGI/WGCLinux 用 KMS/DRM、Wayland、XDG Portal 等macOS 用 ScreenCaptureKit。视频编码——优先走 GPU 硬件编码NVIDIA 的 NVENC、Intel 的 QuickSync、AMD 的 VAAPI/AMF、Apple 的 VideoToolbox没有合适的硬件时才退回软件编码。输入转发——把客户端的操作变成主机能识别的输入包括模拟 Xbox、DualShock、Switch Pro 等虚拟手柄。整个安装和配置过程都在浏览器里完成不需要手写配置文件。按系统选安装方式避开两个坑不同平台推荐的安装路径不一样先对号入座Windows用官方 MSI 安装器默认以服务形式在后台运行。注意更换安装器类型前先手动卸载旧版本。Linux优先用你发行版的官方包DEB、RPM、Arch 包都有。官方包内置了 NVIDIA 编码所需的 CUDA 依赖省去手动处理。macOS目前仍是实验性支持手柄功能不可用先心里有数。FreeBSD官方提供 pkg 安装包但采集只有 X11 和 Wayland手柄功能也有精简。两个容易踩的坑官方文档里是明确写了警告的AppImage 不支持 KMS 采集。如果你的发行版有现成软件包别用 AppImage除非只是临时测试。Docker 镜像对大多数用户不推荐官方文档原话如此——容器内的屏幕采集和输入权限会多出一层麻烦不是好选择。完整的分平台安装步骤在 docs/getting_started.md。如果你还想读源码仓库地址是 https://gitcode.com/GitHub_Trending/su/Sunshine 核心逻辑集中在 src/ 目录。装完之后下一步就是在浏览器里打开它的 Web UI。首次启动打开 Web UI 并设置凭据启动 Sunshine 后在主机浏览器访问https://localhost:47990也可以把 localhost 换成内网 IP用其他设备配置。两件事要有预期浏览器会提示网站不安全。这是自签名证书导致的属正常现象继续访问即可。首次进入时设置用户名和密码。现在就把它们记下来——忘了的话后面还有补救方法但没必要给自己找麻烦。登录后可以先花 30 秒看看界面顶部导航栏有主题切换下拉菜单整个 Web UI 支持多套主题随时可换。界面本身很直观真正的工作在接下来三步加应用、配对客户端、调配置。先从配对说起因为它最接近跑通。5分钟完成首次 Moonlight 配对配对走的是 PIN 码流程实际体验比想象中快在 Moonlight 客户端里找到 Sunshine 这台主机。搜不到就手动按 IP 添加。Moonlight 会提示你输入 PIN。此时回到 Sunshine 的 Web UI点顶部导航栏的PIN入口把 PIN 码填进去给设备起个名字回车确认。看到成功提示后回到 Moonlight 选一个应用串流就开始了。客户端去哪里下不用自己满世界找——Web UI 的Featured Apps页签收录了各平台的 Moonlight 客户端入口和配套工具直接在那边取就行。配对成功只代表通路打通。想让 Moonlight 里有东西可点得先给 Sunshine 添加应用。整理游戏库给 Sunshine 添加应用应用管理在 Web UI 的应用页签本质是在给 Sunshine 一份启动清单。加哪几类最有代表性Desktop桌面不加任何命令流出来就是你的整个桌面。适合远程管理机器或做桌面串流也是新手验证链路的最快方式。Steam注意要用分离detached方式启动 Steam 大画面模式。原因是 Steam 启动时会先跑一个自更新进程然后退出原进程用普通命令方式跑Sunshine 会认为应用立即退出串流秒断。普通游戏/程序填可执行文件路径按需指定工作目录。没填工作目录时默认取程序所在目录。几条运行规则值得记住它们解释了很多为什么我的应用启动就断流串流中再次启动同名应用旧进程会被终止。配置了 prep 命令的prep 失败则整个启动中止。应用进程结束时串流随之结束。各平台含 macOS、Flatpak的应用配置实例包括 URI 启动、环境变量用法都整理在 docs/app_examples.md。游戏库就位后剩下的体验差距主要来自一个地方你的画面用什么方式采集、用什么方式编码。编码与采集平台差异才是体验的分水岭结论先说能用硬件编码就别用软件编码。软件编码全平台可用、兼容性最好但延迟和 CPU 占用都更高只建议当作兜底。各编码 API 的平台分布大致如下编码 API适用 GPU平台NVENCNVIDIALinux / WindowsQuickSyncIntelSkylake 及以后WindowsAMFAMDWindowsVAAPIAMD / Intel / NVIDIALinux / FreeBSDVideoToolboxApple / IntelmacOSVulkan VideoAMD / Intel 等Linux软件编码任意全平台真正的复杂性在 Linux采集方式和编码方式之间存在配对约束。官方 README 里有一张对应矩阵要点是——KMS/DRM、XDG Portal、KWin 采集配合 VAAPI/Vulkan Video/NVENC 都比较自由而NvFBCX11 CUDA采集只能配 NVENC 或软件编码。也就是说X11 NVIDIA 老方案并不是万能组合Wayland 或 XDG Portal 往往是更顺的选择。Windows 侧相对省心但有两个注意点DXGI 桌面复制只能采集负责显示的 GPU如果你想在 eGPU 上采集编码需要接上显示设备让该 GPU 接管输出macOS 则首次运行时会弹屏录和麦克风权限授予后若想让 Sunshine 直接取系统声音把 Audio Sink 留空即可。排错时如果画面出不来九成问题出在采集 编码这对组合上而不是网络。出问题时先排查这三处Web UI 的 Troubleshooting 页签能翻到全部运行日志逐条看警告和错误是最直接的定位手段。但在翻日志之前按现象先做这几步能省下大量时间打不开 Web UI先查防火墙——47990 端口没放行的情况下局域网内的其他设备连不上。这是配对了半天客户端找不到主机的最常见原因。忘了 Web UI 的账号密码不用重装。以命令行方式运行一次sunshine --creds {新用户名} {新密码}这是官方排错文档给出的重置凭据方式替换花括号内容即可AppImage 用户把sunshine换成对应 AppImage 路径。画面卡、延迟高官方文档对此的态度很明确决定串流体验的不是裸带宽而是链路稳定性——低延迟、低抖动、几乎无丢包。想量化验证在主机上运行iperf3 -s开一个测试服务端在客户端跑一条 60 秒的 UDP 测试就能看出抖动和丢包情况比盯着带宽数字猜要靠谱得多。输入没反应鼠标/键盘/手柄Linux 上最常见的原因是运行 Sunshine 的用户不在input组里Windows 上则确认是否装了 Virtual HID Driver——它是驱动级的输入方案ViGEmBus 只算受限回退仅支持 Xbox 360 和 DualShock 4。手柄在 Steam 里能用、进游戏就不认时检查一下 Steam 的手柄支持设置有时把主机的物理手柄暂时禁用、让 Sunshine 的虚拟手柄成为第一个手柄反而能解决。更多场景含 pfSense 防火墙规则、无头主机 SSH 启动等见 docs/troubleshooting.md。配置文件与几个值得记住的细节配置全部在 Web UI 里改顶部搜索栏可以直接搜任意选项——所有选项按 General、Input、Audio/Video 等分组改完即生效不用找文件。几个实用细节配置文件是sunshine.conf。不指定路径就用默认位置文件不存在时会自动创建。想指定路径的话启动时把目录作为参数传给 sunshine。串流默认走 47989 端口防火墙策略要覆盖到它而不只是 Web UI 的 47990。串流进行中有两个快捷键CtrlAltShiftN显示/隐藏光标远程桌面场景很实用CtrlAltShiftF1/F12切换串流显示器。全部选项的说明在 docs/configuration.md遇到某个选项不确定含义时查它比搜论坛快。收尾按顺序走一遍就能跑通Sunshine 的门槛不在安装而在采集 编码 端口放行这条主链路上任何一环没对齐。把顺序理顺第一次跑通通常不超过半小时。接下来照做即可按系统选择官方包安装 Sunshine启动后访问https://localhost:47990并记下凭据。在应用页签至少添加一个 Desktop 应用作为链路验证的保底选项。在 Featured Apps 页签下载对应平台的 Moonlight 客户端完成 PIN 配对。按显卡类型确认编码方式NVIDIA 选 NVENCIntel 核显选 QuickSyncAMD 在 Linux 上优先考虑 VAAPI。串流卡顿或延迟异常时用 iperf3 验证主机与客户端之间的链路抖动再看 Troubleshooting 日志定位。主链路通了之后再去动分辨率、刷新率、音频这些调优项才有意义——顺序反了你很难分清是配置问题还是环境问题。【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考