利用routeros,实现真正的远程开机和控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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域名,因为端