如何从 PC 到电视:Sunshine 串流服务器 30 分钟实战上手
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
场景:你窝在沙发上,想用电视屏幕和手柄玩 PC 上的游戏,不想花钱订阅云游戏。把 PC 游戏串到电视上的自托管游戏串流服务器Sunshine就是干这个的:它负责抓取屏幕、调用显卡硬件编码(NVENC、QuickSync都行)把画面压成视频流、再把手柄和键鼠操作回传给主机;播放那一端交给Moonlight客户端。装好 Sunshine 加配通 Moonlight,全程大约 30 分钟。
为什么值得装一套
| 维度 | 云游戏订阅 | 闭源厂商串流 | Sunshine |
|---|---|---|---|
| 游戏运行位置 | 厂商机房 | 你的电脑 | 你的电脑 |
| 费用 | 月订阅 | 通常免费 | 开源免费 |
| 客户端生态 | 有限 | 自家平台 | Moonlight 全平台 |
| 编码 | 服务端统一 | 厂商自研 | 复用你的显卡,也可软件编码 |
画面和输入数据只在你自己的网络里流动,延迟和画质都在自己手里调。
安装的原则:有发行版专属包就用它,其次 Flatpak,Docker 官方不推荐普通用户使用。
# Linux(有发行版包时优先用它们,这里给 Flatpak 兜底) flatpak install --user flathub dev.lizardbyte.app.Sunshine flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine systemctl --user --now enable app-dev.lizardbyte.app.SunshinemacOS 用 Homebrew:brew tap LizardByte/homebrew && brew install sunshine(macOS 版是实验性的,暂不支持手柄)。Windows 从发布页下载.msi安装,装完默认以服务运行。
装完打开 Web 管理界面https://localhost:47990。浏览器会警告"不安全网站",那是自签名证书的正常表现,继续访问即可。看到欢迎页就算跑起来了。⚠️ 首次进入会要求你创建 Web 管理界面的用户名和密码,这套凭据之后再也看不到,务必当场记好。各发行版安装细节见 docs/getting_started.md。
里程碑一:电视上出现第一帧画面
- 在电视、手机或平板上装好 Moonlight 客户端,添加这台主机。
- Moonlight 弹出 PIN 输入框时,回到网页导航栏的PIN页,把客户端显示的码填进去回车,给设备起个名字,看到成功提示即配对完成。
- 在 Moonlight 里选内置的Desktop应用,开始串流。
配对成功标准:5 秒内电视出现主机桌面,且手柄按键有响应。
Windows 主机这一步有个额外动作:需要装虚拟手柄驱动。免费的 ViGEmBus 只支持 Xbox 360 和 DualShock 4 两种手柄;想要更多型号(Xbox One、DualSense 等)可以选付费的 Virtual HID Driver。装完驱动建议重启一次。
里程碑二:给每个游戏开一个直达入口
Sunshine 自带两个入口:Desktop(整块桌面直接串流,不启动任何程序)和Steam(启动即进 Steam 大屏模式,手柄操作几乎零延迟,跑 3A 大作优先用这个)。
想要一点直达某款游戏,在 Web 管理界面的 Applications 页点Add New,填应用名、启动命令(cmd)和工作目录(cwd)即可。命令支持环境变量,$(HOME)会自动替换成你的家目录;Linux 的 Flatpak 版记得在命令前加flatpak-spawn --host。保存后 Moonlight 刷新就能看到。注意:被串流的应用退出时,串流会自动结束。
里程碑三:出门在外也能连回来
如果你不在家也想玩,把 Web 配置页搜索栏输入upnp,把默认disabled改成enabled,让路由器自动映射串流端口(基础端口默认47989,网页管理走47990),再在 Moonlight 里手动填主机的公网 IP 添加。
如果你打算认真玩远程串流,先把分辨率和码率调低再试——远程对上行带宽非常敏感。另外 Web 管理界面的访问范围由origin_web_ui_allowed控制,默认lan只有局域网设备能打开,想外网管理需要另行做路由器端口转发,并且务必配强密码、保持软件更新。
三个最常卡住新手的坑
Q1:忘了 Web 管理密码,怎么重置?终端执行sunshine --creds 新用户名 新密码即可重新生成凭据。
Q2:手柄没反应怎么办?Linux 把运行 Sunshine 的用户加入input组:sudo usermod -aG input $USER,然后重新登录生效;Windows 装好虚拟手柄驱动后重启一次。
Q3:Moonlight 发现不了主机?多半是不同网段或防火墙拦截,确认同一局域网并放行相关端口,也可以在 Moonlight 里手动填 IP 添加。Web 界面打不开时,确认用的是https而不是http,再检查 47990 端口是否被占用。更多疑难场景按平台分类收录在 docs/troubleshooting.md。
定位问题看两处:Web 的Troubleshooting页会逐条列出警告和错误;日志文件 Linux 默认在~/.config/sunshine/sunshine.log,路径可用配置项log_path修改。
你现在可以做的事
- 给常用游戏各建一个专属入口,以后在 Moonlight 里一点直达;
- 读一遍 docs/performance_tuning.md,按自己的显卡和带宽调码率与分辨率,把卡顿治掉;
- 把
upnp改成enabled,在公司的网络里连回家里的电视试一把。
【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考