本文目录导读:

📦 脚本:wol_scheduler.sh
#!/bin/bash
# =============================================
# 定时发送网络唤醒包 (Wake-on-LAN) 脚本
# 用法:配合 cron 或 systemd timer 使用
# =============================================
# ---------- 配置区 ----------
# 目标设备的 MAC 地址(必填)
MAC_ADDRESS="00:11:22:33:44:55"
# 目标 IP / 广播地址(可选,默认广播地址 255.255.255.255)
BROADCAST_IP="255.255.255.255"
# UDP 端口(默认 9,也可用 7 或 0)
PORT=9
# 日志文件(可选,留空则不记录)
LOG_FILE="/var/log/wol_scheduler.log"
# ---------- 函数:发送 WoL 包 ----------
send_wol() {
# 生成魔法包:6个0xFF + 16次MAC地址
MAC=$(echo "$MAC_ADDRESS" | tr -d ':-')
if [ ${#MAC} -ne 12 ]; then
echo "[ERROR] 无效的 MAC 地址格式: $MAC_ADDRESS"
exit 1
fi
# 构建原始包(十六进制)
PACKET=$(printf 'ff%.0s' {1..6})
for i in {1..16}; do
PACKET+="$MAC"
done
# 发送 UDP 数据包
echo -n "$PACKET" | xxd -r -p | nc -w1 -u "$BROADCAST_IP" "$PORT"
local ret=$?
# 日志记录
if [ -n "$LOG_FILE" ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') | WoL to $MAC_ADDRESS -> $BROADCAST_IP:$PORT | exit=$ret" >> "$LOG_FILE"
fi
return $ret
}
# ---------- 主程序 ----------
echo "[INFO] 发送 Wake-on-LAN 包..."
if send_wol; then
echo "[OK] WoL 包已发送至 $MAC_ADDRESS"
else
echo "[FAIL] 发送失败 (exit code: $?)"
exit 2
fi
exit 0
⚙️ 使用方法
1️⃣ 配置脚本
- 修改
MAC_ADDRESS为目标设备的 MAC 地址(必填) - 可选修改
BROADCAST_IP(如168.1.255)和PORT(默认 9)
2️⃣ 赋予执行权限
chmod +x wol_scheduler.sh
3️⃣ 测试运行
./wol_scheduler.sh
4️⃣ 设置定时任务(使用 cron)
# 每天 08:30 唤醒设备 30 8 * * * /path/to/wol_scheduler.sh # 每天 22:00 唤醒 0 22 * * * /path/to/wol_scheduler.sh # 工作日 07:00 唤醒 0 7 * * 1-5 /path/to/wol_scheduler.sh
添加到 crontab:
crontab -e # 粘贴上述行,保存退出
🔍 依赖检查
脚本使用 nc(netcat)发送 UDP 包,如未安装:
Ubuntu/Debian:
sudo apt install netcat-openbsd
CentOS/RHEL:
sudo yum install nmap-ncat
无需 nc 的备选方案(使用 python 或 perl)可替换发送部分,常见场景中 nc 已足够。
🧪 调试技巧
- 检查日志文件(如果配置了)查看最近发送记录。
- 测试时先手动执行脚本,观察输出。
- 用
tcpdump或 Wireshark 监听目标网段确认包是否发出:sudo tcpdump -i any udp port 9
📌 注意事项
- 目标设备必须 启用 Wake-on-LAN(BIOS/UEFI + 操作系统配置)。
- 发送者(本机)与目标设备应在 同一广播域(通常同一局域网)。
- 如果跨 VLAN,需要网络设备(如路由器/交换机)允许 UDP 广播包转发。
- 广播地址若为
255.255.255则发送到整个局域网;指定子网广播(如168.1.255)可减少干扰。
如果需要 Windows 版本的 PowerShell 脚本 或 systemd timer 配置示例,请告知,我可以补充提供。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播