Sunshine 游戏串流实战:4条部署路径 + 调优避坑速查
2026/9/4 23:44:05 网站建设 项目流程

Sunshine 游戏串流实战:4条部署路径 + 调优避坑速查

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

Sunshine 是一款自托管游戏串流服务器,把游戏画面经 GPU 硬件编码推给 Moonlight 客户端。它让客厅电视、平板、手机都能低延迟玩你的游戏主机,全程局域网传输。适合会基本命令行操作、想在自有设备上串流游戏的新手和普通开发者。

它值不值得用

零成本— 开源免费,无订阅费和使用限制低延迟— 局域网 + 硬件编码,画面接近本地运行隐私可控— 数据只走自家网络,不过第三方服务器三端覆盖— Windows、Linux、macOS 均有一等支持换码器省心— NVENC、AMD AMF、Intel QuickSync 自动适配

底层怎么跑的

整个系统按职责拆成五块,各管一段:

捕获层— 从屏幕抓帧(Windows 用 DXGI/D3D11,Linux 走 KMS/Wayland/X11),优先走显存零拷贝编码层— 统一接口包住各家硬件编码器,选不到硬件时退到软件编码传输层— RTSP 协商会话,UDP 推流,UPnP(自动帮你开放端口)打通路由器输入层— 虚拟出键盘鼠标手柄,反向注入游戏机配置层— 配置文件加 Web UI,改完即生效

关键实现可看:视频编码入口 src/video.cpp、会话与传输 src/rtsp.cpp、各平台捕获与输入 src/platform/。

怎么装上去

先说结论:绝大多数人走官方二进制,别自己编译。

路径 A:官方安装包(推荐)

# Linux (Debian/Ubuntu):下载后直接安装 sudo dpkg -i ./sunshine-ubuntu-24.04-amd64.deb # Linux 服务:启动并设置开机自启 systemctl --user --now enable app-dev.lizardbyte.app.Sunshine

Windows 下双击 MSI 安装向导即可,macOS 下可用 Homebrew 的 sunshine 包。适合所有人。

不想碰系统包管理器?容器隔离一下:

路径 B:Docker(隔离部署)

services: sunshine: image: lizardbyte/sunshine:latest-ubuntu-24.04 # 版本-基础系统 ipc: host devices: - /dev/dri:/dev/dri # 直通 GPU,编码必需 ports: - "47984-47990:47984-47990/tcp" # 含 Web UI(47990) - "47998-48000:47998-48000/udp" # 流媒体端口 volumes: - ./config:/config # 配置落盘

注意 Docker 镜像定位偏"构建基座",作者明确说日常使用不推荐,折腾容器党再上。

路径 C:Flatpak / 系统包(Linux 通用)

# Flatpak:不依赖发行版,但沙盒不支持 KMS 捕获 flatpak install --system flathub dev.lizardbyte.app.Sunshine flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine # 同步 udev 规则 # Fedora/openSUSE:用官方 COPR 源 sudo dnf copr enable lizardbyte/stable sudo dnf install Sunshine

有发行版专属包就优先用专属包,Flatpak 作为兜底。

路径 D:源码编译(定制/贡献者)

git clone https://gitcode.com/GitHub_Trending/su/Sunshine cd Sunshine mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release # Release 拿优化后的产物 cmake --build . --parallel sudo cmake --install .

依赖较多(CUDA/FFmpeg 等),只为跑服务不值得编译,适合改代码的人。

装完先调这几项

浏览器打开http://本机IP:47990进入 Web UI,别跳过这四项,串流质量一半靠它们:

配置项推荐值为什么这么设
编码器跟随显卡自动(NVENC/AMF/QuickSync)硬件编码不占 CPU,帧率稳
视频码率有线 50 Mbps / WiFi 20-30 Mbps码率超带宽就会掉帧卡顿
帧率60高于显卡编码器压力收益不大
UPnP开启自动开放端口,省得手动配路由器

界面里搜不到项就直接改配置文件(Linux 在~/.config/sunshine/config.toml),核心组合如下:

# 关键配置:编码、码率、端口、外部地址 encoder = "auto" video_bitrate = 50000000 # 50 Mbps,按带宽下调 video_fps = 60 port = 47990 # Web UI 端口 external_ip = "auto" # 多网卡时指定对外 IP

改完保存即生效,不用重启服务。

按场景微调

客厅大屏(电视盒子 / Apple TV 当客户端)前提:千兆有线 + 中高端显卡。

  • 码率拉满 50 Mbps 以上,分辨率跟随显示器
  • 码率超过 30 Mbps 后,客户端尽量开硬解
  • 关注编码模式:N 卡选 NVENC 质量档,别追极致速度

平板 / 手机(WiFi 串流)前提:5GHz WiFi,信号强。

  • 分辨率降到 720p,码率 15-20 Mbps
  • 客户端开"硬解",省电且延迟低
  • 延迟优先:帧率保 60,别为画质牺牲流畅

多人共用一台主机前提:一个 Sunshine 服务,多个 Moonlight 账号。

  • 每个家庭成员在 Moonlight 端建独立账号
  • 游戏列表按需拆分(Web UI 里增删应用)
  • 用不同显示器输出区分成员会话,避免抢屏

卡了怎么办

现象大概率原因一条命令/操作
客户端搜不到服务器防火墙挡了 47990 等端口开放 47984-47990/tcp、47998-48000/udp
Web UI 打不开服务没起或端口被占systemctl --user status app-dev.lizardbyte.app.Sunshine
画面卡顿、丢包带宽不够或网络抖动用 iperf3 测链路,掉包<5%、抖动<1ms 才达标
手柄在 Steam 能用、游戏里失灵主机本地手柄冲突禁用主机物理手柄,让串流虚拟手柄排第一
忘记密码进不了 Web UI凭据忘了sunshine --creds 新用户 新密码
编码器报错显卡驱动过旧更新显卡驱动,Web UI 故障页查编码器状态

排查命令:

# 1. 测网络:主机起服务,客户端跑 UDP 测试 iperf3 -s # 主机 iperf3 -c 主机IP -t 60 -u -R -b 50M # 客户端 # 2. 看进程与端口监听 ss -tulnp | grep 479 # 3. 重置登录凭据 sunshine --creds admin 新密码

日志在 Web UI 的故障排查页(浏览器:47990内直接看),Linux 本地也在~/.config/sunshine/下。

收尾

  1. 装官方二进制并启动服务
  2. 浏览器打开:47990设好账号
  3. 按带宽定码率,编码器留自动
  4. 在 Moonlight 添加主机并试连
  5. 卡了就查端口、跑 iperf3、看日志

AV1 等编码新标准正在路上,官方迭代快,装好后记得盯更新。按这套流程走完,你的 Sunshine 游戏串流环境就能稳定服务全家设备了。

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询