尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Sunshine:新手快速部署自托管游戏串流服务器的实战指南

Sunshine:新手快速部署自托管游戏串流服务器的实战指南 Sunshine新手快速部署自托管游戏串流服务器的实战指南【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/SunshineSunshine 是一款开源的自托管游戏串流服务器。它捕获你 PC 的屏幕与系统音频经硬件编码后推送给任意设备上的 Moonlight 客户端。适合想在手机、平板或电视上玩 PC 游戏或搭建家庭串流中心的用户。功能概览屏幕捕获Windows 使用 Windows.Graphics.CaptureLinux 支持 KMS/DRM、Waylandwlroots、X11 与 XDG PortalmacOS 使用 ScreenCaptureKit。硬件编码支持 NVIDIA NVENC、AMD AMF、Intel QuickSync、VAAPI、VideoToolboxGPU 不支持时可回退软件编码。Web 管理界面在https://localhost:47990完成配置、添加应用、配对客户端全程无需改配置文件。手柄仿真在主机端创建虚拟手柄Xbox 360/One/Series、DualShock 4、DualSense、Switch Pro 等让本地游戏识别客户端操作。音频串流同时捕获系统音频并随视频流一起传输。部署前自检硬件、网络与端口准备安装前先对照以下清单确认环境能避免大部分装完连不上的问题检查项要求显卡支持 NVENCNVIDIA、VCE 1.0AMD或 VAAPI/QuickSyncIntel之一均无则只能软件编码CPU / 内存AMD Ryzen 3 或 Intel Core i3 及以上内存 4GB 以上网络服务器与客户端建议有线Cat5e 及以上无线需 5GHz 802.11ac端口TCP 47984–47990UDP 47998–48000系统权限Linux 上需将 Sunshine 运行用户加入input组否则虚拟输入设备键盘、鼠标、手柄不可用系统版本Windows 11Linux 22.04Ubuntu/13DebianmacOS 14.2安装与首次配置Linux用 DEB 包或 AppImage 完成安装从项目 Release 页面下载与发行版匹配的.deb包或 AppImage用包管理器安装最省事。下面的命令安装已下载的 DEB 包sudo apt install ./sunshine_version-1distro版本_arch.deb如果你下载的是 AppImage注意它不支持 KMS 捕获优先用发行版包赋予执行权并注册服务chmod x Sunshine_version_arch.AppImage ./Sunshine_version_arch.AppImage --install包管理器安装的用户用 systemd 用户服务启动并设为开机自启systemctl --user --now enable app-dev.lizardbyte.app.SunshineWindows一条命令装好在 PowerShell 中执行winget 会自动拉取官方 MSI 安装器winget install LizardByte.Sunshine安装完成后建议重启电脑让虚拟手柄驱动生效。macOSHomebrew 安装实验性macOS 版本目前为实验状态手柄暂不支持。添加官方 tap 并安装brew tap LizardByte/homebrew brew install sunshine首次启动时系统会要求授予屏幕录制与麦克风权限全部允许即可。首次配置设置凭证、添加应用、配对客户端启动 Sunshine 后浏览器访问https://localhost:47990浏览器提示证书不安全属正常现象证书为自签名。首次访问会进入欢迎页设置 Web 界面的用户名和密码务必记录下来。在 Applications 页面添加要串流的项目添加一个名为 Desktop 的条目即可串流整个桌面也可以填游戏可执行文件路径。在客户端发起连接时Moonlight 会要求输入 PIN登录 Web 界面在导航栏的 PIN 页面输入配对码并给设备命名即可完成配对。客户端接入各平台 Moonlight 客户端安装方式Sunshine 只负责主机端播放和输入靠 Moonlight 客户端。按下表选择对应平台安装平台客户端获取方式WindowsMoonlight DesktopMoonlight 官网下载macOS / LinuxMoonlight DesktopMoonlight 官网下载Android 手机 / 平板MoonlightGoogle PlayiOS / iPadOSMoonlightApp StoreAndroid TV / Apple TVMoonlight各平台应用商店客户端与 Sunshine 在同一局域网时可自动发现连不上时可在 Moonlight 中手动输入主机 IP 添加。核心机制捕获、编码与传输如何协作捕获Sunshine 按平台选择采集后端。Windows 用 Windows.Graphics.Capture也支持 DXGI Desktop DuplicationLinux 用 KMS/DRM、Waylandwlroots、X11、XDG Portal 或 NvFBCmacOS 用 ScreenCaptureKit。采集到的是原始屏幕帧和系统音频。编码原始帧送入 GPU 硬件编码器压缩为 H.264 或 HEVC 视频流音频用 Opus 编码。就像搬家前先把箱子用真空袋压缩、再装车运输——网络传输的是压缩后的数据而不是原始帧这是延迟和带宽能降到可用水平的关键。传输与输入回注RTSP 用于建立会话音视频走 UDP 47998–48000 端口。输入方向相反你在客户端按下的按键、鼠标移动、手柄操作被发送到主机由主机通过虚拟输入设备Linux 的 uinput、Windows 的 SendInput 或虚拟 HID 驱动注入到本地游戏里。调优与进阶网络优化与安全加固配置入口都在 Web 界面进入 Configuration 页顶部搜索框可以直接定位到任意设置项无需记忆配置文件字段名。场景 1局域网内串流卡顿、掉帧先确认双方网卡协商速度。⚠️ 如果主机网卡远快于客户端如主机 2.5Gbps、客户端 1Gbps突发流量会压垮中间设备的缓存。可用 Linux 的 tc 对 Sunshine 的流UDP 源端口 47998限速省略了创建根 qdisc 和默认类的前几步# 建 1Gbps 限速类并把 UDP 47998 的流划入该类 sudo tc class add dev NIC parent 1: classid 1:10 htb rate 1000mbit ceil 1000mbit sudo tc filter add dev NIC protocol ip parent 1: prio 1 u32 match ip protocol 17 0xff match ip sport 47998 0xffff flowid 1:10如果你遇到个别设备如某些电视丢包率 30% 以上可尝试把主机网卡 MTU 从 1500 降到 1428官方文档将其列为最后的排查手段。场景 2想从外网访问在 Web 界面 Network 页开启 UPnP等价于在sunshine.conf中写upnp enabledSunshine 会自动在路由器上开放串流端口或在路由器手动转发 TCP 47984–47990 与 UDP 47998–48000。场景 3安全加固Web 界面默认就是自签名 HTTPS无需额外开启 TLS。建议使用强密码在 Network 页设置bind_address如bind_address 192.168.1.100把服务限制在特定网卡上外网暴露时只放行串流端口。场景 44K 与 HDR4K 串流要求服务器和客户端都走 Cat5e 以上有线连接。HDR 在 Windows 主机上正式支持Linux 为实验性需要 GPU 支持 HEVC Main 10 或 AV1 10-bit 编码并且要在 Moonlight 客户端设置里打开 HDR否则画面会按 SDR 解码、偏亮。场景 5手柄输入异常如果你遇到 Linux 上手柄无响应把 Sunshine 运行用户加入input组后重新登录。Windows 上 ViGEmBus 已停止维护且只支持 Xbox 360 与 DualShock 4需要 Xbox Series、DualSense、Switch Pro 等完整手柄类型时需安装官方的 Virtual HID Driver付费。项目资源文档与源码导读入门步骤docs/getting_started.md全部配置项及默认值docs/configuration.md网络问题排查限速、MTUdocs/troubleshooting.mdREST API 与示例docs/api.md核心逻辑集中在 src/ 目录想读源码可以从这里入手src/ ├── nvenc/ # NVIDIA NVENC 编码器实现 ├── platform/ │ ├── linux/ # KMS/Wayland/X11 捕获与音频 │ ├── windows/ # WGC 捕获与虚拟手柄驱动 │ └── macos/ # ScreenCaptureKit 捕获 ├── rtsp.cpp # RTSP 会话与信令 ├── network.cpp # UDP 音视频传输 ├── video.cpp # 编码管线 ├── audio.cpp # 音频捕获与 Opus 编码 └── config.cpp # 配置读写社区支持通过 LizardByte 的 Discord 服务器和官方文档站提供构建与贡献流程见 docs/building.md 与 docs/contributing.md。先在你的家用 PC 上装好 Sunshine再按上表在客户端设备安装 Moonlight 完成首次配对。实际效果受网络环境、硬件配置和具体场景影响。【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表