一个基于Rust开发的网络唤醒(Wake-on-LAN) Web管理系统,支持多重主机在线检测和远程唤醒功能。
- Web界面管理: 直观的Web界面管理所有主机
- 多重在线检测: 智能的主机在线状态检测
- ICMP Ping检测
- TCP端口扫描检测
- HTTP/HTTPS服务检测
- Wake-on-LAN唤醒: 支持标准WOL协议唤醒主机
- 实时状态监控: 自动检测和缓存主机在线状态
- RESTful API: 提供完整的API接口
- 跨平台支持: 支持Linux、macOS、Windows
- Rust 1.70+
- Linux/macOS/Windows
- 网络连接(用于主机检测和WOL)
git clone <repository-url>
cd wakeup
cargo build --release
编辑 hosts.json
文件添加你的主机信息:
[
{
"name": "主机名称",
"mac": "AA:BB:CC:DD:EE:FF",
"ip": "192.168.1.100"
}
]
cargo run
服务将在 http://localhost
启动
[
{
"name": "主机显示名称",
"mac": "MAC地址 (支持:或-分隔)",
"ip": "IP地址"
}
]
RUST_LOG
: 设置日志级别 (默认: info)
- 打开浏览器访问
http://localhost
- 查看主机列表和在线状态
- 点击"唤醒"按钮远程唤醒主机
GET /api/hosts
响应示例:
[
{
"config": {
"name": "联想小主机",
"mac": "aa:bb:cc:dd:c0:95",
"ip": "192.168.1.2"
},
"online": true
}
]
POST /api/wake/{mac地址}
示例:
curl -X POST http://localhost/api/wake/aa:bb:cc:dd:c0:95
系统使用多层检测策略确保准确性:
- Ping检测: 首先尝试ICMP ping
- TCP端口扫描: 检查常用端口 (3389)
- HTTP服务检测: 尝试HTTP/HTTPS连接
只要任一检测方法成功,即认为主机在线。
确保目标主机支持WOL:
- 在BIOS中启用Wake-on-LAN
- 在网络适配器设置中启用WOL
- 配置正确的MAC地址
- 确保发送WOL包的机器和目标主机在同一广播域
- 路由器/交换机需要支持WOL包转发
wakeup/
├── src/
│ └── main.rs # 主程序
├── static/ # Web前端文件
│ ├── index.html
│ ├── style.css
│ └── script.js
├── hosts.json # 主机配置
├── Cargo.toml # 项目配置
└── README.md # 说明文档
Q: 主机显示离线但实际上在线 A: 检查防火墙设置,可能屏蔽了检测端口
Q: WOL唤醒失败 A:
- 确认BIOS中启用了WOL
- 检查网络适配器WOL设置
- 确认MAC地址正确
- 检查网络是否在同一广播域
Q: 端口被占用
A: 修改 src/main.rs
中的端口号
RUST_LOG=debug cargo run
欢迎提交Issue和Pull Request!
MIT License
如有问题请提交Issue或联系维护者。