目录
- 起因
- WOL[^1]
- 准备阶段
- BIOS设置
- DSM设置
- 引导文件修改为真实的MAC地址
- 总结
起因
买了蜗牛星际半年有余,一直没折腾出A单的WOL功能怎么开启,机器一直是手动开关机,现在放到了机房,机房又干又冷,遂想琢磨出到底是什么原因无法WOL。
WOL1
网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态。无线唤醒(Wake-on-Wireless-LAN,WoWLAN)作为 WOL 的补充技术,使用无线网卡去唤醒计算机。网络唤醒在一般的局域网环境里使用有限广播地址(255.255.255.255)即可,由于路由器都不转发目的地址为有限广播地址的数据报,因此在复杂网络情况下通常使用子网定向广播地址。在局域网外唤醒局域网内特定计算机,可以使用路由器的 DDNS 与端口转发。
在1996年10月,英特尔和 IBM 成立了 Advanced Manageability Alliance。1997年4月,联盟提出了 WOL 技术。这是 WOL 技术的起源,随后各大厂商纷纷推出了自己的 WOL 技术标准。本文所讨论的 WOL 技术是由 AMD 公司提出的 Magic Packet(幻数据包,魔术包)唤醒方式,这里给出 AMD 关于此技术的白皮书。
准备阶段
路由器:
- ARP 保护 / IP MAC 绑定(固定了nas的内网IP)
- UPNP开启
- DHCP开启,固不固定IP没所谓
NAS:
- BIOS设置Advanced–ACPI Settings–Resume By Onboard LAN–Enabled
- BIOS设置Advanced–ACPI Settings–ACPI Sleep State–Disabled(不大于4G内存的用户特别注意这个,原因等会再说)
- DSM控制面板设置“启动局域网1的局域网唤醒”
- 引导文件里的mac地址改为了网卡的真实mac
BIOS设置
内存小的用户记得关闭ACPI Sleep State,这个功能需要大量内存。我这边发现,如果开启这个功能,Docker开启一个需要占用2G内存的镜像时,就卡死,然后整个无响应,过一阵子会报“经历了非正常关机”的错误,但是日志中又找不到相关的错误信息。
提示一下:如果想机器一通电就开机,可以设置PWRON After Power Loss。第一项是恢复断电前的状态,第二个是恢复通电后开机,第三个是通电不开机。
DSM设置
引导文件修改为真实的MAC地址
黑裙的MAC和真实的MAC不对应,需要修改引导文件。如果不清楚自己真实的MAC,有个简单的方法。
SSH连接星际蜗牛后,使用命令:
dmesg | grep eth
箭头位置就是你的MAC地址:
用DiskGenius导出grub.cfg文件,修改MAC再导入进去。
总结
操作步骤还是挺简单的,但是碰到了突然不能打开docker里面的镜像得情况,排查了好久。终于定位到问题所在,幸而解决了。