背景:很多人熟悉远程桌面并经常地利用它所带来的方便,但是前提是服务器(远程电脑)必须是处于开机状态。对于机房里有专人管理的服务器,这点不成问题,但如果是放在家里的电脑,要让它7*24地开机似乎就不好办了。所以,关键的问题是如何能够在需要的时候可以启动/关闭家里的电脑(或者者说任何连着internet的电脑)。

1.WOL原理

WOL(Wake on Lan),即局域网唤醒,从根本上来说是硬件设备提供的一项管理功能。该功能可以当电脑处于关机或休眠状态时,通过给网卡发送特定的数据包从而命令网卡向主板发送开机指令,进而实现上电开机。

可见,网络唤醒需要硬件(主要是主板和网卡)的支持。目前几乎所有品牌的硬件都支持WOL(2000年以前的硬件产品有可能不具有该功能),但有可能在软件上默认WOL处于关闭状态(为什么不是默认启用状态呢?当然是出于安全考虑),如何启用硬件的这两个功能,网络上有很多这样的文章,下面也将简单介绍。不同的产品,界面略有不同,但这些都是很简单的。

a.主板WOL启动:进入BIOS,将“Power Management Setup”中的“Wake Up On LAN”或“Resume by LAN”项设置为“Enable”或“On”。

b.网卡WOL启动:进入windows后,进入设备管理器,选择要用于WOL的网卡,进入属性窗口选择“高级”标签,在列表里能找到“Wakeup Capabilities(唤醒功能)”设置值为“MagicPacket”或”Both”

如果能找到上述两种设置的地方,就说明你的硬件是支持WOL的,启用这些功能后就可以通过局域网来唤醒了。

要注意,如果电脑非正常关机(比如按Power键来强制关机)还是无法WOL的,只有正常关机后,网卡仍会处于活动状态可以接收网络数据。

Magic Packet的具体技术资料可以查看AMD的网站

http://www.amd.com.cn/chcn/ConnectivitySolutions/TechnicalResources/0,,50_2334_2481_2494,00.html

Magic packet白皮书下载

MagicPacket Technical White Paper

了解了基本的原理,接下来就试试如何来唤醒吧

2.WOL工具介绍

实现远程唤醒的软件有很多,原理都是相同的。下面列出几款常用的WOL软件:

LanHelper

Magic Packet Utility

NetWaker for windows

