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

  • 相关阅读:
    git基本操作及设置
    5-13 多页面打包配置
    笔记待整理
    单例模式在多线程下的多种实现模式
    面试题小练习1106
    求两个字符串的最大共有子串
    单例模式
    静态初始化一个二维数组并将二维数组排序并输出
    java中数组的基本知识
    关于break语句如何结束多重循环的嵌套
  • 原文地址:https://www.cnblogs.com/klb561/p/8679329.html
Copyright © 2020-2023  润新知