Moonshine:让你从PC向任意运行Moonlight的设备串流游戏

Hacker News Top 工具

摘要

Moonshine是一款开源工具,允许你从Linux PC向任意运行Moonlight的设备串流游戏,支持隔离会话、无需显示器、硬件编码及完整输入支持。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/20 09:45

hgaiser/moonshine 来源:https://github.com/hgaiser/moonshine CI(持续集成): https://github.com/hgaiser/moonshine/actions

Moonshine 🌙

Moonshine 让你能将 PC 上的游戏串流到任意运行 Moonlight(https://moonlight-stream.org/) 的设备上。你的键盘、鼠标和手柄输入会被传回主机,让你可以远程玩游戏,仿佛就坐在主机前一样。

特性

  • 隔离的串流会话:每个串流都在独立的合成器中运行,与你的桌面环境完全隔离。你仍然可以在串流的同时使用主机 PC 做其他事情。
  • 无需显示器:可在无头服务器上运行——不需要 HDMI 诱骗器。
  • 硬件视频编码:支持使用 GPU 进行 H.264、H.265 和 AV1 编码。

⚠️ AV1 警告:AV1 编码尚处于实验阶段,并且在 NVIDIA GPU 上存在帧大小随时间增长的问题(见 issue(https://github.com/nvpro-samples/vk_video_samples/issues/217))。该问题预计在驱动版本 595.44.3.0 中得到修复。在此之前,请坚持使用 H.264 或 H.265。

  • HDR 支持:为受支持的游戏提供真正的 10 位 HDR 串流。
  • 完整输入支持:鼠标、键盘和手柄(包括体感、触摸板及触觉反馈)。
  • 音频串流:立体声及环绕声(5.1/7.1),搭配低延迟 Opus 编码。

系统要求

  1. 仅限 Linux。已在 Arch Linux 上测试,但据报道也可在其他 Linux 发行版上运行。
  2. systemd。用于启动和管理应用程序进程。几乎所有现代 Linux 发行版都默认包含它。
  3. 支持 Vulkan 视频编码的 GPU。NVIDIA RTX、AMD RDNA2+ 或 Intel Arc。
  4. Moonlight v6.0.0 或更高版本。不保证与旧版本或非官方移植版的兼容性。

安装

Arch

最简单的方法是通过 AUR 安装:

yay -S moonshine

为用户运行 Moonshine:

  1. 启用用户常驻(lingering)

sh sudo loginctl enable-linger $USER

这样即使未登录,Moonshine 也能在用户会话中运行应用程序。如果你的用户始终在你想要串流时保持登录,则可以跳过此步骤。

  1. 启用开机自启并立即运行

sh sudo systemctl enable --now moonshine@$USER

源码编译

编译所需的依赖:

sh sudo pacman -S \ clang \ cmake \ gcc-libs \ glibc \ libc++ \ libevdev \ libpulse \ libxkbcommon \ make \ mesa \ opus \ pkg-config \ rust \ shaderc \ vulkan-headers \ wayland

然后编译并运行:

sh cargo run --release -- /path/to/config.toml

配置

如果你提供的路径不存在,将自动创建配置文件。使用 AUR 包时,默认位于 $XDG_CONFIG_HOME/moonshine/config.toml

与客户端配对

首次使用 Moonlight 连接时,会显示一个 PIN。主机上会出现一个通知,点击即可打开配对页面,也可以手动访问 http://localhost:47989/pin 。你也可以通过命令行配对:

sh curl -X POST "http://localhost:47989/submit-pin" -d "uniqueid=0123456789ABCDEF&pin="

添加应用程序

每个应用程序都在其独立的隔离串流会话中运行。在 config.toml 中如下添加:

toml [[application]] title = "Steam" boxart = "/path/to/steam.png" # 可选 command = ["/usr/bin/steam", "steam://open/bigpicture"]

  • title:在 Moonlight 中显示的名称。
  • boxart(可选):封面图片路径。
  • command:要运行的命令。第一项为可执行文件,其余为参数。
  • pre_command(可选):启动应用程序前运行的命令。每条命令依次执行。同步执行——会话会等待所有命令完成。
  • post_command(可选):串流会话结束后运行的命令。每条命令依次执行。同步执行——服务器会等待所有命令完成。

示例:

toml [[application]] title = "Steam" command = ["/usr/bin/steam", "steam://open/bigpicture"] pre_command = [ ["/usr/bin/systemctl", "stop", "conflicting.service"], ["/usr/bin/nvidia-smi", "pstate", "50"], ] post_command = [ ["/usr/bin/nvidia-smi", "pstate", "performance"], ]

应用扫描器

扫描器可自动检测已安装的应用程序,无需手动添加。

Steam 扫描器——查找所有已安装的 Steam 游戏:

toml [[application_scanner]] type = "steam" library = "$HOME/.local/share/Steam" command = ["/usr/bin/steam", "-bigpicture", "steam://rungameid/{game_id}"]

桌面扫描器——从 .desktop 文件查找应用程序:

toml [[application_scanner]] type = "desktop" directories = [ "$HOME/.local/share/applications", "/usr/share/applications", ] include_terminal = false resolve_icons = true

常见问题

  1. 与 Sunshine(https://github.com/LizardByte/Sunshine)相比如何?
    • Sunshine 支持更多平台,整体功能也更丰富。Moonshine 仅限 Linux。
    • Moonshine 将每个串流会话运行在独立的隔离环境中,与桌面分离。这意味着在串流时,你的主机 PC 仍然可用,并且无需活跃的桌面会话也能工作。

安全

Moonshine 不设计用于公共网络。底层的 GameStream 协议存在限制,导致流量在应用层并非完全加密。如果你需要通过网络串流,请使用 VPN,例如 Tailscale(https://tailscale.com/)、WireGuard(https://www.wireguard.com/)或 ZeroTier(https://www.zerotier.com/)。请勿直接将 Moonshine 端口暴露到互联网。

致谢

如果没有以下项目背后人员的出色工作,这一切是不可能的:

  1. Moonlight(https://moonlight-stream.org/),没有它就不会有 Moonshine 的客户端。
  2. Sunshine(https://github.com/LizardByte/Sunshine),它为 API 的主机部分奠定了大量基础。
  3. Inputtino(https://github.com/games-on-whales/inputtino),提供了输入设备的全面实现。
  4. magic-mirror(https://github.com/colinmarc/magic-mirror),在使用 Vulkan 和 Wayland 合成器进行无头串流方面提供了灵感。

相似文章

Steam Machine

Product Hunt

一款小巧而强大的PC,专为大屏游戏设计。

Acer 推出用于流式传输 PC 游戏的 Linux 掌机

The Verge

Acer 发布了 Nitro Blaze Link,一款基于 Linux 的手持设备,专为流式传输 PC 游戏而设计,配备 7 英寸显示屏、Wi-Fi 6、1GB RAM 和 8GB 存储,将于 2026 年第四季度上市。

Lumox

Product Hunt

Lumox 是一款允许用户将iOS设备屏幕镜像到Mac电脑的工具。

DualStream

Product Hunt

DualStream 是一款轻松实现桌面和移动设备同步直播的工具。

Steam Machine

Hacker News Top

Steam Machine 是 Valve 的一款游戏硬件产品,允许用户在电视上玩 Steam 游戏。