在Linux下通过Wake On LAN实现网络唤醒远程开机

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fullbug/article/details/53197132
我们经常有这样的场景或需求,人在外面,需要将家里的机器或公司的机器开启,进行远程控制操作。
有几种方式可以实现远程开机,一是通过主板的来电自启动,通过智能开关远程开机。还有一种方式就是可以 通过一台已经启动的机器通过 Wake On LAN 去开启唤醒另外一台机器。
现在介绍通过一台已经启动的 linux 机器通过 Wake On LAN 去唤醒开期另外一台机器。
前置条件:
操作机器与目标机器在同一局域网内
目标机器电源和网线已插好
目标机器网卡和主板均支持远程唤醒并在BIOS里已经设置了网络唤醒(WOL)开机。
目前一般的机器网卡和主板都支持远程唤醒开机,需要在BIOS里设置将网络唤醒开机开启。
开机时进入 BIOS ,查看 CMOS 中的 “Power Management Setup” ,通常里面会有 Power On by Onborad Lan ,将其设置为 “Enable”
如下图,在电源管理中开启Power On by Onborad Lan。不同的主板BIOS设置不太一样。具体根据自己机器实际情况进行设置。

如何在 Linux 下通过 Wake On LAN 远程唤醒,具体操作步骤如下:
1.在本机安装Wake On LAN。可从官方网站下载。
CentOS 可以用 yum 命令安装 :
yum install wol
也可以下载wol的rpm包通过rpm安装。点击这里下载
 
2. 登录需要远程唤醒开机的目标机器,运行 ethtool 命令查看网卡是否支持 Wake On Lan
[root@localhost]# ethtool eth0
看这两行
Supports Wake-on: pumbg
Wake-on: d
Wake-on d ,表示禁用 Wake On LAN ,需要启用它。

[root@localhost]# ethtool -s eth0 wol g
如果已经是g就说明目标机器的网卡已经支持Wake On LAN。
3. 查看目标机器网卡的 MAC 地址
[root@localhost]# ifconfig

比如获得的MAC地址为00:17:a4:ad:c3:a8
4. 关闭目标机器,在主机运行 wol 命令
wol 00:17:a4:ad:c3:a8
这时,目标机器这时就会开启了。可以通过 ping 命令验证机器是否已经启动了。
如果记不住 mac 地址可以写个简单的 shell 脚本,直接执行这个脚本就可以了。
#!/bin/bash
wol 目标mac地址
 
注意:掉电重新来电后,通过wol远程唤醒开机有可能不起作用。

猜你喜欢

转载自blog.csdn.net/fullbug/article/details/53197132