必须确保目标PC硬件支持并启用WoL、BIOS开启Wake on LAN、有线网卡待机供电,且Mac与PC同处一广播域;需提前在Windows中用ipconfig /all获取MAC地址(如00-1B-44-11-3A-B7),转为00:1b:44:11:3a:b7格式;Mac端通过brew install wakeonlan安装后执行wakeonlan 00:1b:44:11:3a:b7,或用Python一行命令发送标准魔术包至255.255.255.255:9。

要在Mac上用命令行向局域网广播魔术包(Magic Packet)唤醒一台已关机但支持Wake-on-LAN的Windows PC,必须确保目标PC硬件已启用WoL、BIOS设置正确、有线网卡处于待机供电状态,且Mac与PC位于同一广播域内——因为魔术包本质是UDP广播帧,跨子网或经由某些路由器转发时会失效。
确认目标PC的MAC地址
这一步必须在PC关机前完成。在Windows中打开终端(Win+R → 输入cmd → 回车),执行:
ipconfig /all
找到“以太网适配器 以太网”下的物理地址,形如 【00-1B-44-11-3A-B7】,去掉短横线,记为 001b44113ab7。这是后续构造魔术包唯一必需的标识,输错一个字符都无法唤醒。
在Mac上安装并调用wakeonlan命令
macOS原生不带wakeonlan工具,需通过Homebrew安装:
先确认已安装Homebrew(未装则访问brew.sh按指引安装);
然后在终端中运行:
brew install wakeonlan
安装完成后,直接发送魔术包:
wakeonlan 00:1b:44:11:3a:b7
注意MAC地址格式必须用冒号分隔,字母小写;若提示“command not found”,说明brew未加入PATH,请先运行 eval "$(/opt/homebrew/bin/brew shellenv)"(Apple Silicon)或 eval "$(/usr/local/bin/brew shellenv)"(Intel)再重试。
手动构造并发送魔术包(无依赖方案)
当无法安装第三方工具时,可用Python一行命令实现,前提是Mac已预装Python3(macOS 12.3+默认自带):
复制粘贴以下整行命令到终端并回车(将其中的MAC地址替换成你的真实地址):
python3 -c "import socket, sys; mac='001b44113ab7'; data = b'\xff' * 6 + bytes.fromhex(mac * 16); sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1); sock.sendto(data, ('255.255.255.255', 9)); print('Magic packet sent to', mac)"
该命令会向本地广播地址255.255.255.255:9发送标准格式魔术包;端口固定为9(亦可试7),不可改为其他值,否则目标网卡不会响应。
验证唤醒是否成功的关键检查点
第一步:确认PC关机后网线插口指示灯是否仍微亮(部分主板显示琥珀色常亮或慢闪),不亮说明网卡未获得+5VSB待机电压,BIOS中ErP Ready可能被启用,需禁用。
第二步:Mac与PC必须接在同一台交换机或路由器的LAN口下,不能一个连Wi-Fi、一个连有线,也不能跨VLAN;无线网络无法可靠传输魔术包,【务必使用有线连接到同一局域网】。
第三步:在PC关机前,进入设备管理器→网卡属性→电源管理→勾选“允许此设备唤醒计算机”并启用“只允许魔术包唤醒”;高级选项中开启“Wake on Magic Packet”和“Shutdown Wake On LAN”。

















