本文へ移動

Wake-on-LAN(リモート起動)

Wake-on-LAN は、LAN に Magic Packet を送信して、電源オフまたはスリープ中のデバイスを起動します。fn-knock はローカルネットワークへ直接ブロードキャストできるほか、別の fn-knock の内蔵 Relay を使って異なるネットワークへ送信できます。ログイン済みユーザーは、ゲートウェイポータルから簡易起動ページを開くこともできます。

Wake-on-LAN は起動信号を送るだけで、デバイス自体の電源管理を置き換えるものではありません。対象のマザーボード、ネットワークアダプター、ファームウェア、OS で WOL を有効にし、シャットダウン後もアダプターへ給電されている必要があります。

機能を有効にする

システム設定 → 機能 → Wake-on-LAN を有効にします。保存するとサイドバーに Wake-on-LAN が表示され、デバイスのオンライン確認、内蔵 Relay、設定済みの外部プラットフォーム接続が開始されます。無効にするとこれらの実行タスクとメニューは停止しますが、デバイス、Relay、外部プラットフォームの設定は削除されません。

最初に同じ LAN 上の 1 台で直接起動を確認してください。その後でネットワーク間 Relay や外部プラットフォームを設定すると、デバイス側で WOL が有効になっていない問題を切り分けやすくなります。

ローカルデバイスを追加する

Wake-on-LAN → デバイス を開き、手動で追加するか デバイスを検出 を使用します。

  1. 既定では、fn-knock が検出した直結 IPv4 ネットワークをスキャンします。範囲を指定する場合はスキャン設定を開き、1 つ以上の CIDR を入力します。
  2. 実際に応答し、近隣テーブルから MAC アドレスを解決できたデバイスだけが表示されます。スリープ中、ICMP を拒否している、またはスイッチの近隣テーブルから消えたデバイスは表示されないことがあります。
  3. デバイスを選択し、名前を確認して一括追加します。検出時にはデバイス IP と、そのネットワークの directed broadcast アドレスも設定されます。

手動追加の主な項目は次のとおりです。

項目用途
名前管理画面、ポータル、イベントに表示されるデバイス名
MAC アドレスMagic Packet の対象。大文字のコロン区切り形式で保存
デバイス IP アドレスオンライン確認に使用。Magic Packet の唯一の宛先ではない
起動経路ローカルデバイスは直接ブロードキャスト、別ネットワークはペアリング済み Relay を選択
ブロードキャストアドレスローカル起動で使用。空欄の場合は検出したローカルインターフェースへブロードキャスト
有効無効なデバイスは設定に残るが、管理画面、ポータル、外部プラットフォームから起動不可

起動 の成功はブロードキャストが送信処理へ渡されたことだけを示し、デバイスの起動完了を保証しません。同じデバイスには短いクールダウンがあり、連続操作でパケットを送り続けることはありません。

オンライン状態の判定

有効なデバイスは約 1 分ごとに確認されます。作成または編集後は直ちに確認され、起動要求後にも少し待って 2 回再確認されるため、起動を押した瞬間にオンラインへ変わるわけではありません。

  • オンライン:プローブへ応答し、応答元アドレスが対象 MAC と一致した状態。
  • オフライン:プローブは完了したが対象が見つからなかった状態。
  • 確認待ち:未確認、タイムアウト、Relay が利用不可、またはアドレスを確認できない状態。

DHCP で IP が変わった場合、fn-knock は近隣テーブルから観測アドレスを更新できます。確認待ち を電源オフの証拠と解釈しないでください。コンテナネットワーク、ICMP ポリシー、VLAN 間ルーティング、システム権限によっても結果が不確定になります。

ゲートウェイポータルから起動する

WOL を有効にすると、システム設定 → ゲートウェイ → ポータルWake-on-LAN ショートカットを表示 が現れ、既定で有効になります。Wake-on-LAN ページ右上の設定からも変更できます。ログイン済みユーザーが開く内蔵 /__wol__ ページには、有効なデバイスの名前と簡易状態だけが表示され、MAC、デバイス IP、ブロードキャストアドレス、Relay、内部エラーは公開されません。

この入口には、次のすべてが必要です。

  1. WOL 機能が有効であること。
  2. ポータルで WOL 表示が許可されていること。
  3. ブラウザーに有効なログインセッションがあること。
  4. ログイン資格情報のサービス範囲に内蔵 WOL ページが含まれること。

すべての範囲 では自動的に含まれます。カスタム範囲 の場合は 認証設定 → 権限内蔵 Wake-on-LAN ページ を選択します。ショートカットを非表示にしてもデバイスは削除されず、管理者、Relay、外部プラットフォームからの起動には影響しませんが、公開認証 API から内蔵ページを操作することはできなくなります。

ネットワーク間 Relay

対象が現在の fn-knock と同じブロードキャストドメインにない場合は、対象ネットワークにも fn-knock を配置してペアリングします。

  1. 制御側で Wake-on-LAN → ネットワーク間 を開き、リモートネットワークを追加 から対象側 fn-knock へ到達できる IP を入力します。既定の UDP ポートは 40009 です。
  2. 保存後、FNW1. で始まる一度だけ表示されるペアリングコードをすぐにコピーします。
  3. 対象側で Wake-on-LAN → Relay 受信 を開き、コードを貼り付けて有効にします。
  4. 制御側へ戻って 接続テスト を行い、対象デバイスの 起動経路 にこの Relay を選びます。

