news 2026/9/12 8:28:57

20 分钟搭好自己的游戏串流主机:Sunshine 完全上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20 分钟搭好自己的游戏串流主机:Sunshine 完全上手指南

20 分钟搭好自己的游戏串流主机:Sunshine 完全上手指南

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

手机上的 Moonlight 打开后设备列表空空如也,装好的主机连影子都没有;或者勉强串出画面,一跑游戏就掉线。这类问题十有八九不是软件坏了,而是中间漏了某一步。Sunshine 是一个自托管的游戏串流主机:装在你的游戏 PC 上,它负责采集屏幕、做硬件编码,再把视频流通过局域网推给手机、平板或电视上的 Moonlight 客户端。跨网组网、下载管理它都不管,但把局域网内这第一帧画面串出来,20 分钟足够。

先确认手头有什么

  • 一台主机:Windows、Linux 或 macOS 均可,macOS 属于实验性支持且暂不支持手柄模拟
  • 一台装好 Moonlight 客户端的设备
  • 两台设备在同一局域网内
  • 主机有带硬件编码的显卡(NVIDIA、AMD、Intel 都行),没有也能走 CPU 软编码,但帧率会受限
  • Linux 主机需已登录桌面环境,采集画面离不开显示器会话

📌 把主机端装好

Windows 去项目 Release 页面拿Sunshine-Windows-AMD64-installer.msi,双击安装,防火墙规则由安装器自动写入,不用手动加。Linux 按发行版走包管理器,Debian/Ubuntu 装完云源配置脚本后执行sudo apt install sunshine。macOS 把 DMG 里的Sunshine.app拖进 Applications。

如果走 Flatpak 安装,装完必须再执行一条命令:

flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine

⚠️ 坑在这里:Flatpak 沙箱不会同步输入注入用的 udev 规则,跳过这条命令,后面键鼠按下去主机没反应。

检查点:安装过程无报错弹窗,进程能正常退出。

📌 把服务拉起来

Windows 的 MSI 已把 Sunshine 注册成系统服务并开机自启,这步直接跳过。Linux 手动启动:

systemctl --user start app-dev.lizardbyte.app.Sunshine

想开机自启再补一条:

systemctl --user --now enable app-dev.lizardbyte.app.Sunshine

macOS 首次启动会弹屏幕录制和麦克风授权,两项都点允许,否则后面采不到画面也听不到声音。

检查点:Linux 上执行systemctl --user status app-dev.lizardbyte.app.Sunshine,状态是 running。

设管理员账号

浏览器打开https://localhost:47990。页面提示"不安全"是自签名证书导致的,忽略即可。首次进入要求设置管理员用户名和密码——记下来,后面全靠它。忘密码不用重装,在主机上执行sunshine --creds 新用户名 新密码直接重置。

📌 第一次配对

客户端设备打开 Moonlight,它会自动扫到局域网里的主机。首次连接时 Moonlight 弹出一个四位 PIN 码:回到 Web UI 顶部导航的 PIN 页把它输进去,顺手给设备起个名字,提示成功即配对完成。

检查点:在 Moonlight 里点自带的Desktop条目,客户端屏幕出现主机桌面的实时画面,声音、鼠标都有响应。第一帧,出来了。

加一个真实游戏

Web UI 的 Applications 页默认自带 Desktop 条目,它不启动任何程序、直接串整个桌面;新串流会自动终止上一个在跑的应用,全局同一时间只有一条流。添加游戏就是填程序路径,两处细节容易翻车:

  • 启动命令本身立即退出的程序(典型如 Steam),在应用配置里勾上detached,否则流刚开就断。
  • Flatpak 环境里跑宿主程序,命令要加flatpak-spawn --host前缀,沙箱里直接找不到目标。

路径支持$(HOME)这类环境变量,别写死绝对路径。

配置只动这几个数

配置页顶部有搜索框,输关键词直达条目,几百个设置项不用翻菜单。真正需要碰的只有下面几个,其余全部留默认:

  • max_bitrate:默认0,含义是码率完全按 Moonlight 的请求走;只有想在主机端给带宽封顶时才填具体数,比如5000(Kbps)。
  • encoder:默认自动选第一个可用编码器;手动填nvencamdvcevaapivulkansoftware是排障手段,日常留空。
  • nvenc_preset:1 到 7,默认1最快;网络或客户端解码顶不住时才调大,多数情况下提码率比动 preset 划算。
  • upnp:默认disabled;要走出局域网才改成enabled

容易翻车的点

串流卡顿、掉帧。先查网络,别急着改配置。主机端起iperf3 -s,客户端执行iperf3 -c 主机IP -t 60 -u -R -b 50M,目标是丢包低于 5%、抖动低于 1ms。典型诱因是两头速度不匹配:2.5G 网卡配 WiFi 客户端,把网卡降一档或主机改回有线,通常立刻见效。

https://localhost:47990打不开。防火墙拦了 47990。Windows 先确认 MSI 写入的规则还在,临时关防火墙验证一次,通了再补规则放行 47990。

键鼠在主机上没反应。Linux 大概率是 udev 规则没重载,执行sudo udevadm control --reload-rules后重连;Flatpak 用户先回头确认 additional-install.sh 跑没跑。

串流时想静音主机扬声器。⚠️ 别动audio_sink,它决定采哪个声卡;改用virtual_sink指向虚拟声卡,流里有声音,主机侧保持安静。

卡住时先查这里

症状最可能原因一条修复动作
Moonlight 发现不了主机服务没在跑,或不在同一局域网systemctl --user status app-dev.lizardbyte.app.Sunshine确认 running,再核对两台设备同网段
忘了管理员密码凭据丢失sunshine --creds 新用户名 新密码直接重置
有画面没声音采集设备没指对Linux 用pactl info \| grep Sink查默认声卡名,填进audio_sink
想确认到底卡在哪日志里都有Web UI 的 Troubleshooting 页内置日志导航;文件在~/.config/sunshine/sunshine.log(Linux/macOS)或%ProgramFiles%\Sunshine\config\sunshine.log(Windows)

不同人怎么搭

显卡带不动 3A 的轻薄本,把它当解码显示端,串书房主机跑游戏;前提是同局域网且网络稳,客户端分辨率按自己屏幕设就行。只想要一块大屏的人,让主机当家庭影音节点,串 Desktop 到电视看本地片源,max_bitrate保持默认0,静态内容占的带宽很小。一家人共用一台主机,每个成员在自己的 Moonlight 设备上独立配对、各记各的设备名;唯一前提是同一时间只有一条流,谁在串谁用,用完退出。

跑通之后做两件事

拿第二台设备再配一次对,然后挑一个真实游戏完整走一遍"配对 → 启动 → 串流 → 退出"。完整参数表在 docs/configuration.md,各平台安装细节在 docs/getting_started.md,疑难杂症索引在 docs/troubleshooting.md,编码与采集的各平台实现可以看 src/platform/ 目录。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 8:27:11

TongSearch中文分词插件analysis-ik详解与优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 8:24:39

YOLO版本选型与DeepSeek/千问融合:电子元件质检实战复盘

YOLO版本选型、大模型接入、电子元件质检这几个词放在一起,乍一看像是蹭热度的标题党,但真把这个系统从零搭完,我才发现这里面每一步都是实打实的坑。半年前朋友厂里SMT贴片线想上自动外观识别,老师傅肉眼盯AOI图盯到眼压高&#…

作者头像 李华
网站建设 2026/9/12 8:24:05

布斯乘法器原理与Radix-4硬件实现详解

1. 为什么布斯乘法器不是“高级技巧”,而是数字电路设计者的必修基本功很多人第一次听说布斯乘法器(Booth Multiplier),下意识觉得这是“教材里一笔带过、考试不考、实际不用”的冷门知识。我刚带实习生时也这么认为——直到某次调…

作者头像 李华
网站建设 2026/9/12 8:22:38

机器人研发管理平台选型:软硬件一体化与可追溯性实践指南

1. 机器人行业的研发管理,为什么不能直接照搬互联网套路? 先抛一个很多机器人公司管理者都踩过的坑:招了个有互联网大厂背景的研发总监,上来就拍板上一套对标软件团队的研发管理平台,流程、字段、报表全部照搬。结果用…

作者头像 李华
网站建设 2026/9/12 8:22:04

MyBatis XML SQL报错排查与优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华