远程开机——网络唤醒WOL

参考:https://www.cnblogs.com/zhanggaoxing/p/9657545.html
参考:https://baike.baidu.com/item/%E5%8D%95%E6%92%AD/8946201?fr=aladdin
参考:http://lixingcong.github.io/2018/04/08/arp-binding-on-lede/

【一】网络唤醒

网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态。如果设备网卡接收到一个与自己 MAC 地址相同的幻数据包,则网卡会向计算机的电源或主板发出信号以唤醒计算机。

【二】幻数据包创建

幻数据包是一个广播帧,包含目标计算机的MAC地址。幻数据包最简单的构成是6字节的255(FF FF FF FF FF FF FF),紧接着为目标计算机的48位MAC地址,重复16次,数据包共计102字节,有时数据包内还会紧接着4-6字节的密码信息。这个帧片段可以包含在任何协议中,最常见的是包含在 UDP 中。

FF FF FF FF FF FF FF    MAC 地址 × 16 4-6字节的密码(可空)

例如 MAC 地址为 11 22 33 44 55 66 的目标计算机,幻数据包的格式为:

FFFFFFFFFFFF 112233445566 112233445566 112233445566
112233445566 112233445566 112233445566 112233445566
112233445566 112233445566 112233445566 112233445566
112233445566 112233445566 112233445566 112233445566
112233445566

==创建幻数据包==
1. Openwrt、PandoraBox路由器
在软件包界面刷新列表,安装luci-app-wol、luci-i18n-wol-zh-cn、wol
在putty界面中

opkg update
opkg install luci-app-wol luci-i18n-wol-zh-cn wol

得到类似下方的界面

网络唤醒.png

输入MAC地址后,点击唤醒即可,但是此插件仅限于局域网唤醒,不能穿越防火墙。
2.Android系统可用Wake On LAN软件
Wake On LAN软件-1.jpg

3.Windows系统可用Wake On LAN Sender软件

Wake On LAN Sender.png

【三】幻数据包发送方式

单播
单个发送者和单个接受者之间通过网络进行的通信。
广播
“一对所有”的通讯模式,网络对其中某一台主机发出的信号进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要)。
以Wake On LAN软件为例:

Wake On LAN软件-2.jpg

上图红色圈内,
填192.168.25.255就是广播。
填192.168.25.255以外的主机IP就是单播,如192.168.25.100。
单播不受防火墙阻挡,适用于穿越防火墙。
广播受防火墙阻挡,适用于内网。

【四】幻数据包接收

(一)单播方式
选择单播方式进行幻数据包发送,必须得到路由器支持,在路由器进行ARP设置,绑定目标网卡的IP与MAC,这样才能把幻数据包发送到目标网卡上。
如果不设置ARP绑定IP与MAC,目标网卡在关机状态下是没有IP的,路由器也不知道目标网卡MAC,故幻数据包到达路由器时,路由不知道要把幻数据包发送给谁,从而无法远程开机。
如果绑定了目标网卡的IP与MAC,虽然目标网卡在关机状态下是没有IP的,幻数据包到达路由器时,路由通过查询ARP表得知要把幻数据包发送给某MAC的目标网卡,从而实现远程开机。此开机方式不受防火墙阻挡,适用于穿越内网
1、ARP表
ARP表负责ip地址到MAC地址的映射,如果在arp表中找不到对应mac地址,就会无法到达该ip。
2、Openwrt修改ARP表
1)默认的arp命令实际上只能打印出arp表,无法修改。需要安装ip-full来修改(重点,必须安装的依赖,否则无法修改)

opkg update
opkg install ip-full

2)使用ip neigh可以打印出当前的ARP表

root@Openwrt:~# ip neigh
192.168.0.6 dev eth0.2 lladdr 00:11:22:33:5a:bc REACHABLE
192.168.9.207 dev br-lan  FAILED
192.168.9.184 dev br-lan lladdr 00:11:22:33:d1:5c REACHABLE
192.168.0.250 dev eth0.2 lladdr 00:11:22:33:dc:bc STALE

3)使用add/change可以增加/修改一条项目,添加permanent标志可以修改为静态的ARP条目,直到路由重启(否则无法删除)。

ip neigh add    192.168.200.1 lladdr 00:22:44:66:88:aa nud permanent dev eth0.2
ip neigh change 192.168.200.1 lladdr 00:22:44:66:88:bb nud permanent dev eth0.2

4)当192.168.200.1项目对应的nterface(eth0.2)重新连接时候,该ARP条目会失效,显示FAIL,但是也无法删除。

root@LEDE:~# ip neigh
192.168.0.6 dev eth0.2 lladdr 00:11:22:33:5a:bc REACHABLE
192.168.9.207 dev br-lan  FAILED
192.168.200.1 dev eth0.2  FAILED
192.168.9.184 dev br-lan lladdr 00:11:22:33:d1:5c REACHABLE
192.168.0.250 dev eth0.2 lladdr 00:11:22:33:dc:bc STALE

5)当路由器重启后,即使是添加了permanent标志的绑定也会失效,所以可以设置脚本开机自动添加ARP绑定。
方式一:
用WinSCP进入路由,新建文件/etc/hotplug.d/iface/99-arpbind,并设置777权限,文件内输入以下内容:

# 添加内容
#! /bin/sh
[ "$ACTION" = ifup ] || exit 0
ITEMS="
00:22:44:66:88:aa;192.168.200.1;eth0.2 \
00:11:22:33:dc:bc;192.168.0.250;eth0.2 \
"
for item in $ITEMS; do
    mac_addr=`echo $item | awk -F ';' '{print $1}'`
    ip_addr=`echo $item | awk -F ';' '{print $2}'`
    intf=`echo $item | awk -F ';' '{print $3}'`
    # echo "$mac_addr $ip_addr $intf"
    ip neigh add $ip_addr lladdr $mac_addr nud permanent dev $intf || ip neigh change $ip_addr lladdr $mac_addr nud permanent dev $intf
done

这样以后往这个脚本的ITEMS添加类似于绿色字体的内容即可实现真正的永久(路由重启后仍生效)添加静态ARP条目。
方式二(推荐)
在luci界面启动项exit0前用ip neigh命令直接添加(重点)。如:

ip neigh add 192.168.200.1 lladdr 00:22:44:66:88:aa nud permanent dev eth0.2 || ip neigh change 192.168.200.1 lladdr 00:22:44:66:88:aa nud permanent dev eth0.2

自行修改IP地址、MAC地址、dev接口。
(二)广播方式
选择广播方式进行幻数据包发送,不需要进行路由ARP绑定;幻数据包到达路由器时,路由器不管目标是否开机,均采用广播方式发送幻数据包,从而实现远程开机。此开机方式受防火墙阻挡,适用于内网

【五】电脑开启网络唤醒功能(自行百度查询)

设置完毕后,电脑关机,如果网卡的灯是亮的,证明网络唤醒功能开启。可以用软件发送幻数据包测试是否成功。

【六】远程网络唤醒实例

实例.jpg

如上图所示,假设手机和电脑2通过VPN互访,手机的MAC为A1:B1:C1:D1:E1:F1,电脑2的MAC为A2:B2:C2:D2:E2:F2,手机要远程开启电脑2。
网关B要进行ARP绑定,在luci界面启动项exit0前添加

ip neigh add 192.168.15.2 lladdr A2:B2:C2:D2:E2:F2 nud permanent dev br-lan || ip neigh change 192.168.15.2 lladdr A2:B2:C2:D2:E2:F2 nud permanent dev br-lan

重启生效。可以在putty输入ip neigh查看是否生效。
手机打开Wake On LAN软件,按下图填写


实例-1.jpg

端口随意填。添加设备后直接点击,即可远程开机。

相关软件下载:
安卓网络唤醒apk:https://wws.lanzous.com/iXTqgmggpmb 密码:bdaj
Wake On LAN Sender:https://wws.lanzous.com/iBzWGmggpsh 密码:afco
putty:https://wws.lanzous.com/i02olmgh8ra 密码:32oh
WinSCP:https://wws.lanzous.com/itj0Gmghepe 密码:398z

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容