首页 > 技术文章 > WakeOnLan_WOL_本地_远程_跨网段

osnosn 2021-07-01 15:15 原文

WakeOnLan_WOL_本地_远程_跨网段

转载注明来源: 本文链接 来自osnosn的博客,写于 2021-07-01.

参考

基本条件

  • 需要被唤醒的机器支持。即 BIOS 中要打开 WOL 的支持。
    如果 Win10 第二次(多次)关机后,无法唤醒的话,请更新网卡驱动,或者关闭系统的「快速启动功能」再次尝试。
    参考:【win10在开启快速启动时如何通过局域网唤醒】,【Win10远程唤醒/开机Wake On Lan设置
  • 发送的唤醒数据包,能成功到达目标机器的网卡。
  • 唤醒数据包(WOL Magic Packet),实际是一个包含特定数据的 UDP 包,目标port 7,9,2304 好像都可以。

用 openwrt 唤醒目标机器

  • openwrt 中有 etherwake 和 wol 两个ipk。 使用了 etherwake 包。wol 包体积较大,没安装,没测试。

同网段

  • etherwake 命令只能本地唤醒,因为没有提供参数指定目标 IP。
  • 在同一个局域网中,etherwake 01:02:03:04:05:06 能成功唤醒目标机器。

用 centos8 唤醒目标机器

  • centos8 中,只有 wol 一个包。
  • wol 有参数指定发送的目标 IP。
  • wol 是个ELF执行文件。

在同一个局域网中

  • wol 能成功唤醒目标机器(192.168.10.30/网段mask为: 255.255.255.0)。
    • 目标机器如果刚关机。交换机中还留存它的mac记录。
      wol -i 192.168.10.30 01:02:03:04:05:06 可以成功唤醒。
      wol -i 192.168.10.255 01:02:03:04:05:06 可以成功唤醒。
    • 目标机器如果关机很久了。交换机中没有它的mac记录。
      wol -i 192.168.10.30 01:02:03:04:05:06 唤醒失败。
      wol -i 192.168.10.255 01:02:03:04:05:06 可以成功唤醒。

跨网段

  • wol (从 192.168.12.xx)。
    • 目标机器如果刚关机。(<8分钟)
      wol -v -i 192.168.10.30 01:02:03:04:05:06 可以成功唤醒。
      wol -v -i 192.168.10.255 01:02:03:04:05:06 唤醒失败。
    • 目标机器如果关机很久了。
      wol -i 192.168.10.30 01:02:03:04:05:06 唤醒失败。
      wol -i 192.168.10.255 01:02:03:04:05:06 唤醒失败。

用 debian10 唤醒目标机器

  • 使用 win 的 Linux 子系统(WSL) 的 debian10 和 ubuntu20LTS 结果也一样。
    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 01:02:03:04:05:06 可以成功唤醒。
      wakeonlan -i 192.168.10.255 01:02:03:04:05:06 可以成功唤醒。
      etherwake 01:02:03:04:05:06 默认发往 192.168.10.255,可以成功唤醒。
    • 目标机器如果关机很久了。交换机中没有它的mac记录。
      wakeonlan -i 192.168.10.30 01:02:03:04:05:06 唤醒失败。
      wakeonlan -i 192.168.10.255 01:02:03:04:05:06 可以成功唤醒。
      etherwake 01:02:03:04:05:06 默认发往 192.168.10.255,可以成功唤醒。

跨网段

  • wakeonlan (从 192.168.12.xx)
    • 目标机器如果刚关机。交换机中还留存它的mac记录。(<10分钟)
      wakeonlan -i 192.168.10.30 01:02:03:04:05:06 可以成功唤醒。
      wakeonlan -i 192.168.10.255 01:02:03:04:05:06 唤醒失败。估计是网间路由过滤掉了广播地址。
    • 目标机器如果关机很久了。交换机中没有它的mac记录。
      wakeonlan -i 192.168.10.30 01:02:03:04:05:06 唤醒失败。
      wakeonlan -i 192.168.10.255 01:02:03:04:05:06 唤醒失败。

转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/14958638.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .


推荐阅读