Moonlight + Sunshine でリモート環境構築

:::note info
2025/03/14 Windows11のFW設定についてとMoonlight Android版リンク追記
2025/01/27 IPv6アドレスでのMoonlightの接続方法と解像度について追記
:::

# はじめに
NVIDIAユーザーは以前よりGeForce Experienceに内包された
ストリームサーバーでMoonlightを接続し、
リモートデスクトップ環境を構築出来ていましたが、
2024年11月に「NVIDIAアプリ」として刷新され多くの方の予想通り
GameStream機能が排除されています。

自分も更新直前は、Moonlightの接続品質が酷いなと思っていましたが、
どうやらGeForce Experienceでの提供終了の関係で絞られていた？のか、
Sunshineで自前サーバーを建てた方が多少改善する様です。
ですのでMoonlightユーザーはそろそろSunshineに移行すべきだと思います。

Sunshineに関してはあまりに日本語のページがあまりありませんので
簡単な導入方法をご紹介させていただきます。

またMoonlightはAndroid版も提供されています。
https://play.google.com/store/apps/details?id=com.limelight&pcampaignid=web_share
外出中でもちょっとした作業なら手元のスマホで完結する事が出来るのでおすすめです。


# オフィシャルサイト
https://moonlight-stream.org/

### １．Moonlight（クライアントソフト）ダウンロード
https://github.com/moonlight-stream/moonlight-qt/releases
色々バージョンはありますがWindowsなら
MoonlightSetup-6.1.0.exe
などで良いと思います。
ダウンロードが完了しましたら実行しインストールしておいて下さい。
MoonlightのインストールはクライアントPCだけでOKです。

### ２．Sunshine（ホストソフト）ダウンロード
https://github.com/LizardByte/Sunshine/releases
Windows用バイナリは下記などから
https://github.com/LizardByte/Sunshine/releases/tag/v2025.122.141614
sunshine-windows-installer.exe
等ダウンロードすればよいかと思います。
SunshineはホストPCのみの導入でOKです。
※管理者権限のウィンドウに触れると操作不能になる不具合があるようなので
Windowsはインストーラー版推奨

### ３．サーバーを建てる
ファイアウォール許可とポート開放が必要なので設定します。

Windows11のWindows Defender例
設定→プライバシーとセキュリティ→Windowsセキュリティ
→ファイアウォールとネットワーク保護
→ファイアウォールによるアプリケーションの許可を押下
![スクリーンショット 2025-03-14 133150.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/9a415c55-4375-40b6-ad3d-39ecd941c7e1.jpeg)

設定の変更→別のアプリの許可
![スクリーンショット 2025-03-14 133350.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/b0decdc7-244a-40dc-a624-df892b92be5d.jpeg)

参照押下→sunshine.exe を指定して追加
![スクリーンショット 2025-03-14 133649.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/1c3cbdfd-2b01-4f7f-8725-272e325e5d18.jpeg)

例外ルールにsunshine.exeが追加されているか確認
![スクリーンショット 2025-03-14 134044.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/24779742-ed18-4d0c-b668-ac4528107046.jpeg)

ポート開放については各自ルーターのマニュアルを参照してください。
IPv6の場合でもMAP-E方式の場合は一部ポートが提供されているので
https://isecj.jp/tools/portcheck-map-e/
などで確認してルーターの設定を行って下さい。

FW設定とポート開放が終わったらsunshine.exeを実行します。
下記の様なコンソール画面が表示されれば起動完了です。
![スクリーンショット 2024-12-11 150434.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/11a45963-8249-f3e4-7c33-7e045e54c095.jpeg)


### ４．サーバー設定
起動すると下記URLにて設定が可能です。
https://localhost:47990/
Chrome等ではhttpsなのに証明書無いよと怒られますが、
そもそもローカルWEBサーバーなので気にする必要ないです。
![スクリーンショット 2024-12-11 150527.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/9adb4b41-a866-ff37-55a9-ec239fa80148.jpeg)
左下の詳細設定→localhost にアクセスする を押下して進みます
![スクリーンショット 2024-12-11 150546.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/6dd9d199-5222-81d5-06e7-c185f109c760.jpeg)

