WOL(唤醒局域网)如何工作?


15

这一直是我的谜,在下雪的日子里,我想在家中工作,但老板想让我们关掉计算机一晚,以节省能源。想通了,我想尝试唤醒局域网,但不确定从哪里开始。



这个网址,加上问题标题,实际上使我发笑了:D(是的,可以通过在位置栏中随机输入我的最佳猜测来制作-我想这是“我感觉很糟糕”吗? )
n611x007

Answers:


6

基本上,当您的计算机插入电源甚至关闭时,某些设备仍会维护一些非常基本的功能,例如网卡。

可以对它们进行配置,以便在收到特殊指令时可以为机器加电。

最简单的启动方法就是,如果您具有集成的NIC,请查看BIOS并查看它是否支持它。如果您有实际的网卡,则可能无法使用它...但是值得一看的是,您是否有用于唤醒局域网芯片或电缆的插槽。

另外,为了节省能源,您显然需要打开设备!您需要有一台可以根据时间表打开设备的路由器或可以从其发送指令的无线移动设备或类似设备打开-显然,最好通过电源按钮打开机器!

维基百科上有一篇关于《唤醒蓝》的好文章


LAN唤醒(WoL)支持在计算机的主板和网络接口上实现,因此,尽管操作系统有时可以控制WoL行为,但它并不依赖于硬件上运行的操作系统。如果网络接口是插卡而不是集成到主板,则可能需要通过电缆将卡连接到主板。具有支持WoL的嵌入式以太网控制器的主板不需要电缆。


NIC在哪里上电工作?
昏暗的

6

好的,网上没有太多有关此方面的信息,所以这是我的智慧:

局域网唤醒如何工作

因此,WoL的重点是使用网络远程打开计算机。显然,如果您的计算机实际上已经完全关闭,则这是不可能的,因此,当现代计算机“关闭”时,以太网卡实际上仍处于打开状态,处于(希望)低功耗状态,监听WoL数据包。

首次创建WoL时,您可以设置网卡以向BIOS发出信号,以在发生任何网络活动时打开计算机。也就是说,每当网卡看到以太网帧(或IP数据包;我不确定100%肯定)时。似乎是合理的,但实际上它是没有用的,因为偶尔随机散布在网络上的数据包会无故唤醒计算机。为了解决这个问题,有人发明了MagicPacket™!通过将卡设置为MagicPacket™模式,仅当计算机看到包含网卡MAC地址的数据重复6次(据我所知)时,计算机才会唤醒计算机。现在,随机数据包不会烦人地唤醒您的计算机。这也是您需要将MAC地址放入WoL工具中的原因。因此它可以构建MagicPacket™。

您可能已经注意到MagicPacket™的一个小缺陷:网络上的任何人都可以看到您的MAC地址,因此,如果您试图在不受信任的本地网络(例如,大学)上使用WoL,令人讨厌的人可能会继续唤醒您的计算机。不要在此引用我的ethtool名字,而是看手册页,好像有人为MagicPacket™发明了SecureOn™。显然,这可以让您设置卡侦听的MAC地址,从而将其有效地转换为私人密码。

数据包如何到达您的计算机

现在是棘手的部分。以太网旨在在打开的计算机之间发送数据。这与WoL不太兼容,后者希望将数据包发送到已关闭的计算机。

第一个障碍是关闭计算机时实际上没有IP地址。因此,您不能将WoL数据包发送到IP地址(让您放入IP地址的工具实际上是在询问路由器的IP地址,该工具已打开)。而是将WoL数据包广播到每个连接的以太网设备。您可以 -在好的路由器中-手动将IP地址与MAC地址相关联,但是大多数路由器不允许这样做,并且会丢弃发送到关闭计算机的IP数据包。

广播数据包有效,但是有问题...

为什么不是很好

问题是,大多数路由器不允许您将数据包转发到广播地址。理想情况下,您在典型的“我在工作,我想从家用计算机中获取东西”中想要的是WoL设置是从外部端口9(例如;参见下文)转发到255.255.255.255:9。路由器根本不会这样做。最终,我确实确实找到了如何为Speedtouch ADSL路由器执行此操作,但是它涉及手工编辑配置文件。

