实现:目标设备为Linux系统,实现从另一台Linux设备或者Windows设备上远程唤醒目标设备。
首先确保两台设备在同一个局域网下。
Linux
平台下,使用ether-wake
命令,让一台Linux
设备通过网络开机另一台Linux
设备。
使用前先在要启动的主机设备上键入ip a
查看网口信息,找到通过wake on LAN
启动的对应网口,在我的例子中对应的网口是enp2s0
,它的mac地址为cO:3f:d5:e1:3c:aa
.
然后使用ethtool
查看这个网口是否支持wake on LAN
,找到查询结果中的Wake-on
的字段,值为g
表示这个字段支持wake on LAN
,值为d
则表示不支持。执行ethtool -s [网口] wol g
可以开启网络开机功能,ethtool -s[网]wol d
表示关闭此功能。
Wake on LAN
的具体命令为ether-wake -i 发命令的网口名 MAC地址
。比如例子中,发送启动命令的设备使用的网口名为eth1
,从这个网口发送的报文将开启测试用的设备,指令为ether-wake -i ethl c0:3f:d5:e1:3c:aa
.注意这里的-i
后面跟的字段是发送消息设备上的网口,而不是要被启动的测试设备上的,MAC
地址为要被启动的测试设备接收消息的网口MAC
地址。
让一台Windows
设备远程启动一台Linux
设备的方式是,通过wolcmd
程序。
它的用法和下载连接在这里
在Windows上进入shell,转到wolcmd
软件所在的目录后,指令为wolcmd 对端MAC地址 对端ip地址 对端掩码 端口号(可不填)
在我的例子上的指令为wolcmd cO:3f:d5:e1:3c:aa 192.169.1.250 255.255.255.0