概要
- Moonshine は、PCゲームを他のデバイスにストリーミングできるLinux専用ソフトウェア
- 各ストリーミングセッションはデスクトップ環境と分離されて動作
- GPUによる映像エンコード、HDR、音声ストリーミング、フル入力サポートを搭載
- インストールや設定は主に Arch Linux を例に解説
- セキュリティ面では VPN利用 が推奨され、インターネットへの直接公開は非推奨
Moonshineの特徴
- Moonlight クライアントを使い、PCのゲームを他デバイスでリモートプレイ可能
- キーボード、マウス、コントローラー入力の双方向対応
- 各ストリームは 独立したコンポジタ 上で動作
- ホストPCで他作業と同時進行が可能
- モニター不要、HDMIダミープラグなしでヘッドレスサーバー利用可能
- ハードウェア映像エンコード対応
- H.264、H.265、AV1 (AV1はNVIDIA環境で問題あり、595.44.3.0以降のドライバで修正予定)
- HDRストリーミング (10bit対応ゲーム限定)
- マウス・キーボード・ゲームパッド(モーション・タッチパッド・ハプティクス含む)完全対応
- 低遅延Opus音声エンコード によるステレオ/サラウンド(5.1/7.1ch)配信
動作要件
- Linux専用 (Arch Linuxで動作確認済み。他ディストリビューション報告あり)
- systemd 必須(ほぼ全ての近年のLinuxに標準搭載)
- Vulkan対応GPU (NVIDIA RTX、AMD RDNA2以降、Intel Arc等)
- Moonlight v6.0.0以降 必須
- 旧バージョンや非公式ポートの互換性は保証外
インストール方法(Arch Linuxの場合)
- AURからインストール
- コマンド例:
yay -S moonshine
- コマンド例:
- ユーザーで起動
- ユーザーセッションでのアプリ実行を許可:
sudo loginctl enable-linger $USER- 常時ログイン状態なら省略可
- サービスを自動起動かつ即時起動:
sudo systemctl enable --now moonshine@$USER
- ユーザーセッションでのアプリ実行を許可:
- ソースビルド
- 依存パッケージをインストールし、
cargo run --release -- /path/to/config.tomlで起動
- 依存パッケージをインストールし、
設定ファイル
- config.toml が自動生成される(AUR版は
$XDG_CONFIG_HOME/moonshine/config.tomlがデフォルト) - アプリケーションごとに独立したストリーミングセッションを設定
- 例:
[[application]] title = "Steam" command = ["/usr/bin/steam", "steam://open/bigpicture"] pre_command = [ ["/usr/bin/systemctl", "stop", "conflicting.service"] ] post_command = [ ["/usr/bin/nvidia-smi", "pstate", "performance"] ]
- 例:
クライアントとのペアリング
- 初回接続時、 PINコード が表示され、ホスト側で通知クリックまたは
http://localhost:47989/pinでペアリングページを開く - コマンドラインからもペアリング可能
- 例:
curl -X POST "http://localhost:47989/submit-pin" -d "uniqueid=0123456789ABCDEF&pin=<PIN>"
- 例:
アプリケーション追加・自動検出
- 手動追加 :config.tomlに[[application]]ブロックで記述
- スキャナー機能 による自動検出
- Steamスキャナー:インストール済みSteamゲームを自動登録
- デスクトップスキャナー:.desktopファイルからアプリを検出
よくある質問(FAQ)
- Sunshineとの違い
- Sunshineは多プラットフォーム対応・機能豊富
- Moonshineは Linux専用、各セッションが独立環境で動作、デスクトップセッション不要
- セキュリティについて
- Moonshineはパブリックネットワーク利用非推奨
- GameStreamプロトコルの仕様上、通信が完全暗号化されていない
- インターネット越しの利用は VPN(Tailscale, WireGuard, ZeroTier等) 推奨
- Moonshineのポートを直接インターネット公開しないこと
謝辞
- Moonlight :Moonshineクライアントの基礎
- Sunshine :APIホスト部分の設計参考
- Inputtino :入力デバイス実装
- magic-mirror :VulkanおよびWaylandコンポジタによるヘッドレス配信の着想元