这是一个用于 x86 架构 OpenWrt 的 Wake-on-LAN UDP 广播服务端。
- UDP 监听 2223 端口
- 当收到长度为 7、首字节 0xFA 的数据包时,提取后面 6 字节为 MAC
- 广播 Magic Packet (6×0xFF + 16 次 MAC)
本项目使用 GitHub Actions 自动编译:
- Push 代码到
main
分支 - Actions 会在
ubuntu-latest
Runner 上执行:- 安装
build-essential
- 使用
gcc -Os
优化体积编译 - 用
strip
去符号 - 上传产物
wolserver-openwrt-x86
- 安装
试了下编译多平台应该可以运行 但执行文件好像要大不少 只用x86的话v1.0.5文件比较小
将 wolserver 上传到 OpenWrt 路由器的 /etc
目录,并赋予执行权限:
scp wolserver root@<openwrt_ip>:/etc/wolserver
ssh root@<openwrt_ip> chmod +x /etc/wolserver
确保路由器 LAN 接口可以发送广播包。
把下面内容保存为 /etc/init.d/hkewol
,然后赋予可执行权限:
#!/bin/sh /etc/rc.common
# /etc/init.d/hkewol
START=99
USE_PROCD=1
DAEMON=hkewol
PROG="/etc/wolserver"
start_service() {
echo "Starting WOLServer..."
procd_open_instance $DAEMON
procd_set_param command $PROG
procd_set_param pidfile /var/run/${DAEMON}.pid
procd_set_param respawn 3
procd_close_instance
}
启用并启动服务:
/etc/init.d/hkewol enable
/etc/init.d/hkewol start
记得在防火墙放通本机2223的UDP端口(可以直接界面里配了 我只是举个例子)
config rule
option name 'hkewol'
list proto 'udp'
option dest_port '2223'
option target 'ACCEPT'
option src 'wan'