家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?
前言
其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔。
因为没有资格,也没有钱在一线城市买房 (); 但是在要结婚之前,婚房又是刚需。
我和太太最终一起在一线城市周边的某二线城市买了房。
再之后,一起装修,她负责非电相关,我负责电 网相关的装修。
家庭组网,家庭实验室就这么一步一步随着家庭的组建而组建了起来:
- 家庭有线无线组网
- 智能家居
- NAS
- 公网 IP 和 IPv6
- Wake Online (WOL)
- 家庭网络安全 (看了防火墙日志,才知道被攻击频率能有多高)
- 玩转树莓派
- 组建 Full Mesh VPN 网络
- 手机 PAD 远程控制电脑
- ...
有了所谓的"家庭实验室", 我的自身专业技能有了更多实验机会和试炼场,对新的技术了解不再浮于表面;
有了所谓的"家庭实验室", 即使两地奔波,也能通过手机看到我们,以及小孩经历的每一个点点滴滴,幸福萦绕心头。..
理工男难得这么矫情一下,此为前言。..
系列文章:
Wake-on-LAN(WOL) 简介
LAN 唤醒(WoL 或 WOL)是以太网或令牌环计算机网络标准,允许通过网络消息打开或唤醒计算机。
消息通常由在连接到同一局域网的设备上执行的程序发送到目标计算机。
以太网连接(包括家庭和工作网络、无线数据网络和 Internet 本身)都基于计算机之间发送的帧。 WoL 是使用一种特殊设计的称为魔术包的帧来实现的,魔术包被发送到网络中的所有计算机,其中包括要被唤醒的计算机。 魔术分组包含目的地计算机的 MAC 地址、内置在计算机中的每个网络接口卡(“NIC”)或其它以太网设备中的标识号,其使得它能够在网络上被唯一地识别和寻址。 具有 LAN 唤醒功能的已关机或关闭的计算机将包含能够在系统关机时以低功耗模式“侦听”传入数据包的网络设备。 如果接收到指向设备 MAC 地址的魔术包,网卡会向计算机的电源或主板发出信号,以启动系统唤醒,其方式与按下电源按钮的方式相同。
魔术分组在数据链路层(OSI 模型中的第 2 层)上被发送,并且当被发送时,使用网络广播地址被广播到给定网络上的所有附接的设备;不使用 IP 地址(OSI 模型中的第 3 层)。
由于 LAN 唤醒是基于广播技术构建的,因此通常只能在当前网络子网内使用。 不过,也有一些例外情况,LAN 唤醒实际上可以在任何网络上运维,只要配置和硬件适当,包括通过互联网进行远程唤醒。
为了使 LAN 唤醒工作,网络接口的某些部分需要保持打开状态。这会消耗少量的待机功率,比正常工作功率少得多。 链路速度通常被降低到不浪费功率的最低可能速度(例如,千兆以太网 NIC 仅维持** 10 Mbit/s 的链路**)。
网络唤醒 (WOL) 的前提条件
硬件: (几乎现在的所有电脑都满足)
- 电源:支持 ATX 2.01 标准
- 主板:支持 PCIE 2.2 标准
主板 BIOS:
- 启用 PCIE 设备唤醒(可能会有很多不同的名字,关键词:"wake" "wol" "PCIE" "Power On" 等)
电脑电源设置和状态:
- S3(一般是睡眠)
- S4(一般是休眠)
- S5(一般是关机)
配置得当后,主板在这些状态下,网卡会处于待机 (standby) 状态。可以随时被魔术包唤醒。
有线网卡配置(必须是有线网卡):
启用如下配置:
允许此设备唤醒计算机只允许幻数据包唤醒计算机
WOL 完整配置
BIOS 配置
这里以 MSI B450 迫击炮 主板为例,开机后按 DEL 键进入 BIOS 设置,BIOS 界面左上角有个 样式的搜索按钮,直接搜索关键词 "PCIE" 即可找到:"PCIE 设备唤醒" 选项,将其设置为 允许. 如下图:

Windows 电源选项设置
️注意:
适用于 windows 8.1 以上,win7 快速启动选项不是默认启用项。
进入 控制面板 -> 电源选项 -> 系统设置:
关闭 启用快速启动(推荐), 如下图:

另外提一句,休眠可以开启,休眠状态下是可以被唤醒的。
详细说明如下:
Reference:
快速启动是一种使用休眠文件来加快后续启动速度的关机类型。
当使用快速启动时,即使系统实际上已经属于 S4 状态,系统对用户来说也好像发生了完全关机(S5)。 系统此时不会响应设备唤醒。
备注:
从 Windows 8 开始,当请求系统关机时,快速启动是默认选项。
这也是为什么建议关闭 启用快速启动(推荐)
一般情况下,我们都是可以从休眠状态网络唤醒设备的,如果主板支持,甚至可以在 关机 (S5) 状态网络唤醒设备。
具体说明如下:
Reference:
WOL 在软关闭(S5)时不受 (windows) 正式支持。 但是,某些系统上的 BIOS 可能支持配置 NIC 以进行唤醒,即使该过程中不涉及 Windows。
这里以 MSI B450 迫击炮 主板为例,相关的设置如下:



