Sunshine 安装完全指南:免费把一台 PC 变游戏串流服务器
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
主机藏在书房桌下,屏幕却想在客厅用,搬机器太重、拉线又碍事。Sunshine 是 Moonlight 的自托管服务端,一次 Sunshine 安装就把这台 PC 变成负责采集画面、硬件编码的串流服务器,数据不出家门。照这篇做完,你能独立装好、配好对、串出第一帧画面,全程约 20 分钟。
先花 30 秒认清 Sunshine
- 它是什么:装在主机上的串流服务端,采集屏幕 → 硬件编码 → 推流给 Moonlight 客户端,缺一不可。
- 给谁用:主机和观看设备不在同一张桌上的人,电视、旧笔记本、手机、平板都能当客户端。
- 平台与硬件路线:Windows、Linux、macOS(实验性,暂不支持手柄模拟)、FreeBSD;编码走 NVENC / QuickSync / AMD VCE / VAAPI / Vulkan / VideoToolbox,没独显还能 CPU 软编码兜底。
- 费用模型:开源免费,无账号无订阅,装一次长期用。
- 和同类最本质的差别:它只做主机端这一半,客户端交给 Moonlight 去解。
说白了,它就是给这台 PC 接了根"走哪跟哪的无线 HDMI",线头在你手里,不在别人的机房里。
Sunshine 安装三步跑通,串出第一帧
Step 1|装主机端。三种平台各走各的路:
- Windows:到 Release 页下
Sunshine-Windows-AMD64-installer.msi,双击安装,防火墙规则由安装器写好。 - Linux:按发行版装 deb / rpm(copr) / pacman 包;Flatpak 装完还要补一行输入依赖。
- macOS:把 DMG 里的
Sunshine.app拖进 Applications。
Step 2|把服务跑起来。Linux 执行:
systemctl --user start app-dev.lizardbyte.app.Sunshine作用:启动 Sunshine 用户级服务。做完的标志:紧接着systemctl --user status app-dev.lizardbyte.app.Sunshine,看到active (running)。Windows 上 MSI 已注册为服务、开机自启,不用手动。
Step 3|建账号 + Moonlight 配对。浏览器打开https://localhost:47990,提示"不安全"是自签名证书,忽略即可。首次进入会让你设管理员用户名和密码,记牢它。然后在客户端打开 Moonlight,它会自动发现这台主机;Moonlight 弹出四位 PIN,回 Web UI 顶部导航的 PIN 页填入、给设备起个名字,出现成功提示即配对完成。
🎮 配对成功后,Moonlight 里能看到主机和它自带的 Desktop 应用,点进去串流,第一帧画面就出来了。
这张图是 Sunshine 安装完成后首次打开看到的欢迎页,右下角点进配对即可。
装完 Sunshine 和传统接法比一比:
- 换台设备看:传统要搬主机、重插线 → 新设备装个 Moonlight 就自动发现
- 加一块屏:传统要买显示器、拉布线 → 装客户端、配对、选应用
- 费用:传统是硬件投入或云端订阅 → 开源免费自托管
三个高频功能拆到底
功能一:添加一个应用。在哪:Web UI 的 Applications 页,列表默认自带 Desktop(串整个桌面,不启动任何程序)。怎么设:点新建,填应用名、命令、工作目录,支持$(HOME)这类环境变量。
- 错在把 Steam 这类会立即退出的进程填进普通 Commands,串流会秒断 → 改填Detached Commands,如
steam://open/bigpicture。 - 错在 Flatpak 版直接写命令、找不到宿主程序 → 命令前加
flatpak-spawn --host。
设完什么效果:Moonlight 应用列表多出这条,点它就从这台主机拉起对应程序再串。这张图是 Sunshine 安装后应用管理界面,能看到内置 Desktop 和新建条目。
功能二:码率与编码器。在哪:配置页顶部搜索框敲bitrate或encoder直达,几百个设置项不用一层层翻菜单。怎么设:
max_bitrate(Kbps):默认0,表示完全用 Moonlight 请求的码率;想主机端封顶就填如5000。encoder:默认自动选第一个可用编码器;想锁定通路才手动填nvenc/quicksync/amdvce/vaapi/vulkan/software。nvenc_preset:默认1(最快),数字越大压缩越好但延迟越高,只有网络或解码端顶不住时才往大了调。
设完什么效果:封顶码率后带宽不爆,锁定编码器后能确定走的哪条编码通路。这张图是配置搜索界面,输入关键词后候选项即时过滤。
功能三:声音从哪来。在哪:配置页audio_sink/virtual_sink。怎么设:audio_sink默认用系统默认设备;多设备时 Linux 先查名字:
pactl info | grep Sink作用:列出音频设备名,把对应名字填进audio_sink。设完什么效果:声音跟着串流走;想串流时把主机扬声器静音,就改用virtual_sink指一块虚拟声卡,而不是去动audio_sink。
Sunshine 安装之外的用法
不玩游戏的话,把主机当家庭影音节点:串 Desktop 直接在电视上放本地片源、看网页,max_bitrate保持默认0,静态内容码率自动压得很低,带宽占用几乎可以忽略。
一家人共用一台主机也合理:每位成员在自己的 Moonlight 设备上各配各的 PIN,Web UI 里各记各的设备名、权限互不影响;记住同一时间只有一条串流,谁在串谁用,用完退出即可。
想从外网连回来时,先在配置里把upnp从默认disabled改成enabled,让 47990 等端口自动在路由器上转发,否则公网地址根本进不来。
串流卡住先看这里
打不开https://localhost:47990。现象:浏览器一直转圈或拒绝连接。最大概率原因:防火墙拦了 47990 端口。验证/修复:Windows 先确认 Sunshine 安装时防火墙规则已写入,还不行就临时关防火墙试一次,通了再回头加规则放行 47990。
Moonlight 发现不了主机。现象:客户端列表空空的。最大概率原因:两台设备不在同一局域网,或服务没在跑。验证/修复:Linux 上systemctl --user status app-dev.lizardbyte.app.Sunshine看是否active (running),确认网络同段,再不行重启服务和路由器。
串流卡顿、掉帧。现象:画面一顿一顿、声音断续。最大概率原因:网络不稳,不是 Sunshine 的锅。验证/修复:主机端起服务,客户端跑一条 60 秒 UDP 反向测试:
iperf3 -s主机端起 iperf3 服务,做完的标志:终端停在Server listening on 5201。
iperf3 -c {主机IP} -t 60 -u -R -b 50M客户端侧发起 60 秒 50Mbps UDP 测试。做完的标志:看客户端输出,丢包 < 5%、抖动 < 1ms 算健康。丢包高时,"2.5G 网卡配 WiFi 客户端"这种两头速度不匹配是典型诱因,降一档网卡速率或主机端改有线通常立竿见影。
凭据/配置丢了怎么恢复。忘记密码不用重装,直接:
sunshine --creds {new-username} {new-password}作用:重置 Web UI 管理员凭据。做完的标志:用新账号能正常登录https://localhost:47990。
还搞不定就翻日志:Web UI 的 Troubleshooting 页内置日志和告警提示,每条 warning / error 点进去看线索。日志文件位置——Windows 在%ProgramFiles%\Sunshine\config\sunshine.log,Linux / macOS / FreeBSD 在~/.config/sunshine/sunshine.log,Docker 用docker logs sunshine。这张图是故障排查页,左边逐条列告警、右边是实时日志。
一页纸带走
- if 串流卡顿,then 先跑一次 iPerf3 再谈画质,丢包 < 5% 才算网络没问题。
- if 编码器拿不准,then 留空自动选;手动指定是排障手段,不是日常操作。
- if
max_bitrate = 0,then 码率听 Moonlight 的,想封顶带宽才碰它。 - if 要远程串流,then 先确认
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),仅供参考