什么是WOL?

WOL 是 Wake-on-LAN 的缩写,中文通常译为 “局域网唤醒”,是一种通过网络信号远程唤醒处于关机、休眠或待机状态的计算机的技术。它允许用户在不物理操作目标设备的情况下,通过发送特定的网络数据包,让设备从低功耗状态启动。

WOL 的工作原理

  • 硬件支持:目标计算机需要具备支持 WOL 的网卡(有线网卡为主,部分无线网卡也支持)和主板,且需在 BIOS/UEFI 中开启 “Wake-on-LAN” 功能。

  • 待机状态:计算机关机或休眠时,网卡仍会保持低功耗运行,监听网络中特定的唤醒信号。

  • 唤醒数据包:用户通过另一台设备(如电脑、手机)发送一个特殊的 “魔术包”(Magic Packet)。该数据包包含目标计算机网卡的 MAC 地址(以连续 16 次重复的形式组成),无需知道 IP 地址。

    • 幻数据包(Magic Packet)
      幻数据包最简单的构成是6字节的255(FF FF FF FF FF FF FF),紧接着为目标计算机的48位MAC地址,重复16次,数据包共计102字节。有时数据包内还会紧接着4-6字节的密码信息。这个帧片段可以包含在任何协议中,最常见的是包含在 UDP 中 ,发送端口为 7 或 9.
FF FF FF FF FF FF FF MAC 地址 × 16 4-6字节的密码(可空)
  • 启动过程:网卡接收到匹配自身 MAC 地址的魔术包后,会向主板发送启动信号,触发计算机开机。

WOL 的应用场景

  • 远程管理:管理员无需到现场,即可唤醒办公室或机房的电脑进行维护、更新。
  • 家庭使用:在家中通过手机唤醒卧室的电脑,远程访问文件或控制媒体播放。
  • 服务器唤醒:针对非 24 小时运行的服务器,按需唤醒以节省能源。

使用 WOL 的前提条件

  • 目标设备的网卡和主板支持 WOL,并在 BIOS 及操作系统中开启相关设置(如 Windows 中需在网卡属性里勾选 “允许此设备唤醒计算机”)。
  • 目标设备需连接有线网络(无线 WOL 兼容性较差,且可能受路由器设置限制)。
  • 发送唤醒包的设备与目标设备需在同一局域网(部分路由器支持跨网段唤醒,需额外配置端口转发)。

工作环境

台式机电脑,安装了双系统,BIOS启动顺序为Linux Ubuntu24,然后是windows11.

Ubuntu24开启WOL

  1. 查看是否开启网络唤醒
sudo ethtool enp4s0 | grep Wake

结果为:

Supports Wake-on: pumbg
Wake-on: d
  1. 设置 Wake-on 为 g 即可开启
nano /etc/systemd/system/wol@.service
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target

[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable wol@enp4s0.service

通过WebAPI发送 WOL 唤醒包远程唤醒

WolGoWeb是一款远程唤醒WebAPI工具,主要用于搭建在局域网服务器或NAS中,实现WebAPI唤醒局域网内主机

https://github.com/xiaoxinpro/WolGoWeb

安装

docker-compose up -d
version: '3'
services:
  wol-go-web:
    image: chishin/wol-go-web:latest
    container_name: WolGoWeb
    restart: unless-stopped
    network_mode: host
    environment:
      - PORT=9090
      - KEY=false

测试

curl http://localhost:9090/wol?mac=xxx

配置内网穿透远程访问

具体参见上期博文:使用frp内网穿透:将本地服务暴露到公网

[[proxies]]
name = "wol"
type = "http"
localPort = 9090
localIP = "192.168.255.254"
subdomain = "wol"
transport.useEncryption = true
transport.useCompression = true

测试

curl http://wol.domain.top:9090/wol?mac=xxx

使用iOS快捷指令唤醒(Siri唤醒)

可以自己创建一个快捷指令访问唤醒的URL即可,也可以直接在iOS浏览器中打开下面的链接修改成你的服务器地址和需要唤醒的MAC地址。

新建快捷指令

搜索URL,添加打开URL
在这里插入图片描述

配置快捷指令

  • 重命名为打开我的电脑
  • 填入打开的URL
    在这里插入图片描述

使用快捷指令

创建完成快捷指令后可以在快捷指令主页用点击 打开我的电脑 ,或者语音唤醒Siri说出 打开我的电脑 即可完成电脑唤醒。

参考

https://blog.deskangel.com/2024/05/03/wol-on-ubuntu-24-04/

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