Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1105263
  • 博文数量: 264
  • 博客积分: 7225
  • 博客等级: 少将
  • 技术积分: 5096
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 08:53
文章分类

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类: LINUX

2009-07-05 00:03:04

Linux操作系统下实现远程开机
实现远程开机的条件,要满足以下两条:首先,这个被远程开机的机器必需是在局域网内,并且你知道这台机器的MAC地址;其次,你的网卡支持网络唤醒功能,当然,现在大部分网卡都是支持网络唤醒的功能。检查你的网卡是
  实现远程开机的条件,要满足以下两条:首先,这个被远程开机的机器必需是在局域网内,并且你知道这台机器的MAC地址;其次,你的网卡支持网络唤醒功能,当然,现在大部分网卡都是支持网络唤醒的功能。检查你的网卡是否支持网络唤醒功能,只要在被远程开机的机器上执行 ethtool 命令,查看该机器网卡是否支持网络唤醒功能。
  # 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: 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
  网管网bitsCN_com
  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     Link encap:Ethernet  HWaddr 00:16:k5:64:A9:68 [ Mac地址 ]
  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
  网管网bitsCN_com 
    
                                                linux远程开机
一,什么情况下需要远程开机?
   如果我们的服务器没有部署在本地(实际上通常都是这样的,我们会把服务器托管到IDC机房),
  而且服务器在机房中不止一台,其中一台被关闭时,则我们可以远程连接一台没有关机的服务器上,
  然后进行远程开机.
  
二,远程开机需要的软件
    它需要wakeonlan这个软件,
    从何处得到它?
    它的官方站是:
    如果使用rpm包可以从这里下载:
    如果使用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这一项记录下来即可
    现在你可以试着把目标机器关闭
  第二步:开机
     现在我们需要登录到已安装了wake on lan软件的机器上,在上面执行开机命令:
      
     wol 00:03:0D:1D:1F:97
     稍后就会发现,目标机器已开机可以登录了
     
     
     
四,多学一点:
    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
                  
      如果有兴趣,大家可以通过 man ethtool查看
      
    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 去唤醒目标机器
        前提条件就是:目标机器和我们登录的机器在同一局域网中
     5,还有一点:被远程开机的目标机器必须是插电的,没插电源的机器也能开机只有电影中才会出现
        
     WINDOWS 下命令格式

     wol.exe  8656DF2196W9
阅读(972) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~