メインページが表示されますが初回は下記の様なユーザー作成が必要になります。
![スクリーンショット 2024-12-11 150616.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/0e39cbe1-80f5-72e2-8298-0b381b7b3d9a.jpeg)

左のインプットフォームに入力して適当にユーザーを作成します。
Username　（なんでもいい）
Password　（なんでもいい）
Confirm Password　（↑のパスワードもう一回入力するだけ）
恐らくローカルのみの扱いなので忘れなければ何でもOKです。

登録完了すると下記の様なメインページに切り替わります。
![スクリーンショット 2024-12-11 150704.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/ed24298b-5a06-1243-add9-83ad321754df.jpeg)
You are running the latest version of Sunshine
と表示されていれば問題ありません。

次にクライアントPC側でMoonlightを起動します。
※すでに起動されていてもOK
初回は設定が何も無いので下記の様な画面かと思います。
![スクリーンショット 2024-12-11 151021.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/a492b0d4-98ab-f845-cdc2-2a19e3ff304f.jpeg)
右上にある［+］のホスト追加を押下します。
![スクリーンショット 2024-12-11 151049.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/54ead798-c0e3-1d8d-1272-8a71bbfb9916.jpeg)
ホストのIPアドレスを尋ねられますので設定します。（ドメインネームでもOK）
IPv6アドレスの場合は下記の様にポート番号まで指定しないと弾かれる可能性があります。
[240b:10:c242:5400:xxxx:xxxx:xxxx:xxxx]:47990

設定したIPアドレスのPC（ホスト）まで通信が無事到達し、
Sunshineの起動を確認出来ると下記画像の様な鍵アイコンに変わります。
![スクリーンショット 2024-12-11 151112.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/c4bed68e-1658-9bdc-f348-23452499ed71.jpeg)

このアイコンを押下するとPINをホストPCに入力して下さいと出るので、
![スクリーンショット 2024-12-11 153513.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/0cb80478-4e90-c205-1ed4-8efcd6ab68ce.jpeg)

ホスト側PCのメインページ上にあるメニューからPinを押下し入力してSendします。
新バージョンでデバイス名まで尋ねられる様になりましたが任意の名前でOKです。
![スクリーンショット 2024-12-11 150725.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/aad743a0-9996-64a7-e921-0567041b42da.jpeg)
Successと表示されPINが合致していれば、
下記画像の様にクライアント側の鍵アイコンが通常のアイコンに切り替わるはずです。
![スクリーンショット 2024-12-11 151236.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/d5997dce-9135-58e8-6914-704ee4e8b319.jpeg)


上記でとりあえずは使用出来るかと思いますが、言語設定が用意されてるので
日本語に変更しておくと良いと思います、
![スクリーンショット 2024-12-11 151341.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/fff63ecc-a1aa-1876-26c8-b3e458b7de7c.jpeg)

画面解像度について
ホストの画面解像度などに依存していて使いにくい場合
例えばホストが1920x1080だけども、クライアントが2880×1920の様なケースで
うまく解像度が切り替わらない事があります。
NVIDIAコントロールパネルからカスタム解像度を追加すると
上手く行く事があります。
![スクリーンショット 2025-01-27 075819.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/802449/8d3b583e-bfb9-1220-87b7-7ec0e8bd93ec.jpeg)

またその場合、ホストの画面を消灯しているとFPSが出ない事があります。
その場合は下記の様なダミープラグを試して見て下さい。改善する可能性があります。
ターゲットの解像度＆リフレッシュレートに対応しているかは確認してから購入推奨。
https://www.amazon.co.jp/dp/B0CX51981L

以上。良いリモートライフを！