Skip to content

quansitech/wakeup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wake-on-LAN 网络唤醒系统

一个基于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)

🛠️ 安装步骤

1. 克隆项目

git clone <repository-url>
cd wakeup

2. 安装依赖

cargo build --release

3. 配置主机信息

编辑 hosts.json 文件添加你的主机信息:

[
  {
    "name": "主机名称",
    "mac": "AA:BB:CC:DD:EE:FF",
    "ip": "192.168.1.100"
  }
]

4. 运行服务

cargo run

服务将在 http://localhost 启动

⚙️ 配置说明

hosts.json 格式

[
  {
    "name": "主机显示名称",
    "mac": "MAC地址 (支持:或-分隔)",
    "ip": "IP地址"
  }
]

环境变量

  • RUST_LOG: 设置日志级别 (默认: info)

🌐 使用方法

Web界面

  1. 打开浏览器访问 http://localhost
  2. 查看主机列表和在线状态
  3. 点击"唤醒"按钮远程唤醒主机

API接口

获取主机列表

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

🔍 主机检测机制

系统使用多层检测策略确保准确性:

  1. Ping检测: 首先尝试ICMP ping
  2. TCP端口扫描: 检查常用端口 (3389)
  3. HTTP服务检测: 尝试HTTP/HTTPS连接

只要任一检测方法成功,即认为主机在线。

🔧 Wake-on-LAN 配置

目标主机配置

确保目标主机支持WOL:

  1. 在BIOS中启用Wake-on-LAN
  2. 在网络适配器设置中启用WOL
  3. 配置正确的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或联系维护者。

About

主机唤醒系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published