これはなに

スマートフォンから自宅PCを遠隔起動できるようにしたとき設定した手順のメモ。
環境

- 接続元: iPhone 13 Pro
- OS: iOS 18.5
- 自宅サーバ: Raspberry Pi 4 Model B 4GB
- OS: Raspberry Pi OS
- 接続先(起動したいPC): デスクトップPC
- OS: Windows 11 Pro
- マザーボード: TUF GAMING Z690-PLUS WIFI D4
- Wake on LAN(WoL)に対応していることが必須
- ネットワークアダプタ: Intel(R) Wi-Fi 6 AX201 160MHz
- Wake on WLAN(WoWLAN)に対応していることが必須
前提

本稿では、起動したいPCおよび自宅サーバが両方ともWi-Fi接続であることを前提とする。
ただし、本稿のように無線接続の場合は、スリープ(S3)状態からの起動はできても、シャットダウン状態からの起動はできないことに留意すること。
なお、自宅サーバと対象PCを有線でつなげば、シャットダウン状態からの復帰も可能になる。
手順

1. BIOSでWake on LANを有効にする

BIOS設定でWake on LANを有効にする。
BIOSの設定方法はマザーボードによって異なる。たいてい調べれば出てくる。 TUF GAMING Z690-PLUS WIFI D4の場合は、下記サイトが非常に参考となる。
2. ネットワークアダプタの設定でWake on LANを有効にする

起動したいPCのネットワークアダプタの設定でWake on LANを有効にする。
Windowsの場合、「デバイスマネージャー」からネットワークアダプタを選択し、プロパティを開く。無線前提なので、無線LANアダプタを選択している。

まず、「電源の管理」タブを開き、「このデバイスでコンピューターのスタンバイを解除できるようにする」と「Magic Packetでのみスタンバイを解除できるようにする」にチェックを入れる。

次に、「詳細設定」タブを開き、「Wake on Magic Packet」を有効にする。

3. 高速スタートアップを無効にする

Windowsの場合は、高速スタートアップを無効にする必要がある。 コントロールパネルの「電源オプション」から「電源ボタンの動作を選択する」を開く。 その後、「現在利用できない設定を変更します」をクリックし、「高速スタートアップを有効にする」のチェックを外す。

4. MACアドレスを確認する

起動したいPCのMACアドレスを確認する。 PowerShellを開き、以下のコマンドを実行する。
ipconfig /all表示される結果から、利用するネットワークアダプタの「物理アドレス」を確認する。これがMACアドレスである。
ちなみに、Windowsの場合は、PowerShellを使って下記のコマンドでも確認できる。
Get-NetAdapter | Where-Object {$_.Status -eq "Up"} | Format-Table Name, MacAddressこの場合は、利用する接続方法に表示される文字列がMACアドレスである。本稿のように無線接続を前提とする場合は、Wi-Fi接続の欄に表示される。
5. 自宅サーバからWake on LANのパケットを送信できるようにする

自宅サーバから起動したいPCにWake on LANのパケットを送信できるようにする。
まず、自宅サーバにWake on LANを送信するためのツールをインストールする。Raspberry Pi OS(Debian)では、wakeonlanパッケージを使用する。
sudo apt update
sudo apt install wakeonlanこれを利用すると、wakeonlan XX:XX:XX:XX:XX:XX(XX:XX...はMACアドレス)でWoLを実行できる。
なお、MACアドレスはハイフン区切りだと動かない(1敗)。
$ wakeonlan XX-XX-XX-XX-XX-XX
XX-XX-XX-XX-XX-XX is not a hardware address and I could not resolve it as to an IP address.カンマ区切りにすると動く。
$ wakeonlan XX:XX:XX:XX:XX:XX
Sending magic packet to 255.255.255.255:9 with XX:XX:XX:XX:XX:XXXX:XX:XX:XX:XX:XXの部分は、起動したいPCのMACアドレスに置き換えること。6. WoLを実行するスクリプトを作る

毎回MACアドレスを入力するのは面倒なので、スクリプトを作成する。
nano wake_pc.sh内容は以下のとおり。
#!/bin/bash
wakeonlan XX:XX:XX:XX:XX:XXXX:XX:XX:XX:XX:XXの部分は、起動したいPCのMACアドレスに置き換えること。保存して、実行権限を付与する。
chmod +x wake_pc.shこれにより、./wake_pc.shで起動したいPCを起動できるようになる。
7. スマートフォンから自宅サーバにSSHで接続する

スマートフォンから自宅サーバにSSHで接続できるようにする。 この場合、自宅サーバでSSHサーバを起動しておく必要がある。
TermiusなどのSSHクライアントをスマートフォンにインストールする。 SSH鍵をスマートフォン側で作成して、公開鍵を自宅サーバへ転送する1。
自宅サーバに渡した公開鍵を~/.ssh/authorized_keysに張り付ける。authorized_keysファイルがない場合は新規に作成する。
例を以下に示す。
ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXこれでスマートフォンから自宅サーバへSSH接続できるようになる。
8. スマートフォンから自宅サーバにSSHで接続し、PCを起動する

スマートフォンから自宅サーバにSSHで接続し、先ほど作成したスクリプトを実行する。
./wake_pc.sh対象のPCがスリープ状態から復帰すれば成功である。
9. 外部から自宅サーバに接続してWoLを実行する

外部から自宅サーバへ接続できるようにする。Tailscaleを利用してVPNを構築するのが無料かつ簡単である。
cloudflare tunnelでもできる。ただしちょっと設定が必要であるため、個人的にはTailscaleをオススメする。
参考文献・URL

公開鍵はメールで送ったり下書きの保存したりなどの方法でWindows側に転送する。 ↩︎


![FMV Q&A - [Windows 11] 高速スタートアップを無効にする方法を教えてください。 - FMVサポート image](https://notes.nakurei.com/remote/7edda4a28d0d83f91602a2b5d5e0a4630f0b1769_hu181105685371804280.webp)