启用了以上选项后, 我的电脑可以直接在关机(S5) 状态下被 WOL 唤醒. (供参考)
有线网卡配置
首先,最重要的, 一定要注意,先手动安装或更新对应操作系统版本的有线网卡驱动 (win10 就下载对应的 win10 网卡驱动,win11 就下载对应的 win11 网卡驱动), 确保已成功安装完整的官方驱动,而不是 window 自动安装的驱动. windows 自动安装的驱动可能无法实现 WOL 功能。
还是以我的 MSI B450 迫击炮为例,在 MSI 官网下载 PCIE 网卡驱动,驱动包如下图:

这里以 Realtek PCIe 系列为例,配置如下:
控制面板 -> 网络连接 -> 选择对应的有线网卡, 右键 -> 属性 -> 配置, 如下图:

进入有线网卡配置 后,选择高级, 开启与唤醒有关的所有功能,关闭与环保节能有关的所有功能,示例如下:






接下来,进入电源管理 标签页,勾选:
- 允许计算机关闭此设备以节约电源
- 允许此设备唤醒计算机
- 只允许幻数据包唤醒计算机

详细说明如下:
Q: 为什么勾选 只允许幻数据包唤醒计算机?
A: 如不勾选,可能会被时不时误唤醒
实战 WOL
以上主板 BIOS 系统电源选项 网卡配置 都设置好之后,就可以进行 WOL 了。
WOL 客户端前提
- 需要和被唤醒设备在同一局域网内
- 需要安装 WOL Client 相关软件(安卓,Linux, Windows 等版本都有)
- 需要知道被唤醒设备的 MAC 地址(能知道 IP 地址更好,且 IP 地址固定更更好)
步骤
Notes:
这里以 Linux 或类似(树莓派或路由器) 和 安卓为例。
Linux 端实战 WOL
安装 WOL Client: etherwake (这里也有好几种 WOL Client, 这里以这一款为例)
sudo apt install -y etherwake
安装后,在被唤醒设备处于休眠状态下,执行唤醒:
etherwake -i eth0 -p 192.168.2.32 2C:F0:xx:xx:xx:5E
说明:
-i eth0: 通过哪个 WOL Client 的网卡发送魔术包,可以通过ifconfig或ip address找到和被唤醒设备在同一局域网的网卡名称,如下图:

这里我的局域网是192.168.2.0/24, 所以选择:eth0或wlan0都可以-p 192.168.2.32: 被唤醒设备的 IP 地址2C:F0:xx:xx:xx:5E: 被唤醒设备的 MAC 地址
成功唤醒!
安卓端实战 WOL
这里推荐安装:WolOn 这款 WOL Client.
先输入被唤醒设备的相关信息,如下:

MAC 地址必填,其他非必填
保存后,点击这一条,会出现摇晃的过渡动画,然后就可以成功唤醒,如下图:


