☰
Sunshine 游戏串流快速上手:5 步从装好到第一次串流跑通
2026/10/31 10:48:54 网站建设 项目流程

Sunshine 游戏串流快速上手:5 步从装好到第一次串流跑通

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

Sunshine 游戏串流主机装在你自己的 PC 上:采集本机画面和声音,硬件编码后推给任意 Moonlight 客户端。本文覆盖安装、配对、加应用到第一次串流跑通,外加调参和排障。先立一条硬边界:一台 Sunshine 同时只有一条活跃串流,第二台设备的请求会直接接管当前会话。

🧭 对号入座:先决定这篇值不值得看

  • ✅ 适合:主机常开、想让自己的一台设备(手机 / 平板 / 电视 / 另一台 PC)串流主机游戏;Windows 装 MSI 自带系统服务,Linux 是用户级 systemd 服务,macOS 拖Sunshine.app进 Applications 即可
  • ⚠️ 勉强:需要外网访问(得开upnp或手动转发端口,主机还必须一直开机——它是本地软件,不是云服务)
  • ❌ 别用:想让两台设备"各看各的",做不到;官方文档明确不推荐普通用户用 Docker 部署,AppImage 和 Flatpak 也不支持 KMS 采集,有发行版包就优先用发行版包

装包命令三平台各一句带过:Linuxsudo apt update && sudo apt install sunshine,Windows 装Sunshine-Windows-AMD64-installer.msi,macOS 拖拽安装后按系统提示授权。从源码构建:git clone https://gitcode.com/GitHub_Trending/su/Sunshine,然后bash scripts/linux_build.sh(macOS 用scripts/macos_build.sh)。

🚀 跑通路线:先主机后客户端

主机侧:装好 Sunshine 并确认服务在跑

最小操作:

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

Windows 的 MSI 安装器已带服务;macOS 按提示授予屏幕录制和麦克风权限即可。

这步算过的标志:systemctl --user status app-dev.lizardbyte.app.Sunshine显示active (running)。

卡住了怎么办:浏览器能打开管理界面但状态不对,先查这条状态命令;macOS 上屏幕录制权限没给全,进程起不来或画面黑屏,按系统弹窗授权并选择"Quit & Reopen"。

主机侧:管理界面账号怎么设

最小操作:浏览器打开https://localhost:47990。自签证书,浏览器的安全警告直接点继续。首次登录会要求创建管理员用户名和密码。

这步算过的标志:能登录并看到管理界面首页。

卡住了怎么办:账号密码丢了不用翻配置文件,sunshine --creds 新用户 新密码直接重置。

客户端侧:Moonlight 怎么配对设备

最小操作:Moonlight 里添加主机——同网段会自动发现;发现不了就手动填 Sunshine 本机的局域网 IP。发起连接时客户端会弹出一串 PIN,回到管理界面顶部的 PIN 页面输入这串码,给设备起个名字。

这步算过的标志:PIN 页面出现成功提示,之后 Moonlight 不再要码,设备被记住了。

卡住了怎么办:客户端根本看不到主机,就是网络发现不通,走手动填 IP 这条路,别在"为什么搜不到"上耗时间。

客户端侧:加第一个应用并发起串流

最小操作:Applications 页面点 "Add New",填名字、图标和启动命令,命令支持$(HOME)环境变量展开。新手直接选自带的 "Desktop"——它是特殊应用,不启动任何程序,直接推整个桌面。Moonlight 里选中应用,连接。

应用分两种:cmd型应用进程退出时串流跟着断;detached型命令执行完进程留在后台,断流不杀进程。"关游戏就断流"还是"挂着后台",按你要的行为选。

这步算过的标志:主机画面出现在客户端上,且按键、移动鼠标在主机上有即时响应——第一条串流到此跑通。

卡住了怎么办:画面来了但键鼠没反应,多半是输入链路问题,直接进下面排障板块按关键词查。

🎛️ 参数:先判断,后动数字

一句总判断:编码器只管画质和主机负载,帧率和网络稳定性才决定手感。进配置页直接搜参数名比翻列表快,全部参数定义见 docs/configuration.md。

参数默认值什么时候才改推荐起步值
encoder自动选第一个可用硬件编码器一般不动;software是 CPU 软编,大屏分辨率下只在负载上吃亏,当最后手段留默认
max_bitrate0(完全跟随 Moonlight 客户端请求)想让 Sunshine 兜底限流时5000(Kbps)
nvenc_preset1(P1,最快)官方口径:网络或解码端不受限时别动,直接加码率效果等价留默认

两个自问句分流:

  • 客户端和主机在不在同一局域网?在:什么都不改,自动发现生效。不在:看下面外网一段。
  • 瓶颈是带宽还是编码?带宽不够先压max_bitrate和分辨率,别先去动编码器。

外网访问:把upnp从默认disabled改为enabled,让路由器自动做端口映射——映射是否成功以日志结果为准,"开了"不等于"成了"。路由器不支持 UPnP 就手动转发:端口基点port默认47989,Web 管理在47990(基点+1)、RTSP 在48010(基点+21),TCP 和 UDP 把47989–48010整段转掉;改基点值整组端口跟着平移。

🩺 出问题:先取证,再分流

总原则一句话:先开 Web 管理界面的 Troubleshooting 页拿实时日志,每条 warning/error 都带上下文,不猜。

日志关键词 / 症状分支处置
Couldn't bind端口被占。同一台机器只能跑一个 Sunshine 实例,停掉多余进程或改port
Buffer overrun网络丢包 / 缓冲溢出,带宽压力大了,压max_bitrate或降分辨率
完全没声音audio_sink要指向正确的回环设备;macOS 14+ 留空即用原生系统音频采集,旧系统装 BlackHole 类虚拟声卡再填设备名;想本机喇叭不出声用virtual_sink

键鼠 / 手柄没反应(Linux / FreeBSD):sudo usermod -aG input $USER,把用户加进input组后重新登录生效;仍不行看日志里输入设备初始化段。

更细的对照见 docs/troubleshooting.md。

✅ 收工前过一遍

  • 已确认编码器是硬件编码,encoder不是software
  • 已确认管理员账号已记录,Moonlight 设备已批准并命名
  • 已确认max_bitrate按需设了上限(默认0跟随客户端,兜底值5000)
  • 已确认外网场景upnp或手动转发47989–48010端口段已生效
  • 已确认主机走有线,客户端在 5 GHz Wi-Fi 或有线环境内

主机亮着,电视黑着——在 Moonlight 上点一下 Desktop,主机桌面应该立刻在屏幕上活过来。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询