前言

原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。

本文使用Markdown写成,为获得更好的阅读体验和正常的图片、链接,请访问我的博客:

http://www.cnblogs.com/sjqlwy/p/up_wol.html

什么是WOL

Wake-On-LAN的实现,主要是向目标主机发送特殊格式的数据包,俗称魔术包(Magic Packet,由AMD公司MagicPacket软件生成)。MagicPacket格式虽然只是AMD公司开发推广的技术,并非世界公认的标准,但是仍然受到很多网卡制造商的支持,因此许多具有网络唤醒功能的网卡都能与之兼容。

更多内容可以查看维基百科"网络唤醒"页面。此外还有WoWLAN ( Wake on Wireless LAN),使用无线网卡来实现类似功能。

系统需求

  • 目标主机保持供电状态

  • 目标主机网卡支持并打开WOL功能

  • 目标主机BIOS开启WOL功能(关机后维持网卡供电)

启用远程唤醒

目标主机和最后一级唤醒它的设备必须物理连接。

首先UP Board板载的LAN为RTL8111G,官方论坛贴可知其支持WOL,且在emutex的努力下,BIOS已经支持PXE启动。那么我们来验证一下。查看有线网卡信息可以使用ethtool这个小工具:

sudo su #启用root权限
apt-get install ethtool #安装ethtool
ethtool eth0 #查看有线网卡信息,这里是eth0

远程唤醒UP Board-LMLPHP

【板载有线网卡信息】a.支持千兆;b.支持auto-negotiation;c.WOL功能状态

关于auto-negotiation的更多信息,可以查看《 浅谈以太网的Auto-Negotiation》

在wake-on一栏显示当前WOL功能状态:

d(disabled),p(PHY activity),u (unicast activity), m (multicast activity), b (broadcast activity), a (ARP activity), g (magic packet activity)。

使用WOL需要当前状态为g,UP板默认处于g状态。如果不是,可以手动启用WOL功能:ethtool -s eth0 wol g,手动关闭wol:ethtool -s eth0 wol d

触发远程唤醒

想要触发远程唤醒,需要知道目标机器的有线网卡MAC地址和内网/外网IP。以上信息可以使用ip addr 或者 ifconfig获得。如果可以的话,给目标机器设置静态IP。这里使用linux下的程序wol (软件主页,需要下载编译安装)为例:

局域网环境

wol -i 目标主机MAC地址

外网环境

公网IP

wol -i 目标主机IP 目标主机MAC地址

路由器端口转发

wol -p 转发端口 -i 路由器IP 目标主机MAC地址

内网穿透

需要有一个上级设备与目标主机直接连接。ngrok不行。

WOL for Windows

在Windows下可以使用GUI程序,例如 nirsoft出品的wake_on_lan小程序:

远程唤醒UP Board-LMLPHP

支持自动扫描,也支持手动添加目标主机Ctrl+N 。通过下载中文语言包的方式支持中文。PS:他家小工具集非常棒,和微软的那个s什么工具集可以互补。

WOL Web

访问 https://www.depicus.com/wake-on-lan/woli 可以无需借助软件很方便的从网页前端唤醒远程主机。

远程唤醒UP Board-LMLPHP

总结

有了wol功能,UP板搭建NAS、HTPC时可以降低功耗且可以随时唤醒。

更多信息科访问

05-22 08:35