Wol技术

Posted by wsxq2 on 2019-03-19
TAGS:  WoL

本文最后一次编辑时间:2019-09-11 22:19:22 +0800

本文的内容经历了大量实践,尤其是对影响最后成功与否的关键因素均做了精准测试,测试平台如下:

  • 台式机,其上装有 Windows 10 专业版,版本 1809。2019 年 3 月在淘宝上花 600 元买的。:joy:

故请放心食用。若需要详细且通俗易懂的有图教程,请移步 网络唤醒全攻略(Wake On LAN) - 知乎

概述

  Wake-on-LAN 简称 WOL 或 WoL ,中文多译为“网络唤醒”、“远程唤醒”技术。WOL是一种技术,同时也是该技术的规范标准,它的功效在于让已经进入休眠状态或关机状态的计算机,透过局域网(多半为以太网)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成引导状态。此外,与WOL相关的技术也包括远程下令关机、远程下令重启等相关的遥控机制。

  ——引用自 网络唤醒 - 维基百科,自由的百科全书

前提

被唤醒的电脑满足下列条件即可:

  • 主板支持。现在的主板基本都支持,所以基本不用担心。很旧的主板好像是 2000 年左右的,需要插网卡(PCI2.1标准),这时才需要 3 针 WOL 线连接主板
  • 关机时候为主板通电。被唤醒电脑的网卡需要有微弱的供电,以接收来自局域网内的唤醒数据包(魔术包)
  • 正常关机。非正常关机可能会导致唤醒失败,例如意外断电、休眠等
  • 连接到局域网

原理

概述

  计算机处在关机(或休眠)状态时,机内的网卡及主板部分仍保有微弱的供电,此微弱供电能让网卡保有最低的运作能力,使网卡能聆听来自计算机外部的网络广播信息,并对信息内容进行侦测与解读,一旦发现网络广播的内容中有特定的信息内容,此种特定内容称为“魔法数据包”(Magic Packet),就会对该数据包的内容进行反应(即执行开机操作)。

  魔法数据包是以广播方式发送的,广播的方式与范畴可以是整个局域网(LAN),也可以是特定的子网(Subnet),同时魔法数据包内会有某部(或一群)计算机的网络地址数据,网卡一旦发现解读出来的的地址是自身所处的计算机时,网卡就会通知机内的主板、电源供应器,开始进行引导(或唤醒)的程序。

  ——引用自 网络唤醒 - 维基百科,自由的百科全书——如何運用

魔法数据包包结构

wol-wireshark.png

重点概括如下:

  • 数据链路层(以太网):源地址为发送魔法数据包的设备的 MAC 地址(图中为7c:11:cb:83:86:79),目的地址为广播地址(ff:ff:ff:ff:ff:ff
  • 网络层(IP):源地址为发送魔法数据包的设备的 IP 地址(图中为192.168.2.100),目的地址为子网广播地址(192.168.2.255
  • 传输层(UDP):源端口为任意端口(图中为53166),目的端口为 9 号或 7 号端口
  • 应用层(WOL):由同步流(ffffffffffff)和被唤醒电脑的 MAC 地址(重复 16 次)组成

操作步骤

被唤醒电脑设置

固件(BIOS/UEFI)设置

市面上几乎所有固件(BIOS/UEFI)都支持 WoL ,但几乎所有的 WoL 默认都是关闭的,并且打开方式有所区别。新式电脑(2000年之后)常见设置位置如下:

  • Power Management->PME Event Wakeup->Enabled

老式电脑(使用 PCI 网卡而非板载网卡)常见设置位置如下:

  • Power Management->Wake-Up by PCI card->Enabled
  • Advanced->Power by PCIE/PCI->Enabled
  • Boot->Wake-On LAN->Enabled

注意查找如下关键字即可:Wake Up(唤醒)、NIC(网卡)、PCI(一种较老的总线标准,现在主要使用PCIe)、PME(电源管理事件)

Windows 设置

网卡驱动程序升级和设置
升级

采用如下方法之一即可:

  • 通过搜索引擎搜索关键字你的网卡型号 驱动程序 下载找到下载链接,例如我的网卡对应的搜索关键字为Realtek PCIe GBE Family Controller 驱动程序 下载
  • 在你的网卡驱动程序的官方网站(或者在你的电脑品牌官网)处查找并下载最新的驱动程序。
设置
  1. 打开设备管理器。Win10 使用快捷键Win+X,M即可
  2. 找到有线的网络适配器。我的是Realtek PCIe GBE Family Controller(无线的可能也行。我的是Intel(R) Dual Band Wireless-AC 3165
  3. 右键找到的适配器,点击属性(或者直接使用快捷键Alt+Enter
  4. 点击标签高级,在属性中找到Wake On Magic Packet(魔术封包唤醒),在处选择Enabled以启用。以同样的方式启用关机 网络唤醒
关闭安全启动

在Windows 8及更高版本,以及Windows Server 2012及更高版本中,不支持从混合关闭状态(S4)唤醒。因此需要关闭安全启动功能,以防止其进入混合关闭状态

  1. 打开电源选项。Win10 使用快捷键Win+X,O即可
  2. 在右侧点击其它电源设置
  3. 在左侧点击选择电源按钮的功能
  4. 点击更改当前不可用的设置
  5. 取消勾选启用快速启动(推荐)

用来唤醒的设备

任何可以发送 UDP 包的设备都能用来唤醒上述的电脑。包括但不限于手机、笔记本电脑、台式机。

可以自己写一个简单的网络应用程序来实现,也可以使用现有的软件,如 depicus,它支持 Web、Windows、MacOS、Iphone、Android 等多个平台

其它可能因素

防火墙

可能需要手动打开被唤醒电脑的 UDP 9 或 7 号端口。详细方法步骤请搜索windows10 手动 防火墙

网络适配器属性中的电源管理

有的被唤醒电脑可能需要在这里进行设置。已经验证的是允许计算机关闭此设备以节约电源(及其子内容)是不必勾选的。但有的电脑可能还有其它设置,请自行摸索

链接

下面总结了本文中使用的所有链接: