# RDP-FIDO-GATE — セットアップと構成（ステップバイステップ）

**必須の FIDO2/WebAuthn ハードウェアキーゲート**を備えた安全なリモートデスクトップ（RDP）。RDP ポートは
常時ファイアウォールで遮断されたままで、キーにタッチした後、**あなたの IP に対してのみ、約 90 秒間だけ**開きます。
Windows 10 1903+（WebAuthn + Windows Firewall）が必要です。ホスティングサービスはありません——あなた自身が
ダウンロードしてインストールします。

2 つのコンポーネントとそのポート：

| コンポーネント | 実行される場所 | ポート |
|-----------|---------------|-------|
| **Gate** | ターゲットマシン（接続先の PC） | **7440/TCP** — 制御 + FIDO 確認；**3389/TCP** — RDP（オンデマンドで開く） |
| **Client** | あなたのマシン | ホストの 7440 および 3389 への送信接続 |
| **FIDO Stream**（オプション） | ホスト | **7441/UDP** — 低遅延モードの映像、音声、入力；セッションごとに、あなたの IP に対してのみ開かれます |

---

## Step 1. Host — gate をインストールする

1. ターゲットマシンで **[RdpFido-Setup.exe](https://accounts.new-imobile.com/updates/RdpFido-Setup.exe)** をダウンロードして実行し、**Host** を選択します（Windows が管理者の確認を求めます）。これで gate がインストールされます。**[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)** を直接ダウンロードすることもできます。
2. インストーラーは Remote Desktop（NLA 付き）を有効にし、gate ポート **7440** に TLS 証明書をバインドし、gate サービスを登録して起動します。RDP ポートはこれまでどおり動作し、最初のキーを登録した時点で初めて閉じられます。
3. インストーラーの最後のページに、**ワンタイムのキー登録コード**（15 分間有効、「コードをコピー」ボタン付き）と、マシンのアドレスおよび gate ポートが表示されます。
4. **書き留めてください：** ホストのアドレス（名前 / 公開 IP）、ポート **7440**、**コード**。コードが期限切れの場合は、管理者として `RdpFidoGate.exe code` を実行してください。

サイレントインストール（管理システムからなど）：`msiexec /i RdpFidoGate-Setup.msi /qn`

統合インストーラーでの無人インストール：`RdpFido-Setup.exe host`

---

## Step 2. ルーターのポートフォワーディング（ホストが NAT/ルーターの背後にある場合）——インターネットアクセスに必須

**インターネットから**接続し、ターゲットマシンが家庭/オフィスのルーターの背後にある場合、ルーター上で
ホストの LAN アドレスへ**2 つのポートを転送**する必要があります。これがないと、クライアントは
gate にも RDP にも到達できません。

転送（ルーター管理画面の Port Forwarding / Virtual Servers / NAT）：

| 外部ポート | プロトコル | → 内部 IP（ホスト LAN） | 内部ポート |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x`（ホスト LAN IP） | **7440** |
| **3389** | TCP | 同じホスト LAN IP | **3389** |
| **7441** | UDP | 同じホスト LAN IP | **7441** — インターネットから FIDO Stream を使う場合のみ |

手順：
1. ホストの LAN IP を確認します：`ipconfig` → "IPv4 Address"（例：`192.168.1.50`）。
2. そのアドレスをホスト用に**予約します**（ルーターで MAC による DHCP 予約）——そうしないと変わる可能性があります。
3. ルーターで：**Port Forwarding / Virtual Servers** → 表の 2 つのルールを追加します
   （外部ポート = 内部ポート、プロトコル TCP、内部 IP = ホスト LAN）。
4. あなたの**公開 IP** を確認します（ホストで `https://api.ipify.org` を開くか、ルーターの "WAN IP"）。あなたの
   IP が**動的**な場合は、**DDNS** を設定し（ルーターまたは no-ip/DuckDNS 経由）、IP の代わりに DDNS 名を使用します。

> セキュリティ：外部に対してリッスンするのは gate（7440）だけです。RDP（3389）は、あなたがキーで確認するまで
> 外部から**閉じられています**——確認後、あなたの IP に対してのみ、約 90 秒間だけ狭く開きます。3389 を転送しても
> それ自体はアクセスを許可しません。一時的な「ウィンドウ」がルーターを通過できるようにするだけです。

---

## Step 3. Client — インストールして登録する

1. クライアントをインストールします：**[RdpFido-Setup.exe](https://accounts.new-imobile.com/updates/RdpFido-Setup.exe)** を実行して **Client** を選択するか（ユーザー単位、管理者権限は不要）、**[RdpFidoClient-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoClient-Setup.msi)** を直接使用します。
2. AccountServer 経由の**アクティベーション**：メールアドレスを入力 → コードがメールで送られてくる → それを入力します。
   アクティベーションの猶予期間は 14 日間。無料枠 = 保存セッション最大 10 件、有料 = 制限なし。
3. **セッションを追加する：**
   - アドレス：ホストの公開 IP または DDNS 名（Step 2 より）、または同じネットワークにいる場合は LAN アドレス。
   - Gate ポート：**7440**。
   - プロトコル：**RDP (mstsc)** または **FIDO Stream** — Step 5 を参照。
   - Step 1 の**ワンタイムコード**を入力し、**あなたの FIDO2 キーを登録**します（タッチ）。

---

## Step 4. 接続する

セッションを選択 → **キーにタッチ** → gate がそれを検証し、**あなたの現在の IP に対して 3389 を約
90 秒間開きます** → クライアントが `mstsc` を起動し、自動的に接続します。30 秒ごとに gate は
ブロックを再適用するため、ウィンドウは狭く、IP 限定のまま保たれます。

---

## Step 5（オプション）. FIDO Stream — ゲームと動画向けの低遅延モード

FIDO Stream は RDP と並ぶ第 2 の接続モードです。ホストの画面、音声、あなたの入力はハードウェアエンコードを用いて UDP で送られるため、LAN での「クリックから表示まで」の遅延は約 25〜45 ms です。同じキーのタッチで開きます。gate は UDP 7441 をあなたの IP に対してのみ、そのセッションの間だけ開きます。追加でインストールするものはありません。ホストエージェントは gate の中に、ビューアーはクライアントの中にあります（ホスト側の gate はバージョン 1.15 以降）。

1. セッション設定で **プロトコル：FIDO Stream（ゲーム、低遅延）** を選択します。
2. 最初は設定を **自動** のままにしておきます。各項目の意味：
   - **バランス** — **回線が弱い**（低い解像度、HEVC、より多くの誤り訂正）から **PC が非力**（ハードウェアエンコーダーのみ、最速プリセット、ネイティブ解像度）までのスライダー。**バランスを自動調整** は現在のボトルネックに向けてスライダーを動かします。
   - **ホストの音声** と **自分のマイクをホストに送る** — 双方向の音声。
   - **起動時にマウスをキャプチャ（ゲーム用）** — シューティングゲーム向けの相対マウス移動。
   - **接続** — **自動（NAT 越え）**、**このコンピューターからホストへ接続**（7441/UDP のホストへの転送が必要）、または **ホストからこのコンピューターへ接続**（あなたの PC がパブリックアドレスを持つ場合）。
   - **エンコーダー（ホスト）** — 自動 / NVIDIA NVENC（直接）/ ハードウェア（任意の GPU）/ ソフトウェア（CPU）；**デコーダー** — 自動 / ハードウェア（GPU）/ ソフトウェア（CPU）。
3. いつもどおり接続します：セッションを選択 → キーにタッチ → ストリームウィンドウが開きます。

ストリームウィンドウのホットキー：**Ctrl+Alt+Home** でマウスのキャプチャ/解放、**Ctrl+Alt+Enter** で全画面の切り替え、**Ctrl+Alt+End** で切断。

要件：両側で Windows 10 1903+。最小の遅延のためには、ホストにハードウェアエンコーダー付きの GPU（NVIDIA、Intel、または AMD）。HEVC はクライアントに GPU デコーダーがある場合にのみ使用され、それ以外ではストリームは自動的に H.264 にフォールバックします。ホストでの診断（管理者として）：`RdpFidoGate.exe stream encoders` は利用可能なエンコーダーを一覧表示し、`RdpFidoGate.exe stream encoders --bench` はそれぞれを計測し、`RdpFidoGate.exe stream selftest` はネットワークなしでキャプチャ → エンコード → デコードを実行します。詳細はホストの `gate.log` とクライアントの `client.log` に書き込まれます。

---

## 確認とトラブルシューティング

- クライアントから：`Test-NetConnection <public-ip-or-DDNS> -Port 7440` → 
  `TcpTestSucceeded : True` になるはずです。`False` の場合——ポート 7440 が転送されていないか、ホストのファイアウォールがブロックしています。
- ポート **3389 は、あなたがキーで確認するまで外部から閉じられています**——これは想定どおりです（タッチ前にテストしないでください）。
- 「セッションが開かない」：次を確認してください。1) gate サービスがホストで実行中であること、2) **両方の**ポートが
  ルーターでホストの現在の LAN IP へ転送されていること、3) 公開 IP が変わっていないこと（動的なら DDNS を使用）。
- 1 台のルーターの背後に複数のホスト：異なる外部ポートを使用します（例：host-2 → 外部 7441→7440、
  3390→3389）。そしてそれらの外部ポートをクライアントのセッションに入力します。
- FIDO Stream が開始しない：ホストの gate はバージョン 1.15 以降である必要があり（クライアントがそう表示します）、インターネット経由でのアクセスには、7441/UDP がホストへ転送されているか、セッションが **ホストからこのコンピューターへ接続** を使用している必要があります。

---

## アンインストール

ホストで、管理者として：`powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
（サービスを削除し、ファイアウォールルールを復元します）。その後、必要に応じてルーターのポートフォワーディングルールを削除します。
