我是靠谱客的博主 无聊未来,最近开发中收集的这篇文章主要介绍基于网络远程开关机的原理与实践1 远程开机2 远程关机,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

计算机网络运维中,远程关闭和启动计算机是常见的任务。这可以通过开发专门的软件来实现,但实际上大多数系统都自身就原生地拥有这些功能,本文在分析原理的基础上,基于系统本身的功能详细说明了基于网络的远程开关机的步骤。

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 原理

远程关机的原理也非常简单,系统本身都具有关机功能,远程关机只不过是用户通过网络登录系统然后执行关机命令而已。

2.2 实践

不同的系统具有不同的关机命令。常用的系统可以分为两类,一类是微软的Windows系列,另一类就是庞大的类Unix系统,包括但不限于Unix,Linux,MacOS。下面分别对其进行说明。

2.1 Windows系统

Windows系统支持通过net use 命令来远程登录系统,登陆后也就可以执行关机命令了。我们这里介绍的是不需要登录直接执行关机命令的方法。

 

Windows系统提供了远程关机的命令shutdown。具体格式如下:

Shutdown  –s  –m  \目标机器IP  -t  提示秒数

这个命令的功能是,使用Guest账户登录目标机器,执行关机命令,在目标机器弹出关机提示窗口,“提示秒数”变为0时关闭机器。

经过测试,在大多数系统上执行上述命令都不会成功,很多情况下报错:拒绝访问(5)。原因就是Guest账户问题。经过反复测试,采用如下三个步骤后大多数系统都可以正常远程关机了。(注:该步骤在WindowsXPSP3和Windows8系统上测试通过,这里步骤以XP说明)

 

(1)启用Guest账户

远程关机使用的是Guest账户,所以首先需要启用这个账户。启用步骤如下:

右键单击“我的电脑”,选择“管理”,进入“计算机管理”控制台。



确保“账户已停用”处于不选状态。

 

(2)允许Guest用户从网络访问这台计算机

这需要把Guest用户从“拒绝从网络访问这台计算机”的组中删除。详细步骤截图如下:




 

(3)允许Guest账户从远端系统强制关机

这需要把Guest用户加入“从远端系统强制关机”的组中。步骤截图如下:



2.2 Unix类系统

这类系统都支持ssh远程登录,登陆后执行poweroff命令就可以完成关机。我们需要做的就是启用远程登录功能。

最后

以上就是无聊未来为你收集整理的基于网络远程开关机的原理与实践1 远程开机2 远程关机的全部内容,希望文章能够帮你解决基于网络远程开关机的原理与实践1 远程开机2 远程关机所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部