可能唯一可行的真正方法就是安装一个不错的第三方路由器固件,例如Tomato或DD-WRT。这些工具在Web界面中内置了WoL工具。并不是那么整洁,因为那样您就无法做一些很酷的事情,例如回家后使用手机自动唤醒计算机。但是还是。我实际上还没有尝试过,但是您也许可以使这些固件进行转发到广播。谁知道。

端口7和9

许多指南说您必须使用端口7或必须使用端口9,并且您在考虑“为什么?”,“哪个?”。答案是,没关系。您可以使用任何端口;80、666,没关系。您的计算机上的网卡并不在乎MagicPacket™会发送到哪个端口,只要它接收到该端口,并且它的MAC地址就会重复。而且,如果您确实设法使WoL转发正常工作,那么您也可以在其中使用任何端口(然后将相应的端口放入WoL工具中)。

推荐使用7和9的原因是,它们是几个完全无用的服务器使用的端口,自80年代以来就没有人使用过。就像端口80是Web的端口一样,端口7是“ echo”服务器的端口,该端口将所有内容重复发送给发件人,这是一个巨大的安全漏洞,而端口9是“丢弃”服务器的端口。只是丢弃接收到的所有数据,而永不发回任何数据。他们现在已经完全没用了,但我想也许它们对互联网新时代(70年代)进行网络测试很有用。

故障排除-我的计算机无法打开!

首先要检查的是,您在计算机开机时会收到MagicPacket™ 。为此,下载wireshark(用谷歌搜索),让它监听端口9(或7或其他端口),然后发送一个WoL数据包。您应该看到它。如果您不这样做,该问题将相对容易解决,或者至少可以诊断。

如果您收到了数据包,但是您的计算机仍然无法打开,它将变得有些棘手。

首先,进入BIOS / UEFI,并确保启用了“允许PCI唤醒计算机”之类的选项。同时启用PCIe选项。其次,在Linux上使用ethtool来为您的网卡启用WoL。有点像ethtool -s eth0 wol bgm。在Windows中,您可以找到“允许该设备唤醒计算机”选项,并且也许某处有一些MagicPacket™选项。我不知道我现在不使用Windows。

现在,希望它会起作用。但是也许在关闭计算机后它只能工作几分钟(甚至几秒钟)!不好了!这是路由器的问题。我建议您换一个。说真的,Tomato-USB很棒。


NIC在哪里上电工作?
昏暗的

从电源。它仍然为主板提供一点电源。
Timmmm '18

4

如果您的计算机位于防火墙后面,则局域网唤醒(可能)将不起作用。要使其正常工作,您必须在公司的防火墙中打开端口,以使消息通过并将其发送到您的计算机。

解决此问题的一种方法是,如果您可以访问始终处于打开状态的防火墙后面的计算机,并从该计算机发送WOL信号。


关于如何解决此问题的好建议,方法是将一台计算机放在一台计算机上,然后从那里发出WOL数据包,只要它们位于同一LAN上,或者交换机允许它通过。完成后,您可以关闭计算机。剩下的一台计算机也可以用于简单的操作,例如检查电子邮件或使用Intranet。至于其工作方式,请检查提供的其他链接。当您的NIC看到带有其MAC地址的魔术包时,它会向PC发出启动信号。魔术包使我想起拉面。
Bratch


0

Timmmm非常详细的答案!我还要提及的是,由于WOL信号位于osi模型(数据)的第2层,因此通过帧和MAC地址进行传输。因此,发送WOL信号的计算机需要访问要打开的计算机的所有vLAN。

因此,很可能是Management vLAN中的服务器。这就是为什么WOL信号通常从主防火墙或您要与之通信的特定VLAN的DHCP服务器发送的原因。当然,这需要在具有管理权限的DMZ中进行VPN访问或RDP机器设置(强烈建议不要使用后者!)

那将是很多工作需要部署,而不是在下雪天来到办公室;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.