Sunshine 游戏串流完整指南:如何快速把 PC 变成家庭串流主机
Sunshine 是一款开源免费的自托管游戏串流服务器,与 Moonlight 客户端配合,把家里的游戏 PC 接入任意屏幕:主机负责采集画面并硬件编码,数据经局域网直送手机、平板或电视,全程不出家门。Windows、Linux、macOS、FreeBSD 均可运行,NVIDIA、AMD、Intel 显卡都支持,适合想在更多设备上玩主机 PC 游戏或远程回家串流的玩家。
适用性自查:先确认你的机器能不能跑
先回答"我的配置够不够",再开始安装。下面五个维度逐条对一下。
| 检查项 | 你的机器需要满足 |
|---|---|
| 平台 | 服务端:Windows、Linux、macOS、FreeBSD;客户端:任何能装 Moonlight 的设备 |
| 显卡编码器 | 有 NVENC(NVIDIA,GPU 硬件编码模块)、AMD VCE(amdvce)、QuickSync(Intel)、VAAPI、Vulkan Video 之一即可;没有也行,software 用 CPU 兜底 |
| 画面捕获 | Windows 桌面捕获;Linux 支持 KMS、X11、Wayland(wlr、KWin、Portal) |
| 手柄 | Windows 可模拟 DS4 与 Xbox 360,Linux 可模拟 DualSense、Switch Pro、Xbox One/Series;macOS 暂不可用 |
| 成本 | 完全开源免费,无订阅、无广告、无账号绑定 |
5 分钟安装 Sunshine 并完成 Moonlight 配对
这一节把"装好"和"配对成功"合并成一条最短路径,默认走 Windows 安装包路线。
- 下载
Sunshine-Windows-AMD64-installer.msi运行。官方推荐 MSI 安装器,安装时按需勾选组件,不要盲目全选;防火墙规则由安装器自动写入,服务随开机自启。 - 浏览器访问
https://localhost:47990打开 Web UI,首次进入设置管理员用户名和密码,之后所有配置都在这里完成。 - 在客户端设备打开 Moonlight,它会自动发现局域网内的 Sunshine;首次连接显示四位 PIN 码,回到 Web UI 输入该 PIN 完成授权。
配对成功后,Web UI 主页显示已连接客户端、串流状态与统计信息,也支持手机浏览器远程管理。
其他平台一行一个:
- Debian/Ubuntu:
sudo dpkg -i ./sunshine-ubuntu-22.04-{arch}.deb - Fedora:
sudo dnf copr enable lizardbyte/stable && sudo dnf install Sunshine - Arch:
pacman -S sunshine - Flatpak:
flatpak install --system flathub dev.lizardbyte.app.Sunshine,装完再执行flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine补装输入依赖 - AppImage:
./sunshine.AppImage --install && ./sunshine.AppImage - macOS(实验性,手柄模拟不可用):把
Sunshine.app拖入 Applications,或brew install sunshine - FreeBSD:
sudo pkg install ./Sunshine-FreeBSD-14.4-{arch}.pkg - Docker(进阶,官方不推荐大多数用户使用):
docker pull lizardbyte/sunshine
想从源码构建可克隆仓库 git clone https://gitcode.com/GitHub_Trending/su/Sunshine,构建说明见 docs/building.md。
三种用法:桌面、游戏与远程串流
同一套安装,按场景换网络参数即可,下面是每个场景的具体建议值。
用法一:串流整个桌面
适合在笔记本或平板上直接用主机办公、看视频。设备走 5GHz WiFi 或有线,分辨率 1080p、码率 10–25 Mbps 即可流畅使用。在 Web UI 的"应用"里添加一个桌面应用(选显示器输出),串流时一键进入。
用法二:客厅大屏串流 3A 游戏
主机端与路由器之间务必有线(千兆网口起步),Moonlight 端有线或 5GHz WiFi。码率拉到 40–80 Mbps、分辨率 4K,配一个蓝牙手柄,画面接近本地直连。每个应用可在 Web UI 单独配置启动参数,内置的"精选应用"页聚合了官方推荐的游戏应用模板,直接套用。
用法三:远程串流回家
在 Web UI 设置 upnp = enabled(UPnP 是自动向路由器申请端口转发的协议),让 47990 等端口对外可达,再在 Moonlight 里手动添加家里的公网地址。跨网络对抖动敏感:客户端延迟模式选"低延迟",码率从 40–80 Mbps 降到 10–25 Mbps 换取稳定。
调参速查表:四个参数决定串流上限
这四个参数位于"配置 → 视频",知道默认值就能判断该不该动。
| 参数 | 默认值 | 推荐值 | 何时才需要动它 |
|---|---|---|---|
max_bitrate | 0(完全采用 Moonlight 请求的码率) | 保持 0;要限带宽时如 5000(Kbps) | 带宽紧张,需要硬性封顶时 |
encoder | 自动选第一个可用编码器 | 保持自动 | 自动选择结果不符合预期时,手动填 nvenc、quicksync、amdvce、vaapi、vulkan 或 software |
nvenc_preset | 1(最快) | 1–3 | 仅当网络或解码器是瓶颈时调大(7 压缩最好但延迟略增),否则直接提码率更划算 |
minimum_fps_target | 0(按流帧率一半兜底) | 保持 0 | 画面静止时仍占带宽,想压低静止场景帧率时 |
upnp | disabled | 本地保持关闭 | 远程串流回家前才需要 enabled |
音频方面:Windows 用 %ProgramFiles%\Sunshine\tools\audio-info.exe 查看设备名填入 audio_sink,Linux 用 pactl info | grep Sink;想静音主机扬声器,改用虚拟声卡而不是直接改 sink。
排障决策清单:按顺序逐项排查
按下面的顺序查,多数问题能在前两步定位。
-
打不开 Web UI:先确认 47990 端口被防火墙放行(可临时关防火墙验证);Windows 用户确认安装时已让安装器写入防火墙规则;再确认 Sunshine 服务正在运行。
-
搜不到设备:确认两台设备在同一局域网;Linux 执行
systemctl --user status app-dev.lizardbyte.app.Sunshine检查服务状态;仍不行就重启 Sunshine 服务和路由器。 -
画面卡顿、掉帧:用 iPerf3 做一次 60 秒 UDP 反向测试(丢包率指传输中丢失的数据包比例):
iperf3 -s # 主机端 iperf3 -c {主机IP} -t 60 -u -R -b 50M # 客户端合格线是丢包率低于 5%、抖动低于 1ms;不达标就把网卡速率降一档(2.5G 降 1G)或改有线,Web UI 里降低码率、关闭
nvenc_spatial_aq也能缓解。 -
忘记 Web UI 密码:不用重装,直接重置凭据——
sunshine --creds {新用户名} {新密码}(一般安装)、./sunshine.AppImage --creds {新用户名} {新密码}(AppImage)、flatpak run --command=sunshine dev.lizardbyte.app.Sunshine --creds {新用户名} {新密码}(Flatpak)。
以上都解决不了就看日志:Windows 在 %ProgramFiles%\Sunshine\config\sunshine.log,Linux/macOS 在 ~/.config/sunshine/sunshine.log,Docker 用 docker logs sunshine。
收尾
Sunshine 把游戏串流的全部环节——采集、编码、传输——都留在了自己的网络里,隐私、速度和画质都不交给第三方。从安装到第一次配对不到 30 分钟,剩下的就是按场景调参数。
完整配置手册:docs/configuration.md;安装细节:docs/getting_started.md;疑难排查:docs/troubleshooting.md。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考







