计算机网络运维中,远程关闭和启动计算机是常见的任务。这可以通过开发专门的软件来实现,但实际上大多数系统都自身就原生地拥有这些功能,本文在分析原理的基础上,基于系统本身的功能详细说明了基于网络的远程开关机的步骤。
1 远程开机
1.1 原理
网络远程开机,也被称作Wake On Lan,其原理很简单,就是计算机处于关闭状态时,网卡仍然处于激活状态,可以接收来自网络的数据包,如果收到的数据包符合特定的格式,那么就启动机器。
这种数据包是具有特定格式的UDP数据报,被称为“魔术包”。UDP端口不限,但很多实现都使用2034这个端口号。报文的载荷部分共102个字节,每六个字节为一组,这样就分成了17个组。其中第1组为固定的0xFF 0xFF 0xFF 0xFF 0xFF 0xFF,第2-17组中的每个组都是远程机器网卡的MAC地址。
由于远程网卡虽然处于活动状态,但并没有网络协议栈的软件功能,所以也就不存在IP地址的概念,所以“魔术包”通常是UDP广播包,因为UDP广播包会使用对应的以太网广播包发送。
1.2 实践
由于“魔术包”具有非常简单的格式,所以编写远程开机的软件也就非常容易,网上也可以找到很多现成的软件,而且大多数是免费的。
需要注意的是,机器自身的主板和网卡必须支持远程开机才行,2006年以后的机器大多数都支持这个功能,只是为了安全起见默认可能并没有开启。这就需要在BIOS里启用这项功能。不同的BIOS系统,启用的方式也不相同,一般都处于电源和启动的配置项中。
2 远程关机
2.1 原理
远程关机的原理