跳至正文

遠端喚醒(Wake-on-LAN)

遠端喚醒 使用 Magic Packet 啟動已關機或休眠的區域網路裝置。fn-knock 可以直接向本機所在區域網路廣播,也可以透過另一台 fn-knock 的內建 Relay 跨網路廣播;已登入使用者還可以從閘道傳送門開啟精簡喚醒頁面。

Wake-on-LAN 只能發出喚醒訊號,不能取代裝置本身的電源管理。目標主機板、網路卡、韌體與作業系統必須已啟用 WOL,而且裝置關機後仍需保留網路卡供電。

開啟功能

系統設定 → 功能 → 遠端喚醒 開啟功能。儲存後會顯示 遠端喚醒 側邊欄入口,並啟動裝置上線偵測、內建 Relay 與已設定的第三方平台連線。關閉開關會停止這些執行工作並隱藏入口,但不會刪除裝置、Relay 或第三方平台設定。

建議先在同一區域網路完成一台裝置的直接喚醒,再設定跨網段或第三方平台。這樣可以先排除目標裝置本身未啟用 WOL 的問題。

新增本機裝置

進入 遠端喚醒 → 裝置,可手動新增,也可以使用 一鍵探索

  1. 預設掃描 fn-knock 自動識別的直連 IPv4 網段;需要指定範圍時展開掃描設定,填寫一個或多個 CIDR。
  2. 掃描只顯示確實回應且可從鄰居表解析出 MAC 位址的上線裝置。休眠、禁止 ICMP 或已從交換器鄰居表逾時移除的裝置可能不會出現。
  3. 選取裝置並確認名稱後批次新增。探索流程也會填入裝置 IP 與對應網段的定向廣播位址。

手動新增時的主要欄位如下:

欄位作用
名稱顯示於管理頁、傳送門與事件記錄的裝置名稱
MAC 位址Magic Packet 的目標;儲存後統一為大寫冒號格式
裝置 IP 位址用於上線偵測,不是傳送 Magic Packet 的唯一依據
喚醒路徑本機裝置選擇直接廣播;其他網路的裝置選擇已配對 Relay
廣播位址本機直接喚醒時使用;留空則嘗試向偵測到的本機網路卡廣播
啟用停用後保留設定,但不能從管理頁、傳送門或第三方平台觸發喚醒

按下 喚醒 只代表廣播已提交,不代表裝置一定成功開機。同一裝置的喚醒要求有短暫冷卻時間,連續點擊不會持續傳送封包。

如何判斷上線狀態

啟用的裝置大約每分鐘偵測一次。新增或編輯裝置後會立即觸發偵測;送出喚醒後還會在短暫等待後重新檢查兩次,因此狀態不會在按下按鈕的瞬間變成上線。

  • 上線:探測收到回應,而且回應位址與目標 MAC 一致;
  • 離線:探測流程完成,但沒有找到目標裝置;
  • 待偵測:尚未檢查,或探測逾時、Relay 無法使用、位址無法確認。

裝置 IP 因 DHCP 變更時,fn-knock 可以根據鄰居表更新觀察到的位址。不要把 待偵測 直接解讀為裝置一定關機;容器網路、ICMP 原則、跨 VLAN 路由與系統權限都可能讓探測結果不確定。

從閘道傳送門喚醒

開啟 WOL 後,系統設定 → 閘道 → 傳送門 會出現 顯示遠端喚醒快速入口,預設開啟。也可以從 遠端喚醒 頁面右上角的設定修改。已登入使用者點擊入口後會開啟內建 /__wol__ 頁面,只能看到已啟用裝置的名稱與簡化上線狀態,不會取得 MAC、裝置 IP、廣播位址、Relay 或內部錯誤詳情。

這個入口同時要求:

  1. WOL 功能已開啟;
  2. 傳送門允許顯示 WOL;
  3. 瀏覽器持有仍有效的登入工作階段;
  4. 登入憑據具有內建 WOL 頁面的服務範圍。

使用 全部範圍 的憑據會自動包含此入口;使用 自訂範圍 時,需要在 驗證設定 → 權限 中勾選 內建遠端喚醒頁面。隱藏傳送門快速入口不會刪除裝置,也不會影響管理員、Relay 或第三方平台觸發,但會禁止透過公開驗證 API 開啟與操作該內建頁面。

跨網路 Relay

當目標裝置與目前 fn-knock 不在同一廣播網域時,也在目標網路部署一台 fn-knock,並依下列順序配對:

  1. 在控制端進入 遠端喚醒 → 跨網段,選擇 新增遠端網路,填寫可連到目標網路 fn-knock 的 IP。預設 UDP 連接埠為 40009
  2. 儲存後立即複製以 FNW1. 開頭的一次性配對碼。
  3. 在目標網路的 fn-knock 開啟 遠端喚醒 → 跨網段接收,貼上配對碼並啟用。
  4. 回到控制端執行 測試連線,再新增目標裝置並將 喚醒路徑 指向這個 Relay。

