torchiachristian/HomeNetMonitor
GitHub: torchiachristian/HomeNetMonitor
一个基于Python和Flask的家庭网络实时监控仪表板,集成了设备发现、带宽嗅探及异常流量告警功能。
Stars: 10 | Forks: 2
# 🌐 HomeNetMonitor



具有设备检测和异常告警功能的实时家庭网络监控仪表板。
## 📋 功能
- ✅ 每 30 秒自动进行网络扫描
- ✅ 设备检测(IP、MAC、主机名)
- ✅ 带有自动刷新功能的实时 Web 仪表板
- ✅ 针对新设备/未知设备的视觉告警
- ✅ SQLite 数据库中的连接历史记录
- ✅ 设备在线/离线状态
- ✅ **每设备带宽监控**(数据包嗅探)
- ✅ **异常检测**(高流量、可疑时段)
- ✅ **Chart.js 图表**(带宽使用情况 + 连接时间线)
- ✅ **7 天历史数据可视化**
## 🛠️ 技术栈
- **Backend**: Python 3.10+
- **Network Scanning**: nmap, python-nmap
- **Packet Sniffing**: scapy
- **Web Framework**: Flask
- **Database**: SQLite
- **Frontend**: HTML, CSS, JavaScript
- **Charts**: Chart.js
## 📦 安装
### 前置条件
```
sudo apt update
sudo apt install python3.10-venv nmap
```
### 设置
```
# Clone repository
git clone https://github.com/torchiachristian/HomeNetMonitor.git
cd HomeNetMonitor
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Initialize database
python3 src/database.py
```
## 🚀 使用
### 1. 启动网络监控器
```
sudo venv/bin/python3 src/monitor.py
```
**注意**:需要 `sudo` 权限以进行 raw socket 网络扫描访问。
### 2. 启动仪表板(在另一个终端中)
```
cd ~/HomeNetMonitor
source venv/bin/activate
python3 src/app.py
```
### 3. 访问仪表板
在浏览器中打开:`http://localhost:5000`
## 📊 仪表板
仪表板显示:
- **统计信息**:设备总数、当前活跃设备、新设备/未知设备
- **设备列表**:IP、MAC、主机名、时间戳、状态
- **视觉告警**:新设备以红色高亮显示
- **带宽表**:每设备的流量统计
- **图表**:带宽使用情况(柱状图)+ 连接时间线(折线图)
- **异常告警**:高流量、可疑时段、新设备
- **自动刷新**:每 10 秒自动更新
## 📸 截图
### 仪表板概览

### 带宽、图表和告警

## 🔧 配置
### 更改 IP 范围
在 `src/network_scanner.py` 中编辑:
```
def scan_network(network_range="192.168.1.0/24"): # Change here
```
### 更改扫描间隔
在 `src/monitor.py` 中编辑:
```
monitor_loop(interval=30) # Seconds between scans
```
## 📁 项目结构
```
HomeNetMonitor/
├── src/
│ ├── app.py # Flask application
│ ├── database.py # Database management
│ ├── monitor.py # Main monitoring loop
│ ├── network_scanner.py # Network scanning logic
│ ├── traffic_monitor.py # Bandwidth monitoring
│ └── anomaly_detector.py # Anomaly detection
├── templates/
│ └── dashboard.html # Web dashboard
├── screenshots/
├── requirements.txt # Python dependencies
└── README.md
```
## 🎓 教育目的
集成了以下内容的 ITS 项目:
- 网络与局域网扫描
- 关系型数据库(SQLite)
- Web 开发(Flask + 前端)
- 基础网络安全概念
- 实时监控系统
## ⚠️ 注意事项
- 仅在您自己的家庭网络上进行测试
- 网络扫描需要管理员权限
- 新设备会保持高亮显示,直到被手动标记为“已知”
- 异常检测阈值可以在 `anomaly_detector.py` 中自定义
## 🤝 贡献
欢迎反馈和贡献!您可以:
- 针对错误或功能请求提交 issues
- 提交 pull requests
- 分享您使用该工具的经验
## 📝 许可证
MIT License - Educational ITS Project
## 👨💻 作者
Christian Torchia - [GitHub](https://github.com/torchiachristian)
**🇮🇹 Versione italiana**: 参见 [README_IT.md](README_IT.md)
标签:DNS枚举, DNS解析, Flask, HTTP工具, IP地址, MAC地址, Nmap, Python, Scapy, SQLite, 云存储安全, 仪表盘, 后渗透, 多模态安全, 家庭网络, 带宽监控, 开源项目, 异常检测, 插件系统, 数据可视化, 数据嗅探, 无后门, 网络安全, 网络安全审计, 网络安全工具, 网络扫描, 虚拟驱动器, 设备发现, 逆向工具, 隐私保护