Sunshine 游戏串流主机教程:30 分钟免费把主机画面串到任意设备
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
Sunshine 是一款自托管游戏串流服务端,装在主机上负责采集画面并做硬件编码,再经局域网把流推给 Moonlight 客户端,全程免费、不依赖账号或订阅。下文带你从装服务到配对出画,跑通第一条串流。
装之前先核三件事
先确认你的主机满足最低门槛,否则装完也串不动:
- 操作系统:Windows 11+、Linux(Debian 13 / Ubuntu 22.04 / Fedora 43 及以上)、macOS 14.2+(实验性)、FreeBSD 15.1+。
- 编码器通路:需有硬件编码能力——NVIDIA 走 NVENC,Intel 核显走 QuickSync 或 VAAPI,AMD 走 AMF / VAAPI / Vulkan Video;没有硬编卡时只能用 CPU 软编码兜底,帧率会受限。
- 网络:主机和客户端最好同网段,5GHz 无线或千兆有线体验最佳。
一句提醒:macOS 主机暂不支持手柄模拟。想用手柄远程玩游戏,主机请用 Windows 或 Linux。
安装并启动主机端服务
按系统取对应安装包,装完服务要能跑起来才算数。
- Windows:下载
Sunshine-Windows-AMD64-installer.msi双击安装。MSI 会把 Sunshine 注册为系统服务并设开机自启,装完即可用,可跳过下面的启动步骤。 - Linux:按发行版装 deb / RPM / Flatpak / AppImage 任一形式。
- macOS:把 DMG 里的
Sunshine.app拖进 Applications。
Flatpak 用户装完必须再补一条输入依赖,键鼠注入才完整:
flatpak run --command=additional-install.sh dev.lizardbyte.app.SunshineLinux 用 systemd 拉起服务,一次启动并设为开机自启:
systemctl --user --now enable app-dev.lizardbyte.app.SunshinemacOS 首次启动会弹屏幕录制和麦克风授权,两项都要点允许,否则采不到画面和声音。
检查点:Linux 下systemctl --user status app-dev.lizardbyte.app.Sunshine显示 running。
建管理员账号并配对客户端
浏览器打开https://localhost:47990。页面提示“不安全”是自签名证书所致,直接忽略。首次进入会让你设置管理员用户名和密码,记牢,配对全靠它。
在客户端设备打开 Moonlight,它会自动扫到局域网内的主机。首次连接会弹一个四位 PIN 码,流程如下:
- 回到 Web UI 顶部的PIN页;
- 输入四位码并回车,顺手给设备起个名字;
- 看到成功提示后,在 Moonlight 里点Desktop,客户端应出现主机桌面,画面与声音都到位即算跑通。
默认值背后的含义
几个留空或为 0 的配置不是“没填”,而是有明确语义,日常保持默认即可:
encoder留空= 自动选第一个可用编码器。手动填nvenc/amdvce/vaapi/vulkan/software只是排障手段,不填最省心。max_bitrate = 0= 码率完全听 Moonlight 请求。只有想给带宽封顶时才填具体值,单位 Kbps,例如5000。- 同一时间只有一条流:新串流会自动终止上一个在跑的应用,多人共用时谁连着谁用,无需仲裁。
四个容易踩的用法
- 启动命令立刻退出的应用要勾
detached:串 Steam 这类启动器会马上退进程,脱离式启动后流才不会刚开就断。 - Flatpak 宿主命令加前缀:沙箱内直接找不到目标程序,命令前要加
flatpak-spawn --host。 - 静音主机扬声器别动
audio_sink:audio_sink决定采哪块声卡;想边串流边静音本机,改用virtual_sink指向虚拟声卡。多声卡时 Linux 用pactl info | grep Sink查名字。 - 走出局域网才碰
upnp:默认disabled,公网连不进来;只有需要远程串流时才设为enabled。
串流出问题按序自查
先测网络,多数“卡顿掉帧”是链路问题而非 Sunshine 本身:
iperf3 -s主机端起服务后,在客户端侧反向 UDP 测 60 秒(把主机 IP 换进去):
iperf3 -c <主机IP> -t 60 -u -R -b 50M理想结果是丢包低于 5%、抖动低于 1ms。丢包高的典型诱因是两头速度不匹配,例如 2.5G 网卡配 WiFi 客户端——降一档网卡速率或把主机端改回有线,通常立刻见效。
| 症状 | 最可能原因 | 一条修复动作 |
|---|---|---|
https://localhost:47990打不开 | 防火墙拦了 47990 | 确认 MSI 写入的防火墙规则还在,临时关防火墙验证一次再补放行 |
| Moonlight 发现不了主机 | 不同网段或服务没在跑 | systemctl --user status确认 running,再核对两台设备同网段 |
| 忘了管理员密码 | 凭据丢失 | 无需重装,sunshine --creds {新用户名} {新密码}直接重置 |
日志文件位置:Windows 在%ProgramFiles%\Sunshine\config\sunshine.log,Linux / macOS / FreeBSD 在~/.config/sunshine/sunshine.log,Docker 用docker logs sunshine。
现在就能做的三件事
- 先测网络再调画质:跑一次 iPerf3,稳定性比带宽峰值更决定体验。
- 拿第二台设备完整走一遍配对 → 启动 → 串流 → 退出。
- 往应用列表加一条真实游戏,验证非桌面场景也正常。
深入入口:完整参数表、疑难杂症索引、入门指南。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考