兩台 fn-knock 之間必須存在可路由的 UDP 鏈路,可透過站點 VPN、受控連接埠轉送或其他可信網路實現。路由器與主機防火牆需放行 Relay 的 UDP 連接埠;Docker 還要明確發布 UDP 連接埠,並確保容器能向目標 LAN 傳送廣播。

配對碼包含預先共用金鑰,只應透過可信通道傳遞。Relay 要求與 ACK 會進行簽章、時間窗與重放檢查;允許的來源 CIDR 可進一步限制控制端位址,但不能取代 PSK。重新產生配對碼後舊金鑰會立即失效,目標端必須重新貼上新碼。兩端系統時鐘差距過大時,Relay 會拒絕要求。

進階設定中的監聽位址、廣播目標與來源 CIDR,只應在自動偵測不符合 VLAN、容器或多網路卡拓撲時修改。廣播目標至少保留一項,通常使用目標網段的定向廣播位址與 UDP 9 連接埠。

點燈科技與巴法雲

編輯裝置,在 第三方平台串接 中選擇一個提供者。每台裝置只能啟用一個平台,連線狀態會顯示為連線中、已連線、重新連線中、缺少憑據或異常。

點燈科技(Blinker)

在點燈 App 建立獨立網路裝置,將裝置金鑰填入 fn-knock。啟用 綁定 switch 元件 後:

  • on 會觸發喚醒;
  • off 只回覆目前上線狀態,不會遠端關機;
  • 狀態查詢會回傳 fn-knock 最近一次偵測到的上線狀態。

巴法雲(Bemfa)

填寫巴法雲私鑰與訂閱主題。主題只允許字母、數字和底線;需要被語音平台識別時,請依巴法雲約定使用以 001006 結尾的主題。

  • 收到 on 會觸發喚醒;
  • 收到 off 不會關機,只會向 {主題}/up 發布目前狀態;
  • 上線偵測狀態變更後,也會向上行主題同步 onoff

串接米家與小愛同學

完成點燈科技或巴法雲設定,並確認裝置已經連線後:

  1. 開啟米家 App,進入 我的 → 連接第三方平台
  2. 搜尋 巴法點燈,選擇與 fn-knock 目前裝置設定相同的平台,並依提示新增。
  3. 完成帳號授權並同步裝置,即可在米家 App 中觸發喚醒,或透過小愛同學使用「開啟」「開機」等指令喚醒裝置。

米家與小愛同學會透過所選平台傳送控制指令。「開啟」會對應為 on 並觸發 WOL;「關閉」不會遠端關閉目標裝置,只會依前述平台規則回傳或同步目前狀態。

兩種串接都需要 fn-knock 主動存取提供者的 HTTPS 與 MQTT TLS 服務。不要公開裝置金鑰、私鑰、主題或包含它們的螢幕截圖。平台命令會略過閘道傳送門頁面,因此只應把平台帳號與裝置授權交給可信使用者。

事件、備份與移轉

每次喚醒完成都會寫入 遠端喚醒完成 事件,記錄目標、投遞方式、來源(管理員、傳送門、點燈科技或巴法雲)、結果與延遲,可在事件中心建立通知規則。事件表示廣播流程的結果,不等於裝置已經啟動;應搭配後續上線狀態判斷。

裝置、Relay 與非敏感串接設定屬於應用程式設定。Relay PSK、點燈裝置金鑰與巴法雲私鑰儲存在目前安裝綁定的加密憑據目錄,不包含在 .knock 應用程式備份中。移轉或還原後,應重新配對 Relay、重新填寫第三方憑據,並驗證廣播位址、裝置 IP、UDP 連接埠與防火牆是否仍適用於新環境。

疑難排解順序

  1. 在目標裝置 BIOS/UEFI、網路卡驅動程式與作業系統中確認 WOL 已開啟,並先使用同一 LAN 的其他工具測試。
  2. 檢查 MAC 是否正確;裝置完全關機後確認網路連接埠仍亮燈。
  3. 本機直連時檢查定向廣播位址。Docker 優先確認網路模式、UDP 廣播可達性與主機防火牆。
  4. 跨網路時先測試 Relay;檢查 UDP 40009(或自訂連接埠)、路由、來源 CIDR、兩端時鐘與重新配對狀態。
  5. 廣播成功但裝置未啟動時,問題通常在目標裝置、交換器或廣播路徑,不要只重複點擊喚醒。
  6. 狀態一直待偵測時,確認裝置 IP、ICMP、鄰居表、跨 VLAN 路由或 Relay 狀態探測是否可用。
  7. 傳送門沒有入口時,檢查功能開關、顯示遠端喚醒快速入口 與憑據服務範圍。
  8. 第三方平台無回應時,查看連線狀態與最近錯誤,確認對外 HTTPS / MQTT TLS、憑據與主題,再重新儲存裝置。

QQ 群組:1081609274