Linux远程开机
条件:1、计算机必需是在一个局域网内;2、知道远程开启的计算机的MAC地址;3、网卡支持网络唤醒功能(现在大部分网卡都是支持网络唤醒的功能)在被远程开机的计算机执行 ethtool 命令,查看该机器网卡是否支持网络唤醒功能。
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes:
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g [ 提示: g 表示已启动. d 表示禁用 ]
Current message level: 0×00000001 (1)
Link detected: yes
提示:以上命令,需要拥有root权限,否则会有以下错误: $ /sbin/ethtool eth0
Settings for eth0:
Cannot get device settings: Operation not permitted
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0×000000ff (255)
Cannot get link status: Operation not permitted
如果网络唤醒功能被禁用,则需要用下面的命令启动网络唤醒功能: # ethtool -s eth0 wol g
安装网络唤醒软件: # apt-get install wakeonlan
获取远程机器网卡的物理地址: # ifconfig
eth0
inet addr:192.168.6.56 Bcast:192.168.6.255 Mask:255.255.255.0
54com.cn
inet6 addr: fe80::216:17ff:fe6b:289/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3179855 errors:0 dropped:0 overruns:0 frame:0
TX packets:2170162 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3832534893 (3.5 GB) TX bytes:390304845 (372.2 MB)
Interrupt:17
通过以下命令,实现远程开机: # wakeonlan 00:16:k5:64:A9:68
详细
-
一,什么情况下需要远程开机?
如果我们的服务器没有部署在本地(实际上通常都是这样的,我们会把服务器托管到IDC机房),
而且服务器在机房中不止一台,其中一台被关闭时,则我们可以远程连接一台没有关机的服务器上,
然后进行远程开机.
二,远程开机需要的软件
它需要wakeonlan这个软件,
从何处得到它?
它的官方站是:http://sourceforge.net/projects/wake-on-lan/
如果使用rpm包可以从这里 下载:http://dag.wieers.com/rpm/packages/wol/
如果使用fedora,则可以用yum命令安装:
yum install wol
三,如何进行远程开机?
先不要急着去关闭你的linux服务器,你首先要确定它是否支持远程开机?
第一步:登录到目标服务器,用ethtool这个命令打印出网卡的信息
[root@localhost lhd]# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
可以看到,ethtool把网卡的信息全部列出,我们只关心其中的这两项:
Supports Wake-on: pumbg
Wake-on: d
如果wake-on 一项值为d,表示禁用wake on lan
值为g,表示启用wake on lan
因为此机器禁用了wake on lan,所以用下面的命令来启用它:
[root@localhost lhd]# ethtool -s eth0 wol g
再用ethtool命令进行查看,会发现:
Wake-on: g
OK,目标机器的网卡已经支持了远程开机,下面我们得到它的本地MAC地址:
[root@localhost lhd]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:03:0D:1D:1F:97
inet addr:192.168.6.101 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34470 errors:0 dropped:0 overruns:0 frame:0
TX packets:35377 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31559763 (30.0 MiB) TX bytes:5340032 (5.0 MiB)
Interrupt:5 Base address:0x2c00
把HWaddr 00:03:0D:1D:1F:97这一项记录下来即可
现在你可以试着把目标机器关闭
第二步:开机
现在我们需要登录到已安装了wakeonlan软件的机器上,在上面执行开机命令:
wol 00:03:0D:1D:1F:97
稍后就会发现,目标机器已开机可以登录了