起因
買了蝸牛星際半年有餘,一直沒折騰出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裏面的鏡像得情況,排查了好久。終於定位到問題所在,幸而解決了。