# EasyNetBak
**Repository Path**: xmp111/EasyNetBak
## Basic Information
- **Project Name**: EasyNetBak
- **Description**: 网络设备配置备份系统
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://netopsbase.com/projects/easynetbak/
- **GVP Project**: No
## Statistics
- **Stars**: 106
- **Forks**: 50
- **Created**: 2026-01-19
- **Last Updated**: 2026-08-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# EasyNetBak (网络设备备份系统)
## 🔗 项目仓库
两个仓库内容保持同步,可任选一个访问或克隆。
GitHub 仓库
Gitee 仓库
***
EasyNetBak 是一个面向网络工程师的网络设备配置备份与管理平台,集成设备资产管理、自动化备份、配置差异分析、多渠道通知(邮件/企业微信/飞书/钉钉/webhook)、WebShell 运维入口、RBAC 权限控制与审计日志,为网络管理员提供完整的配置生命周期管理能力。
> ⚠️ **安全建议**:
>
> - 为了保障网络设备安全,建议使用 **只读权限 (Read-Only)** 账号进行设备备份,最小化安全风险。
> - 建议先在测试环境测试功能,再应用到生产环境,避免直接在生产环境中使用。
## 💬 交流、支持与反馈
- **Gitee Issues**:适合提交可复现的问题、功能建议和设备兼容性反馈。提问时请提供版本、部署方式、操作步骤及脱敏后的日志,以便快速定位。
- **公众号交流**:建议优先在相关文章下的留言区交流,也可以通过公众号后台联系进微信交流群。
请勿在公开渠道提交设备密码、Token、私钥、完整配置、内网地址或其他敏感信息。
> **📣 社区支持与商业合作**
>
> EasyNetBak 是一个开源项目,社区支持不承诺固定响应时间或服务等级。
>
> 企业私有化部署、设备适配、技术支持及商业合作需求,请通过项目公布的联系方式单独沟通。
***
## 💖 支持项目
如果这个项目对你有帮助,欢迎通过以下方式支持:
### ⭐ Star 项目
点击右上角的 ⭐ Star 按钮,让更多人发现这个项目。
### 💰 赞赏支持
如果这个项目对你有所帮助,欢迎请作者喝杯咖啡,感谢你的支持!
| 爱发电 |
微信赞赏码 |
|
|
***
## ✨ 主要功能
| 模块 | 核心功能 |
| :--------------- | :-------------------------------------------------------------------------------------------------------------------------- |
| **设备与资源管理** | • 统一管理设备、分组、凭据及备份命令模板 (支持 CSV 批量导入导出)• **连通性检测**: 基于 Celery 的批量异步巡检与可用性统计• **WebShell**: 浏览器内安全访问设备终端,便于运维排障 |
| **自动化备份与调度** | • 基于 Netmiko 的多厂商支持 (Cisco, Huawei, H3C, Juniper 等)• 支持手动触发与 Crontab 定时任务 (内置 APScheduler 与 Celery)• 具备失败重试、任务超时控制与备份留存清理策略 |
| **配置管理与对比** | • **版本对比**: 内置 Diff 查看器,支持并排与统一视图• **Diff 忽略规则**: 可配置正则表达式忽略无关行• **配置搜索**: 在历史备份中快速检索关键字 |
| **可视化仪表盘** | • 实时展示系统状态、备份成功率、最近失败任务• 提供备份趋势与设备平台分布概览 |
| **安全与权限 (RBAC)** | • 角色与权限分级管理,支持可视化配置• 支持 MFA 双因素认证与管理员恢复码• **凭据加密**: 敏感凭据在数据库中加密存储 |
| **审计与日志** | • **操作审计**: 详尽记录用户对系统的所有增删改操作• **登录日志**: 记录用户登录、失败及登出行为,支持异常分析 |
| **通知与存储** | • **存储归档**: 自动同步至 AWS S3、兼容对象存储 (MinIO/OSS) 或远端 FTP• **邮件通知**: 支持备份失败、配置变更与汇总告警邮件发送与测试 |
## 🛠 技术栈
| 领域 | 技术选型 |
| :--------- | :--------------------------------------------------------------------------------------------------- |
| **后端** | Python 3.10+ (Docker 镜像默认使用 Python 3.12), FastAPI, SQLModel (SQLAlchemy), Celery, APScheduler, Redis |
| **前端** | Bootstrap 5, Jinja2 模板引擎, ECharts |
| **网络与自动化** | Netmiko, AsyncSSH, Telnetlib3 |
| **数据库** | PostgreSQL (生产推荐) / SQLite (开发可选) |
| **容器化** | Docker, Docker Compose |
## 🚀 安装部署
## 📚 界面展示
### 登录界面 (Login)

### 仪表盘 (Dashboard)

### 设备管理 (Device Management)



### 备份与任务 (Backups & Tasks)





### 审计与日志 (Logs)


### 系统管理 (System Management)

### 通知设置 (Notifications)

### 存储设置 (Storage Settings)

### 用户和权限 (User Management)


### API接口和文档

## 📄 开源许可
EasyNetBak 基于 [Apache License 2.0](LICENSE) 开源发布。
在遵守 Apache-2.0 条款的前提下,任何个人或组织均可使用、复制、修改和分发本项目,包括将其用于商业用途。
再分发本项目或其衍生版本时,请按照 Apache-2.0 的要求:
- 向接收者提供一份 Apache-2.0 许可证;
- 在修改过的文件中保留明确的修改说明;
- 保留适用的版权、专利、商标和署名声明;
- 按照 Apache-2.0 第 4 条的要求保留本项目 `NOTICE` 文件中的适用内容。
### 名称与标识
Apache-2.0 不授予 EasyNetBak 名称、Logo 或其他项目标识的商标使用权。
在说明软件来源、引用项目名称以及按 `NOTICE` 要求进行合理署名时,可以合理使用 EasyNetBak 名称;未经授权,不得使用 EasyNetBak 名称或标识暗示其产品、服务或衍生版本获得本项目官方认证、授权或背书。
## ⚠️ 安全与责任提示
本项目按照 Apache-2.0 以“原样”提供,不提供任何明示或暗示的担保。许可证中的免责声明与责任限制以 `LICENSE` 为准。
EasyNetBak 涉及网络设备凭据、配置备份、WebShell、异步任务和远程存储。部署和使用前,请自行评估网络安全、数据保护和业务连续性风险,并特别注意:
- 优先使用仅具只读权限的设备账号;
- 不要将 `.env`、设备密码、Token、私钥或完整配置内容提交到代码仓库;
- 在隔离的测试环境完成验证后再接入生产网络;
- 妥善保管 `SECRET_KEY`、数据库和备份数据;
- 根据所在国家、地区及组织要求落实访问控制、审计和合规措施;
- 不得将本项目用于未经授权的访问、控制、渗透或破坏活动。
## 🤝 商业合作
EasyNetBak 的社区支持主要通过项目 Issues 提供,不承诺固定响应时间或服务等级。
如需企业私有化部署、新厂商或型号适配、数据迁移、安全加固、长期维护、技术支持、产品集成或其他商业合作,可通过项目公布的联系方式单独沟通。
商业服务和合作安排通过单独合同约定,不影响本项目依据 Apache-2.0 授予的开源权利。