Sunshine 游戏串流安装教程:免费自托管,配对新设备到跑通画面
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一款开源的游戏串流服务器,装在自己主机上,就能把画面和声音实时推给装了 Moonlight 的任意设备。读完这篇,你能独立完成安装、配对新设备、添加应用、调关键参数,亲手把游戏画面推到第二块屏幕上。
主机在书房、屏幕在卧室,怎么把画面搬过去
主机在书房,屏幕却在卧室——搬机器太重,再买一台太贵,拉 HDMI 线又碍眼。Sunshine 的思路是把那台 PC 变成家里的"游戏发射塔":画面在主机上采集、硬件编码,再走局域网送到任何装了 Moonlight 的设备,一根线都不用接。
| 对比项 | 传统接法 | 用 Sunshine |
|---|---|---|
| 换台设备看 | 搬主机、重插线 | 装个 Moonlight 客户端 |
| 加一块屏幕 | 买显示器加布线 | 配对、选应用即可 |
| 费用 | 硬件投入或订阅 | 开源免费、自托管 |
| 画质与隐私 | 云端中转 | 局域网直连,自己说了算 |
Sunshine 支持平台与系统要求
支持平台:主机端覆盖 Windows、Linux、macOS(实验性,暂不支持手柄模拟)、FreeBSD;客户端跟着 Moonlight 走,手机、平板、盒子、电视都行。
编码方案:NVENC(NVIDIA 自带硬件编码器,不占 CPU 就能实时压码)、QuickSync(Intel)、AMF(AMD)、VAAPI、Vulkan Video、VideoToolbox(Apple),外加 CPU 软编码兜底,自动挑第一个可用的。
采集后端:Windows 走桌面复制 API;Linux 可选 NvFBC、KMS、X11、WLR、KWin、Portal 等;macOS 走系统屏幕录制。
部署方式:装包或服务化运行即可,全部配置在浏览器 Web UI 里完成,不用碰命令行。
成本:开源免费,一次安装长期用,无账号、无订阅。
Sunshine 各平台一键安装步骤
Step 1|装主机端。Windows 下载官方 MSI 安装包,双击安装、组件按需勾选,防火墙规则由安装器写好;Linux 按发行版走 deb、copr 或 pacman 包,Flatpak 装完再补跑一次flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine装输入依赖;macOS 把Sunshine.app拖进 Applications。
Step 2|启动服务。Windows 装完已注册为服务、开机自启;Linux 手动拉起来:
systemctl --user start app-dev.lizardbyte.app.SunshineStep 3|打开 Web UI 建账号。浏览器访问https://localhost:47990,提示"不安全"属正常(自签名证书),忽略即可。首次进入会让你设置管理员用户名和密码,记牢它,后面配对全靠这套凭据。
Step 4|配对新设备。在客户端设备打开 Moonlight,它会自动发现局域网里的 Sunshine;首次连接弹出四位 PIN 码,回 Web UI 顶部导航的 PIN 页输入并给设备命名,看到成功提示就算通了。
第一次配对后:添加第一个应用并跑通画面
进 Applications 页,默认自带 Desktop(串整个桌面、不启动任何程序)。要串游戏就新建一条:填应用路径、工作目录和启动参数,支持$(HOME)这类环境变量写法。
- 会立即退出的进程(如直接拉
steam)要用detached启动方式,否则串流马上断。 - Flatpak 版应用命令要加
flatpak-spawn --host前缀,否则在沙箱里找不到宿主程序。 - 新串流会终止上一个正在跑的应用,同一时间只有一个。
回到配置页顶部搜索框,输关键词直达几百个设置项。敲bitrate立刻定位码率,敲encoder立刻定位编码通路。
max_bitrate(Kbps)默认0,表示完全采用 Moonlight 端请求的码率;想给主机封顶带宽时设成如5000。encoder默认自动选第一个可用编码器;想锁定时手动填nvenc、quicksync、amdvce、vaapi、vulkan或software。nvenc_preset从 1 最快到 7 压缩率最高,默认1,只在网络或解码端顶不住时才往大调。
在 Moonlight 里选刚加的应用、点开始,声音这边:audio_sink默认用系统默认音频设备,多设备时按平台查名字填(Linux 用pactl info | grep Sink);想在串流时把主机扬声器静音,别改audio_sink,改用virtual_sink指定虚拟声卡。
Sunshine 三种实战用法
当瘦客户端。旧笔记本、轻薄本显卡带不动 3A 时,装 Moonlight 串流书房那台主机跑游戏,笔记本只负责解码显示,功耗低还凉快;前提是两台同在一个局域网且网络稳定。
家庭影音节点。不玩游戏也成立:串流 Desktop 直接在电视上放本地片源、看网页、跑桌面应用,max_bitrate保持默认、码率不用拉太高,静态内容带宽占用很小。
多人共用一台主机。每位成员在自己的 Moonlight 设备上独立配对、各记各的设备名,权限互不影响;同一时间只有一条串流,谁在用谁用。远程场景先在配置里把upnp设为enabled(默认disabled),让 47990 等端口自动转发。
Sunshine 连不上、发现不了、卡顿的排查方法
Web UI 打不开。最可能是防火墙拦了端口。Windows 先确认安装时防火墙规则已写入,不行就临时关防火墙验证一次,通了再回头放行 47990。
客户端发现不了主机。通常是两台不同网段,或服务根本没在跑。Linux 上一条命令验证:
systemctl --user status app-dev.lizardbyte.app.Sunshine确认在运行且网络同段,还不行就重启服务和路由器。
串流卡顿、掉帧。先怀疑网络而不是 Sunshine。用 iPerf3 做一段 UDP 反向体检,主机端起iperf3 -s,客户端跑iperf3 -c {主机IP} -t 60 -u -R -b 50M,理想是丢包低于 5%、抖动低于 1ms;丢包高时"2.5G 网卡配 WiFi 客户端"这类两头速度不匹配是典型诱因,降一档网卡速率或把主机改有线通常立竿见影。忘记密码不用重装,sunshine --creds 新用户 新密码直接重置。
还搞不定就翻日志:
- Windows:
%ProgramFiles%\Sunshine\config\sunshine.log - Linux / macOS / FreeBSD:
~/.config/sunshine/sunshine.log - Docker:
docker logs sunshine
四句话记住 Sunshine 的关键点
- 网络稳定性比带宽峰值更决定体验,先跑一次 iPerf3 再谈画质。
- 编码器拿不准就留空,自动选择足够聪明;手动指定是排障手段,不是日常操作。
max_bitrate为 0 意味着码率听 Moonlight 的,想封顶带宽才需要碰它。- 远程串流前先确认
upnp = enabled,否则公网地址连不进来。
下一步与仓库资源
现在就把第二台设备配上 Moonlight 配对一次,顺手给应用列表加一条真实游戏,完整走一遍"配对 → 启动 → 串流 → 退出"。完整参数表见 docs/configuration.md,疑难杂症索引在 docs/troubleshooting.md,想看编码与采集怎么实现的直接翻 src/platform/。装好的那台主机就让它跑着吧,线可以慢慢收,画面先串起来。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考