WakeOnLanGui(http://www.depicus.com)

这种几都可以在网络上找到,由于第三方下载不稳定,就不给出下载地址了。这里以depicus的WOL软件为例来说明。

可以在这里http://www.depicus.com/wake-on-lan/wake-on-lan-gui.aspx下载到WOL for windows,它是个绿色版的小软件,只几百K大小。界面如下:

这个工具不仅可以在局域网内唤醒电脑,还可以通过internet唤醒电脑(将在下一节详细介绍)。

首先,得到被唤醒电脑网卡的MAC地址(可以通过查看对应网卡的属性找到),再将Send Options选为Local Subnet一项。其它项在局域网内唤醒时并不重要,也就是说只要MAC正确,点击“Wake Me UP”就可以唤醒对应的电脑了。

如果需要通过internet来唤醒,也必须确保在局域网内是可能正常唤醒的。在局域网内,该软件会发送Magic Packet的广播包,如果对应MAC地址的网卡收到该包后,就可以做出响应启动电脑。

3.通过internet远程唤醒

WAN与LAN在不同在于在广域网上,有许多的路由器等网络设备,这些设备可能会使Magic Packet的包不能到达我们想唤醒的电脑网卡上。因此,要实现通过internet来唤醒,必须得到路由器的支持。

下面以TP-Link WR541G+无线路由为例来说明配置过程。

首先确保路由器可以正常接入internet,即通过服务商得到一个公网IP(对于家庭来说ADSL、CableModem是常见的上网方式),进入路由器WEB配置页面http://192.168.1.1

a.     端口映射(虚拟服务器)

“转发规则”-“虚拟服务器”,添加一新条目,端口为2301(2301是默认的端口号,也可以是其它端口号,只要不和其它的冲突),IP地址为需要唤醒电脑网卡所使用的IP地址(比如192.168.1.101),协议为UDP,并使之处于“生效”状态。

这一步使得当路由器收到发到它2301端口的数据都会转发到192.168.1.101这台电脑上。

b.     IP与MAC绑定

“IP与MAC绑定”-“静态ARP绑定设置”,添加一新条目,MAC地址添为网卡(被唤醒电脑上的)MAC,如00-15-60-CA-1A-B6,IP为上一步设置的IP192.168.1.101

当路由器收到从internet发来的MagicPacket包时,由于设了端口映射就需要将其转发到192.168.1.101上。但由于电脑是处理关机状态,ARP无法通过广播找到192.168.1.101这台电脑,Magic包将被路由器丢弃,因此进行静态的IP-MAC绑定,使数据包可以直接发往MAC为00-15-60-CA-1A-B6的网卡上。

此时,从理论上来说,通过internet的远程唤醒就可以成功了。但还有一些工作需要补充,以便更好地工作。

c.     为了确保该电脑在启动后可以获得192.168.1.101这个IP,需要在DHCP服务器中设置一个静态地址分配,即MAC00-15-60-CA-1A-B6静态分配192.168.1.101永不过期。

d.     在路由器上使用动态DNS功能,这样可以用一个域名来访问而不用查看经常改变的公网IP(ADSL拨号上网的IP是经常变的)。同时,允许路由器可以进行无端WEB管理,以方便当我们在任何地方都可以检查路由器的状态。具体操作可参阅相关资料

配置好了路由器(可能需要重新启动路由器),就可用上面那个WOL for windows来通过internet过程唤醒(WOL over the internet)。

下面再详细说一下界面中其它几项的意思。

MAC地址:同样需要输入网卡的MAC地址

Internet Address:IP地址,输入路由器的公网IP地址(或者域名)

Subnet Mask:子网掩码,输入该IP的子网掩码,需要输入255.255.255.255 。这是个特别要注意的地方,因为普通的家用路由器不支持(或不可配置)子网定向广播(subnet directed broadcast),所以如果输入255.255.255.0这样的掩码将无法让路由器转发Magic Packet包。但是对于允许进行子网定向广播的路由器,我们就不需要上面对路由器的复杂配置,只需将子网定向广播功能启用即可。

Send Options:发送选项,这次应该选择“internet”

Remote Port Number:端口号,这个端口号在局域网唤醒中是无所谓的,因为不论Magic Packet包发到哪个端口都可以被网卡识别。在步骤a中,我们映射了一个端口(2304),只有发到这个端口的数据才可被路由器转发,所以在internet唤醒中,这个端口号必须于端口映射中的端口号一致。

depicus提供了一个在线的远程唤醒,以方便我们使用:

http://www.depicus.com/wake-on-lan/woli.aspx

远程开机之后

一旦远程开机了,就可以通过远程桌面来使用自己家里的电脑了(当然也需要在路由器上对远程桌面使用的3389端口进行映射)。要想关闭电脑,只需在DOS窗口里执行shutdown命令。

安全是我们需要注意的问题,可以通过路由器的远端WEB管理来允许是否可进行internet远程唤醒(在静态ARP绑定配置中是否绑定IP与MAC)

目前网络上大部分关于WOL的文章没有说明如何在广域网上wakeup,本人在实验的过程中查阅了大量的资料,尝试了多种途径,最后将认为较为简便易用的一种写成此文。感谢这些文章、帖子的原作者,感谢赵贤书先生以及我所有好朋友的帮助。如果文中有错误的地方请指正,欢迎讨论

远程唤醒、WOL、Magic_Packet相关推荐

  1. windows,远程开机,远程唤醒(WOL,Wake-on-LAN),只在刚关机一段时间内可以实现,时间长了就无法实现

    一.问题描述. windows,远程开机,远程唤醒(WOL,Wake-on-LAN),只在刚关机一段时间内可以实现,时间长了就无法实现. 二.问题分析. 节省电量,电源或网络电源关闭. 三.解决方案. ...

  2. android动态唤醒网络,PCC: 局域网远程唤醒 WOL Android端

    PCC 项目介绍 局域网远程唤醒 WOL Android端 软件架构 Kotlin + Navigation + LiveData + ViewModel + Room 使用说明 开启远程唤醒,需要具 ...

  3. linux 网络远程唤醒 WOL

    WOL(Wake on Lan),即局域网唤醒,从根本上来说是硬件设备提供的一项管理功能.该功能可以当电脑处于关机或休眠状态时,通过给网卡发送特定的数据包从而命令网卡向主板发送开机指令,进而实现上电开 ...

  4. 网络远程唤醒 WOL Magic Packet

    Magic Packet Magic Packet白皮书介绍: The basic technical details of Magic Packet Technologyare simple and ...

  5. 【超详细】Windows设置远程唤醒WOL+远程连接(远程开机)

    前言 先说说为什么要搞远程开机,其实使用场景非常的多.就拿我自己来说,办公使用的mac,对于windows还做不到完全的撇弃,使用虚拟机的话(Parallels)收费高.破解版不稳定.要么就是其它的虚 ...

  6. dwmac/stmmac/eqos 远程唤醒(WOL) 驱动

    1. ethtool linux-4.19.125\drivers\net\ethernet\stmicro\stmmac\stmmac_ethtool.c 1.1 ethtool eth0 etht ...

  7. 基于Java实现计算机远程唤醒(WOL)功能

    网络唤醒,即WOL.简单来讲就是电脑在关闭状态,可以通过网络发送特殊数据包给网卡,网卡收到指定包后,开启计算机.WOL要求有硬件支持该功能,目前市场上主流的以太网卡都支持WOL功能,而无线网卡查找了许 ...

  8. c# 远程网络唤醒电脑(电脑远程开机+内网MAC和IP扫描)(附带源码+主板和Windows开启详细说明+外网远程唤醒方案)

    一.需求 1.人在公司坐,昨晚写的文档放在家中电脑忘记Copy了,想要访问家中电脑拿到文档. 2.家中或公司中局域网内有某台电脑(或服务器)要开机,或者批量一键打开局域网内某些电脑 二.必备条件 1. ...

  9. STM32F103ZE uIP DM9051 SPI以太网移植指南

    1.前言 1-1网卡芯片介绍 DM9051NP SPI接口网卡芯片是为了方便MCU单片机系统进行以太网通信而开发出的解决方案.DM9051NP芯片是带有行业标准串列外设接口(Serial Periph ...

  10. 被计算机控制的人,电脑有可能被别人控制吗?

    电脑是有可能是给人远程控制的! 但明显你的情况不属于这种情况!你可能是网络有点问题! 所谓远程控制,是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段,联通需被控制的计算机,将 ...

最新文章

  1. React 项目---class 创建组件 (11)
  2. 将文字自动转为banner打印形式的工具
  3. 10个实用Linux运维命令
  4. 笔记本多硬盘win7下U盘安装Cnetos7引导问题!
  5. coroutine - yield from
  6. java的printf语法_Java中printf的用法总结
  7. 修改样式_Word小技巧:如何设置样式 快速修改文本格式
  8. seafile自建服务器,自建云盘系列——Seafile (支持分布式存储)
  9. db_mysql.so_MySQL登陆时提示找不到到libmysqlclient.so.15
  10. jquery 过滤 first last eq filter not
  11. python封装DM达梦数据库-增删改查
  12. uml点餐系统活动图_大学生网上订餐系统--UML建模
  13. springboot后端接受图片到本地
  14. 字节跳动否认完成支付牌照收购,但金融野心一直有
  15. Storm Trident简介
  16. VSCode配置 for Mac(一)C++
  17. linux 环境安装 webdav 服务
  18. 不想长期打工,可做这5个冷门生意,知道的人不多,利润却不错
  19. VBA处理工作表合并单元格 - 格式篇
  20. DMCTF部分题目writeup

热门文章

  1. 计算机专业自考本需要学哪几门,自考本科都考哪些科目?一次考几门?
  2. 28.【分解质因数】
  3. 米家小相机最新固件_不到1000元的米家小相机 都有哪些缺点
  4. 供应链拼图:拼合未来的全球经济
  5. 常见笔顺错误的字_常见笔画笔顺易错字 的的笔顺笔画顺序
  6. cad没有命令输入框_CAD命令,教您CAD命令栏不见了怎么调出来
  7. AUTOCAD——成组命令
  8. 如何实现电压、液位等模拟量信号的无线传输?
  9. Weblogic控制台中文显示还是英文显示,浏览器语言设置决定的
  10. python flag用法_python flag什么意思