利用routeros,实现真正的远程开机和控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

终于实现真正的远程开机和控制

经过几天努力,和朋友一起探讨,实现了真正的远程开机和控制。不需要借助任何第三方软件,爽呆了。

实现方法见/thread-27966-1-1.html立此存照,无它。

通过公网直接对局域网机器进行远程唤醒开机和远程控制

原作者:lshzcb1 (由于原帖被删,辗转找来贴起)

在“zooyo (生得一对好腰花) ”超级版主和“yiguangqiang88会员”的鼓励和帮助下实验

终于成功了,现在把教程写出来,贡献给大家。

环境:adsl动态IP上网、1M速度,ros 2.9.27 .

一.远程唤醒的基本条件

Wake on LAN(WOL),俗称远程唤醒,是现在很多网卡都支持的功能。而远程唤醒的实现,主

要是向目标主机发送特殊格式的数据包,是AMD公司制作的Magic Packet这套软件以生成网

络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。Magic Packet格式虽然只是AMD 公司开发推广的技术,并非世界公认的标准,但是仍然受到很多网卡制造商的支持,因此许

多具有网络唤醒功能的网卡都能与之兼容。

Boeing、IBM、Cisco、United States Army、Canada Customs and Revenue Agency、Intel Corp、Corporation、Hewlett-Packard、Siemens、Walt Disney World Co.、Compuware Corp、AMD (Isn Inc.、British Telecommunications plc、eBay等等公司均在使用WOL技术。

要实现远程唤醒,还需要硬件的设置:

主板和网卡必须都支持远程唤醒功能。一般目前的主板都支持这个功能(2002年以后的板都有),支持的主板上通常都有一个专门的3芯插座,以便在关机时为网卡供电。但并非所有

的网卡都支持该功能(特别是一些价格较便宜的低档网卡),要判断网卡是否支持远程唤醒功

能的方法很简单,支持远程唤醒的网卡上都有一个3针的WOL接口和一条3芯的远程唤醒电

缆,通过判断网卡是否带有WOL接口即可(有些较新的网卡可能没有WOL接口也能支持远程唤醒。这是因为现在流行的主板支持PCI2.2标准,而PCI 2.2标准不需要通过专门的WOL接

口为网卡供电,允许主板直接通过PCI插槽向网卡提供Standby电源)。

1.硬件连接

网卡安装完毕后将远程唤醒电缆的一端插入到网卡的WOL接口上,另外一端与主板的3针

WOL远程唤醒接口相连(该接口旁通常标有WOL_CON的字样,当然如果主板和网卡都支持

PCI2.2标准则无须做这一步)。

需要说明的是,某些主板上已经集成了具有网络唤醒功能的网卡,只要开启“Wake on

PCI Card”功能就可以了,没有什么三脚插座,更不需要专用的三芯连线。

2.CMOS设置

打开CMOS远程唤醒功能很简单,只要将CMOS设置中的“Power Management Setup”的

“Wake Up On LAN”或“Resume by LAN”项设置为“Enable”或“On”即可。

ATX电源

必须要使用ATX电源,而且其+5V Standby电流必须比较大,根据Intel的建议,它需要在600mA以上。该电流的大小可以从电源外部标识中的+5VSB(或+5AUX,5VSB)栏里查到。

(绝大部分的网卡在0.7A以下都可唤醒)

如果远程计算机最后一次关机的时候是属于非正常关机(突然断电或者关机时死机等),唤醒就有可能会失败。在Windows 2000/XP系统中如果在关闭计算机时使用休眠,也可能会造成唤醒失败。这是因为一些网卡需要复位一个标记,这只有在操作系统正常关闭的时候才会发生。

软件的实现方面,其实就是通过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),那么那台机器的网卡在数据帧内发现以下的片断便会将计算机唤醒。

FFFFFFFFFFFF010203040506010203040506010203040506010203040506

010203040506010203040506010203040506010203040506010203040506

010203040506010203040506010203040506010203040506010203040506

010203040506010203040506

正是因为这个Magic Packet可以封装在任何协议的数据包中,可以在各种Router和switch之间传送,而不会影响Magic Packet唤醒的功能。也就是说,不管Magic Packet 是来自于LAN还是WAN,只要网卡检测到Magic Packet就能唤醒。最常被使用的是UDP

广播包,不需要端口号,只要知道被控计算机的MAC地址即可。

二、ros上的设置

1.在ros上arp邦定你远程控制的机器。(为什么要这么做在第5点中会讲到)

2.如是动态IP上网,就去申请一个域名,这样就在外网只要一ping你

的域名,就会反回你的所获得的公网地址),然后在把脚本加入到ros的计划任务中,

这样每次公网IP变更你都会了如指掌。有固定公网IP的可以略过此步。

3.ros的防火墙设置,如图1的设置的这些没有问题,不会阻碍包的发送和接收。

4.按图2-图10的顺序设置ros.其中图3、图4设好后就得到图4-1的结果。(图2

实际为最终的规则列表图,图5、6、7为一个规则,图8、9、10为一个规则)

5.图8-图10是映射远程开机端口的,但是为什么转发是190.164.7.12的定向规则,没有用190.164.7.255呢,因为我实验了后者开不了机,但如果不邦定此机的arp,关机后ros的arp列表里就会消失掉这台机器的IP地址,那条规则就会失效,所以就必须

做第1步。

6.有人会问:怎样在公网向你获得的公网地址发送开机信息呢,不急网络上大有好

人在,只要能上网页就能发送,你去这个网站:

/wake-on-lan/woli.aspx(图11),Your Subnet Mask一般

是填255.255.255.255,Any Port Number是填图8中的你所填的端口数。点发送后,你

就可看到你所开机的流量显示图:图12.

7.那开机后你就可做根据图5规则中的端口数,打开在你的所在机器的远程桌面连

接程序远程连接你的机器了(图13),当然IP地址也可为你的changip域名,因为端

相关文档
最新文档