环境说明: 两台局域网内的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 去唤醒目标机器前提条件就是:目标机器和我们登录的机器在同一局域网中
启动者(电脑A) ———–> 被远程开启的电脑(电脑B)
一、被远程开启的电脑(电脑B): 1. 重新开机,并进到BIOS设定 2. 把Wake On Land / Wake On PCI(E)设为Enable 3. 储存并进入Ubuntu画面 4. sudo apt-get install ethtool 5. sudo ethtool -s eth0 wol g (eth? ?依该电脑网卡编号而定,可用ifconfig确认) 6. nano /etc/rc.local 新增以下2行: sleep 5 ethtool -s eth0 wol g 7. nano /etc/init.d/halt NETDOWN = no 8. 查询电脑网卡号码(MAC) ifconfig HWaddr 之后显示的就是网卡号码
二、启动者(电脑A): 1. sudo apt-get install wakeonlan 2. wakeonlan 电脑B的网卡号码,例如: wakeonlan 00:11:22:33:44:55:66
