这里主要是针对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 去唤醒目标机器前提条件就是:目标机器和我们登录的机器在同一局域网中

linux的远程唤醒的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. Linux usb子系统(一):子系统架构

    一.USB协议基础知识   前序:USB概念概述 USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB)  USB2.0版本速度480Mbps(高速USB). ...

  3. Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)

    补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转 ...

  4. Ubuntu远程登陆、SSH图形界面、WOL远程唤醒

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 实现目标:通过路由器配置路由路径,将拨号获取的公网IP地址指向局域网Ubuntu服务器.家里有 ...

  5. Linux转发性能评估与优化(转发瓶颈分析与解决方式)

    线速问题 非常多人对这个线速概念存在误解. 觉得所谓线速能力就是路由器/交换机就像一根网线一样. 而这,是不可能的.应该考虑到的一个概念就是延迟. 数据包进入路由器或者交换机,存在一个核心延迟操作,这 ...

  6. 网络远程唤醒 WOL Magic Packet

    Magic Packet Magic Packet白皮书介绍: The basic technical details of Magic Packet Technologyare simple and ...

  7. Linux驱动之USB鼠标驱动编写

    本篇博客分以下几部分讲解 1.介绍USB四大描述 2.介绍USB鼠标驱动程序功能及框架 3.介绍程序用到的结构体 4.介绍程序用到的函数 5.编写程序 6.测试程序 1.介绍USB四大描述符 USB设 ...

  8. Linux运行时I/O设备的电源管理框架【转】

    转自:https://www.cnblogs.com/coryxie/archive/2013/03/01/2951243.html 本文介绍Linux运行时I/O设备的电源管理框架.属于Linux内 ...

  9. Linux那些事儿之我是Hub(大结局)挂起自动化【转】

    转自:http://blog.csdn.net/fudan_abc/article/details/1805471 目睹了当今大学校园的素质流氓化,kiss公开化,消费白领化,上课梦游化,逃课普遍化, ...

随机推荐

  1. 解决winform窗体闪烁问题

    如果你在Form中绘图的话,不论是不是采用的双缓存,都会看到图片在更新的时候都会不断地闪烁,解决方法就是在这个窗体的构造函数中增加以下三行代码: 请在构造函数里面底下加上如下几行: SetStyle( ...

  2. java语法部分一些小问题

    由于本人是个初学者希望自己的文章不会误导广大"群众",如果有错误之处还望前辈指出.谢谢! 一.键盘录入. A:导包 格式: import java.util.Scanner; 位置 ...

  3. Ibatis动态(dynamic)查询

     Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息: Ibatis配置信息 <!-- Dynamic Sql --> <typeAlias a ...

  4. Android进阶(十七)AndroidAPP开发问题汇总(一)

    首先来看一下猎头公司对于Android方向人才招聘的需求: 猎头公司推荐------资深Java软件工程师(Android方向) 岗位职责: 1.熟悉Java语言,熟悉B/S开发的基本结构 2.能运用 ...

  5. ORALCE EBS ALERT 初体验

    Oracle EBS Alert Alert 是一种Oracle系统中的一种机制,它可以监视系统数据库,在规定的情况下给规定用户一个通知,通知可以是邮件或者其他形式,在标注的系统和客户化系统中都是可以 ...

  6. cocoa编程第4版 8.5 挑战1 解答

    看似简单,其实也很简单,但开始思路想错了:还上网查了一下,有网友说是将Array Controller的Keys中的personName改为personName.length,好像完全不起作用. 后来 ...

  7. STM32中GPIO的8种工作模式

    一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.形象点解释:推挽,就是有推有拉,任何 ...

  8. 你不能错过.net 并发解决方案

    BlockingCollection集合是一个拥有阻塞功能的集合,它就是完成了经典生产者消费者的算法功能.所以BlockingCollection 很适合构造流水线模式的并发方案 BlockingCo ...

  9. PM2 Quick Start

    PM2教程 @(Node)[负载均衡|进程管理器] [TOC] PM2简介 PM2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永 ...

  10. java中内存的使用

    一个java运行起来执行代码,主要的内存消耗有这几块: 1.堆 2.栈 :栈是每个线程一个的,是以消耗的内存是内存大小*线程数,当线程数特多时候需要小心 . 3.直接内存:主要是通道时候的缓存,在内存 ...