今天测试了下经过局域网远程开机(Wake On LAN,WOL)的功能,这篇文章就是今天测试结果的总结。网络
1、个人环境工具
个人实验环境拓扑图(图是用Visio+画图制做的):测试
共有三台实体机,实体机1-3,实体机1用于开机测试,实体机二、3分别为一个RedHat系统和一个Win7系统,实体机2中安装了VMware WorkStation,VM下的虚拟机,网络设置为“Custom: specific virtual network”,里面安装了两台虚拟机,一台Win7一台RedHat。ui
实体机的计算机:系统制造商为“LENOVO”,系统型号为“ThinkCnetre M8400T”,BIOS为“LENOVO BIOS Rev: 9SKT58A 0.0”,网卡为“Intel(R) 82579LM Gigabit Network Connection”。上面信息中,前三个能够在Windows的运行界面中输入“dxdiag”,进入“DirectX诊断工具”,在“系统信息“中能够看到,最后一个能够直接输入命令“ipconfig /all”查询到。spa
2、实体机1的配置.net
若是要实体机1能够被远程启动,须要先配置BIOS,实体机1是联想(LENOVO)的电脑,所以采用下面的步骤:orm
1)启动计算机,不停按F12进入“启动设备菜单”,该菜单中有四个选项:“SATA 1: ST1000DM003-1CH162”、“SATA 3: TSSTcorpDVD-ROM SH-116AB”、“Network 1: IBA GE Slot 00C8 v1381”、“Enter Setup”,选择“Enter Setup”,就能够进入“联想BIOS配置程序”了ip
2)进入“电源”菜单ci
3)把“加强的省电模式”设置为“关闭”。(若是该功能被打开,系统关机时会进入加强的省电模式。关机状态下,总功耗将会更低。当打开加强的省电模式,网卡唤醒功能将不可以使用。Intel(R) Manageability管理功能将不可以使用)get
4)进入“唤醒配置菜单”,里面有以下几项:“网卡唤醒”、“PCI调制解调器唤醒”、“串口Ring唤醒”、“时钟唤醒(包含用户自定义唤醒)”,将“网卡唤醒”,设置为“主要”
3、经过实体机3启动实体机1
网络上有许多开源软件能够用来进行WOL操做,我使用了WakeOnLAN软件进行Windows系统之间的WOL操做工具。
WakeOnLAN在OSC上的页面地址为:http://www.oschina.net/p/wakeonlan
WakeOnLAN是一个用VB.NET写的开源软件,该软件内的AquilaWOL.vb中,有一个名为WakeUp的Sub负责远程启动计算机:
1)点击“File”菜单下的“New Host”
2)填写“Name”(任意)、MAC地址(被启动主机的MAC地址)和FQDN/IP(被启动主机的IP)
在主机列表中找到新增的主机,右键弹出菜单,点击“Wake Up”,就能够启动计算机了。
我还找了一个Python脚本用于远程启动,这个脚本名为wake_on_lan.py
它也是个被OSC收录的开源项目,地址在:http://www.oschina.net/p/wake_on_lan
向地址255.255.255.255中MAC地址为FC-4D-D4-4A-09-CF发送开机命令,也能够启动实体机1
4、经过实体机2启动实体机1
由于实体机2是个Linux系统,因此我继续使用上面的wake_on_lan.py尝试开启实体机1,可是这时会遇到问题:RedHat会告知找不到255.255.255.255,这个时候就须要查询当前主机的广播地址。
输入ifconfig能够查到广播地址(Bcast):
将广播地址设定为“170.0.0.255”,就能够远程开机实体机1了,详见下图:
5、其余主机
1)虚拟机1和虚拟机2没法开启实体机1
2)在虚拟机1中安装的WakeOnLAN软件能够关闭实体机1,由于关机命令是经过WMI执行的,因此,要成功实现远程关机,须要开放网络服务访问实体机1的权限,这须要在实体机1上进行配置
3)虚拟机1和虚拟机2在开启时能够相互ping通,可是VMwareWorkstation中的各个虚拟机貌似没法相互使用WOL进行开机操做
END