linux的遠程喚醒


這里主要是針對ubuntu系統的說明

1.檢查計算機硬件是否支持WOL(wake on lan)功能。 
1.1.檢查主板和電源是否支持WOL: 
進入BIOS的Power Management Setup,設置PME Event Wake Up(這其實是一種Wake On PCI Card模式)為 Enabled。注意,有些機器可能為Wake On Lan或Wake On PCI Card。Wake On Lan模式可以在完全關機狀態下喚醒,而Wake On PCI Card模式要在深度休眠狀態下喚醒。造成這樣的區別主要是因為主板的設計不一樣,現在的計算機一般都是Wake On PCI Card模式的。

1.2.檢查網卡是否支持WOL。 
安裝ethtool,並執行以下命令:

sudo apt-get install ethtool 
sudo ethtool eth0 |grep Wake-on

如果顯示結果為下面這樣,就表示網卡支持WOL:

Supports Wake-on:pumbg 
Wake-on : g

2.遠程控制計算機進入深度休眠或完全關機狀態

這里主要應用了SSH連接遠程計算機,並提交命令請求來達到目的。 
2.1.使用ubuntu終端登陸遠程計算機

關於這一步可以參考ubuntu終端連接遠程計算機 
2.2.登陸遠程計算機后,使用如下命令實現深度休眠或關機

深度休眠 
sudo pm-hibernate

關機 
sudo shutdown 0

3.喚醒遠程計算機 
3.1.准備工作 
知道遠程計算機的ip地址或域名和MAC地址,在路由上綁定局域網ip地址和MAC地址。如果沒有靜態ip,可以使用花生殼。詳細操作可以google,在這里就不詳述了。 
在本地計算機上安裝遠程喚醒工具wakeonlan:

sudo apt-get install wakeonlan

3.2.喚醒遠程計算機

執行下面的命令就可以喚醒遠程的計算機了:

#host_address為遠程計算機的域名或ip地址,mac_address為遠程計算機的mac地址,mac地址是’:’間隔的形式 
wakeonlan -i host_address mac_address

centos的情況

環境說明: 
兩台局域網內的linux主機,本環境的系統為centos 5.3 X86_64 
控制主機 為:192.168.10.149 
被控制主機為:192.168.10.150

一,在控制主機上安裝遠程開機需要的 軟件 
[root@tomcat2 ~]#yum -y install wol 
或者安裝rpm包 
[root@tomcat2 ~]#rpm -ivh wol-0.7.1-2.1.el3.dag.x86_64.rpm

二,開啟被控制主機的遠程網卡喚醒功能 
第一步:登錄到被控制服務器192.168.10.150,用ethtool這個命令打印出網卡的信息 
[root@tomcat1 ~]# ethtool eth0 
clip_image002 可以看到,ethtool把網卡的信息全部列出,我們只關心其中的這兩項: 
clip_image004 
如果 wake-on 一項值為 d,表示禁用wake on lan 
值為 g,表示啟用 wake on lan

第二步:用下面的命令來啟用wake on lan 
[root@tomcat1 ~]# ethtool -s eth0 wol g

第三步:確認是否開啟了wake on lan功能 
[root@tomcat1 ~]# ethtool eth0 
clip_image006 
clip_image008 
OK,目標機器的網卡已經支持了遠程開機了

三. 獲取被控制主機的MAC地址 
[root@tomcat1 ~]#ifconfig eth0 
clip_image010 把clip_image012這一項記錄下來即可

四.關閉被控制主機 192.168.10.150的系統,然后再控制主機192.168.10.149上遠程開機 
[root@tomcat2 ~]#wol 00:0C:29:5D:06:24 
稍后就會發現,192.168.10.150已經啟動了 
備注: 
1,ethtool的 -s 參數是修改指定以太網設備的設置 
2,wol的取值默認是d,含義是disable 
修 改后的值為g,含義是Wake on MagicPacket(tm) 
它還有幾個取值,分別是: 
p Wake on phy activity 
u Wake on unicast messages 
m Wake on multicast messages 
b Wake on broadcast messages 
a Wake on ARP

3,當機器重啟后,eth0的設置又會回復到Wake-on: d 狀態, 
這個問題怎么解決? 
兩個辦法:第一個,也是我們的慣性思維; 
把/sbin/ethtool -s eth0 wol g 這條命令附加到/etc/rc.local這個文件中, 
則下次開機后會自動執行

第二個: 編輯/etc/sysconfig/network-scripts/ifcfg-eth0 
(eth0網卡的配置文件),添加上一行: 
ETHTOOL_OPTS=”wol g”

4,網絡喚醒的局限性: 
它只能在局域網中應用,而不能通過互聯 網運行,為什么? 
因為機器關閉后,完全是靠網卡喚醒機器,此時的機器是關閉的,沒有操作系統運行也就談不上支持tcp/ip協議,當然 也就不能通過互聯網運行了.也就是說:如果我們在某個局域網中只有一台機器,就不能使用此功能了.我們必須能登錄到局域網中的一台機器上,在此機器上運行 wake on lan 去喚醒目標機器前提條件就是:目標機器和我們登錄的機器在同一局域網中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM