wake on lan定時開機部署
在Linux下通過Wake On LAN實現網路喚醒遠端開機
我們經常有這樣的場景或需求,人在外面,需要將家裡的機器或公司的機器開啟,進行遠端控制操作。
有幾種方式可以實現遠端開機,一是通過主機板的來電自啟動,通過智慧開關遠端開機。還有一種方式就是可以通過一臺已經啟動的機器通過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
[[email protected]]# ethtool eth0
看這兩行
Supports Wake-on: pumbg
Wake-on: d
若Wake-on為d,表示禁用Wake On LAN,需要啟用它。
[[email protected]]# ethtool -s eth0 wol g
如果已經是g就不用管了,說明目標機器的網絡卡已經支援Wake On LAN.
3. 檢視目標機器網絡卡的MAC地址
[[email protected]]# ifconfig
比如獲得的MAC地址為 00:01:0A:02:0B:03
4. 關閉目標機器,在主機執行wol命令
wol 00:17:a4:cd:c3:c8
這時,目標機器這時就會開啟了。可以通過ping命令驗證機器是否已經啟動了。
如果記不住mac地址可以寫個簡單的shell指令碼,直接執行這個指令碼就可以了。
#!/bin/bash wol 目標mac地址
注意:掉電重新來電後,通過wol遠端喚醒開機有可能不起作用。