把你的 Linux 游戏 PC 串流到任何浏览器
MoonlightWeb 是一个免费、开源(GPL-3.0)的服务器,把你的游戏主机串流到任何带浏览器的设备。在游戏 PC 上装一个软件包。其他每台设备只要打开一个网址。
你需要什么
- 一台 Linux 游戏 PC(x64),配备支持硬件编码的 GPU——也就是运行你游戏的那台机器。
- 不需要安装别的——MoonlightWeb 自己捕获桌面(KMS,或 Wayland 下合成器自己的屏幕录制)并通过 VA-API 或 Vulkan Video 编码。声音需要 PipeWire:在仍然使用纯 PulseAudio 的机器上,串流会没有声音,日志中会说明。已经在别处跑着 Sunshine、Wolf 或 MultiSeat?那些机器可以在同一个页面里配对。
- 任何带现代浏览器的设备都可作客户端:Chrome、Edge、Safari 或 Firefox。无需应用、无需账户。
- 发行版不低于 Ubuntu 22.04、Debian 12 或 Fedora 36(glibc 2.34+)。Qt 和 OpenSSL 已内置,但系统的 C 运行库永远无法内置:在更旧的发行版上,软件包能装上,应用却拒绝启动。
捷径:一条命令,还自带更新
MoonlightWeb 提供经过签名的 APT 和 DNF 软件源。从软件源安装,意味着系统的更新程序会自动让 MoonlightWeb 保持最新,而且应用会像其他程序一样出现在 GNOME 软件、KDE Discover 和 Ubuntu 的 App Center 中。这一条命令会检测你的发行版并做正确的事:
curl -fsSL https://moonlightweb.top/install.sh | bash
想手动操作?那正是下面这些步骤:
# Debian / Ubuntu / Mint / Pop!_OS
sudo install -d /etc/apt/keyrings
sudo curl -fsSL -o /etc/apt/keyrings/moonlightweb.gpg https://packages.moonlightweb.top/moonlightweb.gpg
sudo curl -fsSL -o /etc/apt/sources.list.d/moonlightweb.sources https://packages.moonlightweb.top/moonlightweb.sources
sudo apt update && sudo apt install moonlightweb
# Fedora / RHEL / Rocky / Alma / Nobara
sudo curl -fsSL -o /etc/yum.repos.d/moonlightweb.repo https://packages.moonlightweb.top/moonlightweb.repo
sudo dnf install moonlightweb
# openSUSE
sudo curl -fsSL -o /etc/zypp/repos.d/moonlightweb.repo https://packages.moonlightweb.top/moonlightweb.repo
sudo zypper install moonlightweb
# Arch / Manjaro / EndeavourOS
paru -S moonlightweb-bin
SteamOS、Bazzite 及其他不可变系统没有可以添加软件源的包管理器——它们继续使用便携的 AppImage,同一条命令也会帮你下载。下面的手动方式在任何系统上依然有效。
更喜欢 Docker?无头服务器、NAS 与迷你 PC
官方多架构镜像(amd64 + arm64)已发布到 GitHub Container Registry。在任何装有 Docker 的 Linux 主机上一条命令即可——--network host 让容器直接处于你的局域网中,从而发现网络上的主机。容器没有桌面可供捕获:因此它串流的是你配对的机器,而不是它自己:
docker run -d --name moonlightweb --network host \
-v mw-data:/data --restart unless-stopped \
ghcr.io/linckosz/moonlight-web:latest
容器没有可信任的本地浏览器,因此先设置一次访问 PIN 码,然后打开 https://<服务器-IP> 并输入:
docker exec moonlightweb moonlightweb --new-pin
用 docker pull 更新并重建容器——数据卷会保留你的配对和证书。Compose 文件、端口表、macvlan 以及一键互联网访问都在 Docker 指南中。
逐步安装
下载一个软件包
从发布页面按你的发行版系列选择:Debian、Ubuntu、Mint、Pop!_OS、elementary、Zorin 用 .deb;Fedora、RHEL、CentOS Stream、Rocky、Alma、Nobara、openSUSE 用 .rpm;SteamOS、Bazzite 及其他一切用便携的 .AppImage(Arch 和 Manjaro 用 AUR 软件包 moonlightweb-bin)。每个软件包都是自包含的(内置 Qt 和 OpenSSL——无需安装任何依赖)。
安装并启动——在游戏 PC 上
# Debian / Ubuntu / Mint / Pop!_OS — double-clicking the .deb works too
sudo apt install ./moonlightweb-*-linux-x64.deb
# Fedora / RHEL / Rocky / Alma / Nobara
sudo dnf install ./moonlightweb-*-linux-x64.rpm
# openSUSE
sudo zypper install --allow-unsigned-rpm ./moonlightweb-*-linux-x64.rpm
# Arch / SteamOS / other — portable AppImage (needs FUSE 2, see below)
chmod +x moonlightweb-*.AppImage
./moonlightweb-*.AppImage
软件包安装到 /opt/moonlightweb,添加菜单项和 moonlightweb 命令,打开所需的防火墙端口,并立即启动服务器。
要让这台机器当主机,请使用 .deb、.rpm 或 AUR 软件包。屏幕捕获需要文件 capability,而它无法在 AppImage 内保留:便携 AppImage 仍能串流你网络上的 Sunshine、Wolf 和 MultiSeat 主机,但永远无法串流它自己的屏幕。
回答设置向导
首次启动时,MoonlightWeb 会打开 https://localhost/setup,它只问剩下的这一个问题:是否允许互联网连接(远程串流会话,默认关闭)。别的什么都不装——这个桌面由应用自己捕获。在 GNOME 以外的 Wayland 会话中,第一次串流可能会弹出一次合成器的屏幕共享对话框;之后授权会被记住。
在任何设备上打开浏览器
在 PC 本机上:https://localhost。从你网络上的其他设备:你的局域网 IP。要从网络之外游玩:启用互联网访问,应用便会给你一个直达这台机器的远程接入链接。你也可以使用自己的域名和证书。
你的 PC 已经在那里
这台机器一开始就列在那里,每块屏幕一张卡片——无需配对,也没有 PIN 码。你网络上的其他主机(Sunshine、Wolf、MultiSeat)会通过 mDNS 出现在旁边:那些只需配对一次——对于 Sunshine,在其网页中输入 MoonlightWeb 显示的 PIN 码——之后永久记住。
按下开始
选择一块屏幕、一款游戏或完整桌面。全屏、手柄在手——最高 4K、240 fps,Wi-Fi 下延迟低于 20 毫秒。(Linux 主机的 HDR 尚未实现。)
疑难解答
安装很顺利,但点击应用毫无反应
几乎都是发行版比上面的要求更旧。菜单项在没有终端的情况下启动,加载器的报错无处显示,点击看起来就像什么都没发生。请在终端中运行 /opt/moonlightweb/bin/MoonlightWeb:若出现包含 GLIBC_ 或 GLIBCXX_ not found 的行即可确认。唯一的办法是升级发行版——程序无法自带 C 运行库。
双击 AppImage 只弹出“搜索软件”的窗口
AppImage 只是一个普通文件:在被标记为可执行之前,桌面环境不会运行它(chmod +x moonlightweb-*.AppImage,或者属性 → 权限 → 允许执行)。它还需要 FUSE 2,而 Ubuntu 22.04 及以后不再自带——请用 sudo apt install libfuse2t64 安装(Ubuntu 24.04 之前为 libfuse2),或者用 ./moonlightweb-*.AppImage --appimage-extract-and-run 运行。在 Debian、Ubuntu 及其衍生版上,请直接使用 .deb:双击即可安装,没有这些限制,还会添加正规的菜单项。
主机没有出现在浏览器里
请确保客户端设备与游戏 PC 处于同一网络,并且你的防火墙放行了 MoonlightWeb 的端口。你也可以通过 IP 手动添加主机。
HEVC 或 AV1 被置灰
你的浏览器无法硬件解码的编解码器选项会被自动禁用——这是正常的。H264 到处都能用;HEVC 和 AV1 是否可用取决于客户端设备的浏览器和 GPU。
弱网络下串流卡顿
降低串流分辨率并启用 Video Enhancement(视频增强):串流会在客户端 GPU 上放大并锐化(WebGL2 或 WebGPU 运行 SGSRv1 + FSR1),于是 720p 串流看起来接近 1440p。