torchiachristian/HomeNetMonitor

GitHub: torchiachristian/HomeNetMonitor

一个基于Python和Flask的家庭网络实时监控仪表板,集成了设备发现、带宽嗅探及异常流量告警功能。

Stars: 10 | Forks: 2

# 🌐 HomeNetMonitor ![Python](https://img.shields.io/badge/python-3.10+-blue.svg) ![Flask](https://img.shields.io/badge/flask-3.0-green.svg) ![License](https://img.shields.io/badge/license-MIT-blue.svg) 具有设备检测和异常告警功能的实时家庭网络监控仪表板。 ## 📋 功能 - ✅ 每 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 秒自动更新 ## 📸 截图 ### 仪表板概览 ![Dashboard Overview](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ad150a7005211702.png) ### 带宽、图表和告警 ![Bandwidth and Charts](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6b3c0478a5211704.png) ## 🔧 配置 ### 更改 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, 云存储安全, 仪表盘, 后渗透, 多模态安全, 家庭网络, 带宽监控, 开源项目, 异常检测, 插件系统, 数据可视化, 数据嗅探, 无后门, 网络安全, 网络安全审计, 网络安全工具, 网络扫描, 虚拟驱动器, 设备发现, 逆向工具, 隐私保护