核心用法
本技能提供两个Python脚本,用于发送Wake-on-LAN(唤醒)和Sleep-on-LAN(休眠)魔法数据包:
- send_wol.py:发送标准WOL魔法包(6字节FF + 16次重复目标MAC)
- send_sleep.py:发送SOL包(使用MAC地址倒序作为标识)
配置方式
1. 命令行参数:--mac、--broadcast、--port
2. 配置文件:~/.config/wol-sleep-pc/config.json(推荐,已被.gitignore排除提交)
典型命令
python3 scripts/send_wol.py --mac 24:4B:FE:CA:90:99 --broadcast 192.168.1.255 python3 scripts/send_sleep.py --mac 99:90:CA:FE:4B:24 --broadcast 192.168.1.255
---
显著优点
| 维度 | 评价 |
|:---|:---|
| **架构简洁** | 纯Python实现,无外部依赖,单文件可审计 |
| **配置灵活** | CLI覆盖配置文件的优先级设计合理 |
| **安全默认** | 零值默认值+gitignore排除,避免敏感信息泄露 |
| **即开即用** | 标准WOL协议,兼容绝大多数主板BIOS/网卡 |
---
潜在缺点与局限性
1. 网络层依赖:必须运行在目标PC的L2广播域内,跨VLAN/路由器需额外配置IP Helper或代理
2. 目标端要求:PC需开启BIOS WoL支持、网卡魔包唤醒、且保持电源连接
3. SOL非标准:Sleep-on-LAN依赖特定软件监听倒序MAC,非Windows原生功能
4. 无状态反馈:脚本发送即结束,无法确认目标是否实际唤醒/休眠
---
适合人群
- 家庭NAS/服务器管理者,需远程开关机
- 开发测试环境运维,批量控制物理机
- 已具备网络基础,能自行配置MAC地址和广播地址的技术用户
---
常规风险
| 风险项 | 等级 | 说明 |
|:---|:---|:---|
| 未授权唤醒 | 中 | 魔法包无认证,局域网内任何人可伪造,建议在交换机层做端口安全 |
| 配置泄露 | 低 | 设计已规避,但用户仍需确认config.json未被意外提交 |
| 网络误操作 | 低 | 错误广播地址可能向整个子网泛洪,但影响有限 |
| 目标端未响应 | 功能性 | 非技能缺陷,需检查目标硬件支持和电源状态 |