1. 程式人生 > 其它 >Wake_On_Lan_WOL_本地_遠端_跨網段

Wake_On_Lan_WOL_本地_遠端_跨網段

Wake_On_Lan_WOL_本地_遠端_跨網段

轉載註明來源: 本文連結 來自osnosn的部落格,寫於 2021-07-01.

參考

基本條件

  • 需要被喚醒的機器支援。即 BIOS 中要開啟 WOL 的支援。
  • 傳送的喚醒資料包,能成功到達目標機器的網絡卡。
  • 喚醒資料包(WOL Magic Packet),實際是一個包含特定資料的 UDP 包,目標port 7,9,2304 好像都可以。

用 openwrt 喚醒目標

  • openwrt 中有 etherwake 和 wol 兩個ipk。 使用了 etherwake 包。wol 包體積較大,沒測試。
  • etherwake 命令只能本地喚醒,因為沒有提供引數指定目標 IP。
  • 在同一個區域網中,etherwake 能成功喚醒目標機器。

用 centos8 喚醒目標

  • centos8 中,只有 wol 一個包。
  • wol 有引數指定傳送的目標 IP。
  • wol 是個ELF執行檔案。
  • 在同一個區域網中,wol 能成功喚醒目標機器(192.168.10.30/網段的mask 255.255.255.0)。
    • 目標機器如果剛關機。交換機中還留存它的mac記錄。
      wol -i 192.168.10.30 可以喚醒。
      wol -i 192.168.10.255 也可以喚醒。
    • 目標機器如果關機很久了。交換機中沒有它的mac記錄。
      wol -i 192.168.10.30
      不能喚醒。
      wol -i 192.168.10.255 可以喚醒。
  • 跨網段,喚醒失敗。估計是網間路由過濾掉了廣播地址。

用 debian10 喚醒目標

  • 使用 win 的 Linux 子系統(WSL) 的 debian10,結果也一樣。
    WSL中,wakeonlan 命令使用正常,無需root許可權。
    WSL中,etherwake 命令無法使用,說是不支援Address family not supported by protocol
  • debian10 中,有 etherwak 和 wakeonlan 兩個包。
  • etherwake 是ELF執行檔案。 wakeonlan 是perl指令碼檔案。
  • ehterwake 沒有引數指定目標 IP。wakeonlan 有引數指定傳送的目標 IP。
  • 在同一個區域網中,etherwake 和 wakeonlan 都能成功喚醒目標機器(192.168.10.30/網段的mask 255.255.255.0)。
    • 目標機器如果剛關機。交換機中還留存它的mac記錄。
      wakeonlan -i 192.168.10.30 可以喚醒。
      wakeonlan -i 192.168.10.255 也可以喚醒。
      etherwake 預設發往 192.168.10.255,可以喚醒。
    • 目標機器如果關機很久了。交換機中沒有它的mac記錄。
      wakeonlan -i 192.168.10.30 不能喚醒。
      wakeonlan -i 192.168.10.255 可以喚醒。
      etherwake 預設發往 192.168.10.255,可以喚醒。
  • wakeonlan 跨網段,喚醒失敗。估計是網間路由過濾掉了廣播地址。

轉載註明來源: 本文連結 https://www.cnblogs.com/osnosn/p/14958638.html
來自 osnosn的部落格 https://www.cnblogs.com/osnosn/ .