1.网卡能否实现远程唤醒,其中最主要的一个部件就是支持WOL的网卡。远端被唤醒计算机的网卡必须支持WOL,而用于唤醒其他计算机的网卡则不必支持WOL。另外,当一台计算机中安装有多块网卡时,只将其中的一块设置为可远程唤醒。
2.主板 主板也必需支持远程唤醒,可通过查看CMOS的"Power Management Setup"菜单中是否拥有"Wake on
LAN"项而确认。另外,支持远程唤醒的主板上通常都拥有一个专门的3芯插座,以给网卡供电(PCI2.1标准)。由于现在的主板通常支持PCI
2.2标准,可以直接通过PCI插槽向网卡提供+3.3V
Standby电源,即使不连接WOL电源线也一样能够实现远程唤醒,因此,可能不再提供3芯插座。主板是否支持PCI2.2标准,可通过查看CMOS的"Power
Management Setup"菜单中是否拥有"Wake on PCI Card"项来确认。
3.电源 若欲实现远程唤醒,计算机安装的必须是符合ATX 2.01标准的ATX电源,+5V
Standby电流至少应在600mA以上。
远程唤醒的实现,主要是向目标主机发送特殊格式的数据包,是AMD公司制作的Magic Packet这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。Magic Packet格式虽然只是AMD公司开发推广的技术,并非世界公认的标准,但是仍然受到很多网卡制造商的支持,因此许多具有网络唤醒功能的网卡都能与之兼容。
1.硬件连接
2.CMOS设置
ATX电源
软件的实现方面,其实就是通过socket向目标的机器发送Magic Packet(魔术包),魔术包的格式,包含有连续6个字节的“FF”和连续重复16次的MAC地址。你可以在任何协议的数据包(如在TCP/IP、IPX包)中填上 "FFFFFFFFFFFF"+连续重复16次的MAC地址,就可利用该协议作出一个使用该协议的Magic Packet。只要NIC检测到数据包中任何地方有这样的片段,便会将计算机唤醒。
假设被控计算机的Mac地址为01:02:03:04:05:06
(6 bytes),那么那台机器的网卡在数据帧内发现以下的片断便会将计算机唤醒。
注:UDP广播分两种,一种是directed broadcast,比如你的网段是192.168.0.X,你就往192.168.0.255发就可以了。另一种是limited broadcast,广播地址是255.255.255.255
局域网远程唤醒
现在假设A、B两机位于同一个局域网中,要用主控计算机A机远程唤醒被控计算机B。
那你只要在B机的CMOS设置(有人喜欢叫BIOS设置)中设置好两个地方:
1.开启“Wake on PCI
Card”功能,没有这项的设置的话,那可能就要插远程唤醒电缆了;
这步的目的是“在关机时为网卡供电”
2.开启“Wake Up On LAN”或“Resume by
LAN”功能;
在A机你要下载局域网唤醒的小软件,下面我推荐两款给大家用吧。
PCnet Magic Packet Utility——AMD的产品,英文介面,需要安装才可以使用,功能比较强大
NetWaker for windows 简体中文版
运行magpac.exe,在“Magic Packets”菜单中单击“Power On One Host”(启动某一主机)命令,显示“Send a Magic Packet to One Host”(向主机发送唤醒数据包)对话框(如图所示)。在“Destination Ethernet Address”(目标以太网地址)中输入B机的网卡MAC地址,单击“Send”(发送)按钮。B机将自动启动。
当然,Magic
Packet还可以远程唤醒局域网内多台计算机,留给你自己去摸索吧。
1、广域网中实现远程唤醒的话,其实也不比局域网远程唤醒难多少。被控计算机端只要增加一个能获取公网IP地址、能设置端口映射的设备(如路由器、防火墙)。
现在主流的宽带上网方式不外乎ADSL跟Cable(即视讯宽频、有线电视网络)两种,都可以使用宽带路由实现共享上网,下面简单讲下这两种上网方式下路由器怎样设置才能获取到公网IP地址。
ADSL分两种,一种是固定IP的ADSL,在路由器中选择固定IP地址上网方式,填上电信分配给你的公网IP地址即可;另外一种是动态IP的ADSL,在路由器中设置PPPoE拨号,填上你的用户名、密码,拨号成功后路由器就会自动获取一个公网IP地址;
Cable的话,只要在路由器设置“自动获取IP”上网方式,路由器就会自动获取一个公网IP地址;
正确设置好路由器之后,在路由器的连接状态那里可以直接查看其公网IP地址。
2、在路由器中设置允许“Subnet Directed Broadcasts(子网定向广播)”,并且设置端口映射,将路由器的某一端口映射到被控计算机的任意端口
3、只要路由器通电,主控计算机就能通过互联网向路由器发送Magic Packet,而路由器与被控计算机之间是通过网线连通的,所以可以很顺利地将Magic Packet发送到被控计算机的网卡。路由器实际上起到中间桥梁的作用。
Netmask是一个比较值得注意的地方,填错了的话,目标IP地址就会出错。
下面我通过一个例子简单讲述一下广域网远程唤醒的过程
假设主控计算机为A机,被控计算机为B机
B机的所在局域网环境如下:一条ADSL接在4口路由器R1上,R1的4 个口分别连接着S1,S2,S3,S4四台交换机。B机接在S3交换机的其中一个口。
R1拨号后自动获取到的IP为12.34.56.78,B机在局域网中的IP为192.168.1.167,MAC地址为BB:BB:BB:BB:BB:BB。
在R1设置端口映射条目如下:12.34.56.78:9——>192.168.1.255:168
这里192.168.1.255为192.168.1.167所在网络的定向广播地址。
为什么不直接映射到192.168.1.167呢?因为当B机关机后,192.168.1.167这个IP不再与R1通信,R1中关于192.168.1.167的ARP条目也会很快就消失,所有与192.168.1.167这个IP通信的数据包都会被丢弃。
1.A机向12.34.56.78(255.255.255.251)这个目标IP的9号端口发送一个包含FFFFFFFFFFFF和连续重复16次BBBBBBBBBBBB的Magic Packet的单播包,中间经过了N个路由,该单播包顺利进入R1;
2.当R1检测到该数据包端口号为9,根据端口映射条目将该数据包的目标IP及端口号修改为192.168.1.255:168,此时该包被R1识别成定向广播包,因为R1已设置成允许Subnet Directed Broadcasts,所以该包并没有被丢弃;
3.R1将这个广播包向4个口广播,S1,S2,S3,S4所连的所有端口都收到这个广播包,即便B机处于关机状态也会收到该广播包;
B机的网卡检测到广播包中含自己MAC地址信息的Magic Packet,就会被唤醒,而其它机收到之后只会将该数据包丢弃。
4.实际应用中不建议主控计算机通过IP地址去跟路由器通讯,因为一旦路由器重新获取IP地址,远程唤醒就会失效。只要路由器支持动态域名解析(DDNS)功能,可将路由设置成IP地址变更时自动向DDNS提供商重新注册IP地址,DDNS提供商将根据你的帐号对你申请的域名进行域名解析。设置成功后就可以通过固定的域名去与路由器通讯,唤醒与该路由器直连的计算机。
然后WOM有个弊端,所有电话打进来都会马上唤醒,而这通电话很可能不是你打进的。计算机开着自然就要耗电的啦,当然你可以设置计算机在空闲一段时间后自动关机,这样可以省下不少电费。但是如果整天有电话打进的话,估计被控计算机也命不久已。
已投稿到: |
|
---|