我的 WOL 用法
对于 Home Lab 来说,主要的用法都是这样的场景:
- 人在外地
- 家里高配台式机在休眠
- 希望通过互联网 WOL 家里的台式机
这里主要有 2 种思路:
- 将家里台式机的网络唤醒端口映射到互联网上
- 这样直接通过 WOL Client 访问互联网指定端口,WOL Client --互联网--> 互联网对应的 WOL 端口 ----> 相当于局域网网关去唤醒指定设备
- 但是有前提:有公网 IP
- 也有一定的劣势:暴露在公网,不太安全
- 家里放一台 Always On 的小设备(如:软路由,树莓派,NAS 等), 再将人带在外地的设备(如手机或 pad) 和家里的设备组建一个 Full Mesh VPN 内网(或者家里某一台可以内网穿透连接到也行)
- 通过 VPN 登录到 Always On 的小设备上
- 再通过该设备执行 WOL
- 这样会更加安全。
我用的就是第二种,理由如下:
- 此前曾开放到公网上,被 Hack 的频率太高了,吓到我了,我可不想成为肉鸡;
- 联系电信运营商要了个公网 IPv4, 用了一段时间,突然被悄悄滴收回去了
- IPv6 吧,在外地的环境不可能永远都有 IPv6 地址可以使用。
- 最后:安全,安全,还是安全!
总结
本文我们详细介绍了 WOL 的基本原理,以及使用场景。
并总结和 windows 电脑启用 WOL 需要配置的几个环节:
- 主板 BIOS
- Windows 系统电源选项
- 有线网卡配置
以及 WOL Client 的使用。
最后,也根据自己的使用情况,对 WOL 稍微做了延申,更贴近实际应用场景。
希望本文对大家有所帮助~
本文由博客一文多发平台 OpenWrite 发布!
家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?的更多相关文章
- Hadoop 系列文章(二) Hadoop配置部署启动HDFS及本地模式运行MapReduce
接着上一篇文章,继续我们 hadoop 的入门案例. 1. 修改 core-site.xml 文件 [bamboo@hadoop-senior hadoop-2.5.0]$ vim etc/hadoo ...
- Kettle系列文章二(安装配置Kettle+SqlServer+简单的输入输出作业)
一.下载 Kettle下载地址:https://community.hitachivantara.com/docs/DOC-1009855 下拉到DownLoad,点击红框中的链接进行下载.. 二.解 ...
- 一、VUE项目BaseCms系列文章:项目介绍与环境配置
一.项目效果图预览: 二.项目介绍 基于 elementui 写一个自己的管理后台.这个系列文章的目的就是记录自己搭建整个管理后台的过程,希望能帮助到那些入门 vue + elementui 开发的小 ...
- Redis 学习笔记系列文章之 Redis 的安装与配置 (一)
1. 介绍 Redis is an open source (BSD licensed), in-memory data structure store, used as database, cach ...
- 实战:ADFS3.0单点登录系列-ADFS3.0安装配置
本文为系列第三章,主要讲下ADFS3.0的安装和配置.本文和前面的文章是一个系列,因此有些地方是有前后关联,比如本文中使用的通配符证书就是第二篇讲解的,因此需要连贯的进行阅读. 全文目录如下: 实战: ...
- 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)
随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...
- 《SeleniumBasic 3.141.0.0 - 在VBA中操作浏览器》系列文章之一:SeleniumBasic的下载
Selenium是一种非常流行的浏览器和网页自动化技术,开发人员可以使用C#.Java.Python等语言来操作Chrome.Firefox等浏览器. VBA语言可以直接操作访问Microsoft I ...
- 【Mycat】作为Mycat核心开发者,怎能不来一波Mycat系列文章?
写在前面 Mycat是基于阿里开源的Cobar产品而研发,Cobar的稳定性.可靠性.优秀的架构和性能以及众多成熟的使用案例使得Mycat一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远. ...
- C#开发的插件程序 - 开源研究系列文章
上次编写了一个家庭小助手的小工具软件,也对其中的线程池及管理器进行了介绍(见博文:C#开发的线程池和管理器 - 开源研究系列文章),这次把里面的插件部分的功能单独放出来进行介绍,让更多的朋友能够进行学 ...
- Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo
️Reference: https://github.com/grafana/intro-to-mlt 这是关于 Grafana 中可观察性的三个支柱的一系列演讲的配套资源库. 它以一个自我封闭的 D ...
随机推荐
- 【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面
问题描述 在APIM中配置JWT策略,验证JWT,如果认证失败,则跳转到 Azure Entra ID 的 Login 页面. 问题解答 要实现JWT验证失败后,跳转到 Azure Entra ID ...
- 非正式全面解析 NebulaGraph 中 Session 管理
NebulaGraph 论坛最近有些讨论帖,各种姿势来问 NebulaGraph Session 管理相关的事情,我寻思这也不是一个法子,还是来写一篇文章来讲述下 NebulaGraph 中的 Ses ...
- mysql-查询库中所有表名称或者某一张表的所有字段名称
-- 查询某一库中所有表的名称, SELECT a.TABLE_SCHEMA ,a.TABLE_NAME ,a.TABLE_COMMENT FROM information_schema.TABLES ...
- 【对比】Gemini:听说GPT-4你小子挺厉害
前言 缘由 谷歌连放大招:Gemini Pro支持中文,Bard学会画画 事情起因: 一心只读圣贤书的狗哥,不经意间被新闻吸引.[谷歌最新人工智能模型Gemini Pro已在欧洲上市 将与ChatGP ...
- Redis之数据持久化小结
一.概述 Redis作为内存型的数据库,虽然很快,依然有着很大的隐患,一旦服务器宕机重启,内存中数据还会存在吗? 很容易想到的一个方案是从后台数据恢复这些数据,如果数据量很小,这倒是一个可行的方案.但 ...
- IDEA/Android Studio的gradle控制台输出中文乱码问题解决
原文地址: IDEA/Android Studio的gradle控制台输出中文乱码问题解决 - Stars-One的杂货小窝 在项目中,有使用到Gradle自定义脚本,会有些输出日志,但是输出中文就变 ...
- [置顶]
drools规则引擎因为内存泄露导致的内存溢出
进入这个问题之前,先了解一下drools: 在很多行业应用中比如银行.保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中. 主要存在的问 ...
- 阿里云centos Linux系统挂载数据盘操作流程
这里假设的是已经在阿里云管理后台购买完了新增的硬盘.我们只讲在Linux系统里操作挂载硬盘过程. 一. 环境: 操作系统: Centos 7 二.查看云服务下所有硬盘 使用root账号登录服务器,执行 ...
- 使用TS封装操作MongoDB数据库的工具方法
使用TS封装操作MongoDB数据库的工具方法 前言 在做毕业设计过程中采用了MongoDb存储应用的日志信息,总结了一些CRUD方法与大家分享一下,最终使用效果可跳转到业务调用示例这一小节查看 关于 ...
- 如何让AR物体更真实?
在增强现实中,除了虚拟物体本身的模型材质等因素,影响物体真实性的主要是光照.反射.阴影.接下来3DCAT实时渲染云平台将带您从这三个方面探索如何让AR物体更真实! AR光估测 要让一个虚拟物体很好的融 ...