2 台の fn-knock 間には、サイト間 VPN、管理されたポート転送、その他の信頼できるネットワークなど、ルーティング可能な UDP 経路が必要です。ルーターとホストファイアウォールで Relay の UDP ポートを許可してください。Docker では UDP ポートを明示的に公開し、コンテナから対象 LAN へブロードキャストできることも確認します。

ペアリングコードには事前共有鍵が含まれるため、信頼できる経路でのみ渡してください。Relay の要求と ACK には署名、時刻範囲、リプレイ保護が適用されます。許可する送信元 CIDR で制御側アドレスをさらに限定できますが、PSK の代わりにはなりません。コードを再生成すると古い鍵は直ちに無効になり、対象側へ新しいコードを貼り直す必要があります。両側の時計が大きくずれている場合も要求は拒否されます。

高度なリッスンアドレス、ブロードキャスト先、送信元 CIDR は、自動検出が VLAN、コンテナ、複数インターフェース構成に合わない場合だけ変更してください。ブロードキャスト先は最低 1 件必要で、通常は対象ネットワークの directed broadcast アドレスと UDP 9 を使用します。

Blinker と Bemfa

デバイスを編集し、外部プラットフォーム連携 で 1 つのプロバイダーを選びます。1 台につき 1 プラットフォームだけ有効にでき、接続中、接続済み、再接続中、資格情報なし、異常の各状態が表示されます。

Blinker(点灯科技)

Blinker アプリで独立ネットワークデバイスを作成し、デバイスキーを fn-knock に入力します。switch コンポーネントを連携 を有効にすると、on は起動を実行し、off は現在のオンライン状態だけを返してシャットダウンはしません。状態照会には fn-knock が最後に検出した状態を返します。

Bemfa(巴法云)

Bemfa の秘密鍵と購読トピックを入力します。トピックに使えるのは英数字とアンダースコアだけです。音声プラットフォームの検出が必要な場合は Bemfa の規約に従って 001 または 006 で終わる名前を使用します。

  • on を受信するとデバイスを起動します。
  • off ではシャットダウンせず、現在の状態を {トピック}/up に公開します。
  • オンライン状態が変化した場合も、上りトピックへ on または off を同期します。

Mi Home と XiaoAI に連携する

Blinker または Bemfa を設定し、デバイスが接続済みであることを確認したら、次の手順を行います。

  1. Mi Home アプリを開き、マイページ → サードパーティプラットフォームに接続 に進みます。
  2. 巴法(Bemfa)または 点灯(Blinker)を検索し、fn-knock の対象デバイスに設定したものと同じプラットフォームを選んで、画面の案内に従って追加します。
  3. アカウントを認証してデバイスを同期すると、Mi Home アプリから起動したり、XiaoAI に電源オンや起動を指示したりできます。

Mi Home と XiaoAI の操作は、選択したプラットフォーム経由で送信されます。オン操作は on に対応して WOL を実行します。オフ操作では対象デバイスをリモートシャットダウンせず、前述の規則に従って現在の状態を返すか同期するだけです。

どちらも fn-knock からプロバイダーの HTTPS および MQTT TLS サービスへ接続できる必要があります。デバイスキー、秘密鍵、トピック、それらを含むスクリーンショットを公開しないでください。プラットフォームのコマンドはゲートウェイポータル画面を経由しないため、信頼できる利用者だけにアカウントとデバイス権限を付与します。

イベント、バックアップ、移行

起動処理ごとに Wake-on-LAN 完了 イベントが作成され、対象、配信経路、実行元(管理者、ポータル、Blinker、Bemfa)、結果、遅延が記録されます。イベントセンターで通知ルールを作成できます。このイベントはブロードキャスト処理の結果であり、デバイスの起動完了ではありません。後続のオンライン状態も確認してください。

デバイス、Relay、機密でない連携設定はアプリ設定に含まれます。Relay PSK、Blinker デバイスキー、Bemfa 秘密鍵は現在のインストールに結び付いた暗号化資格情報ディレクトリに保存され、.knock バックアップには含まれません。移行または復元後は Relay を再ペアリングし、外部資格情報を再入力して、ブロードキャストアドレス、デバイス IP、UDP ポート、ファイアウォールを再確認します。

トラブルシューティングの順序

  1. 対象の BIOS/UEFI、アダプタードライバー、OS で WOL を有効にし、同じ LAN の別ツールから先にテストします。
  2. MAC を確認し、完全シャットダウン後もネットワークポートへ給電されているか確認します。
  3. 直接起動では directed broadcast アドレスを確認します。Docker ではネットワークモード、UDP ブロードキャスト到達性、ホストファイアウォールを優先して調べます。
  4. 別ネットワークでは Relay の接続を先にテストし、UDP 40009(または設定値)、ルーティング、送信元 CIDR、両側の時計、ペアリングを確認します。
  5. ブロードキャスト成功後も起動しない場合は、繰り返し送信するのではなく、対象、スイッチ、ブロードキャスト経路を調べます。
  6. 確認待ちのままなら、デバイス IP、ICMP、近隣テーブル、VLAN 間ルーティング、Relay の状態確認を調べます。
  7. ポータルに入口がなければ、機能スイッチ、ショートカット表示、資格情報のサービス範囲を確認します。
  8. 外部プラットフォームが反応しなければ、接続状態と最新エラー、外向き HTTPS/MQTT TLS、資格情報、トピックを確認して再保存します。

QQ コミュニティ:1081609274