# netops
**Repository Path**: qingfengljh/tomato-netops
## Basic Information
- **Project Name**: netops
- **Description**: 园区网络实施平台 — 从设备开箱到项目交付,覆盖网络安全改造的完整实施生命周期。支持浏览器直连 Console 初始化交换机,自动化完成 VLAN 迁移、802.1X 准入、安全策略部署与回滚。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-29
- **Last Updated**: 2026-06-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Tomato NetOps
**园区网络实施平台** — 从设备开箱到项目交付,覆盖园区/中小企业网络安全改造的完整实施生命周期。
> **开源声明**:本项目源码以 MIT 协议开源,包含完整的安装和部署文档。如果你希望获得**预构建的离线安装包**(含 Docker 镜像,无需本地编译环境)或需要**商业技术支持**,请联系 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn)。
---
## 解决什么问题
企业网络安全改造项目中,规划只占 20% 的工作量,**实施占 80%**。
几十台交换机逐台 Console 初始化,防火墙策略反复调试推送,802.1X 上线后停电一次就要手动恢复几十台设备的认证状态,VLAN 从旧网络迁移到新规划要一台台改……这些重复、易错、耗时的工作,是每个网络工程师的痛点。
Tomato NetOps 不是又一个网管软件或监控平台——它是一个**实施过程管理工具**,把网络改造项目中 80% 的重复劳动自动化。
## 核心能力
| 能力 | 说明 |
|------|------|
| **浏览器 Console 初始化** | 通过 Web Serial API 直连设备 Console 口,自动检测厂商型号和设备状态,一键完成基础配置。无需 PuTTY / SecureCRT |
| **两阶段设备部署** | Console 阶段完成基础配置 → SSH 阶段完成高级配置。网络通时一气呵成,不通时自动分步。支持离线初始化 |
| **三阶段安全策略** | 全开放 → 基线自动生成 → 精细化。矩阵视图直观理解区域间访问关系,全量推送/回滚 |
| **渐进式 VLAN 迁移** | 初始化时保留旧 VLAN 不中断业务,实施推进中一键收紧到规划目标,差异对比可视化 |
| **802.1X 全流程** | RADIUS 配置下发、批量启用/禁用、停电后批量重认证、NPS 应急全网开关 |
| **临时上网 TTL 回滚** | 端口临时放行上网,到期自动回滚。后台引擎持续对账,回滚失败自动重试 |
| **可视化端口监控** | 模拟真实交换机面板,实时展示连接状态、802.1X 认证状态、VLAN 分配 |
| **配置管理** | 端口配置模板、格式刷、配置漂移检测、基线设置与恢复、ZIP 批量导入导出 |
## 界面预览
## 安全策略三阶段模型
```
阶段一:初始化 阶段二:基线生成 阶段三:精细化
┌─────────────────┐ ┌─────────────────────┐ ┌──────────────────────┐
│ permit_all │ │ 根据区域属性自动生成 │ │ 克隆基线 → 手动添加 │
│ 确保业务不中断 │ → │ 互联网/内网/管理隔离 │ → │ 跨部门、特定服务规则 │
│ (系统内置) │ │ (只读系统策略集) │ │ 全量推送到防火墙 │
└─────────────────┘ └─────────────────────┘ └──────────────────────┘
```
基线策略在**安全区域**层面描述意图(如"办公区允许访问互联网"),一个区域可包含多个部门 VLAN。下发到防火墙时自动展开为设备命令。策略集与具体防火墙设备解耦,支持未来适配不同厂商设备。
## 网络规划驱动
系统以网络规划为核心数据源,所有功能围绕规划数据展开:
```
网络规划(区域 + VLAN)
├── 802.1X 策略(区域定义降级/失败 VLAN)
├── 安全策略(区域属性驱动基线生成)
├── 端口配置(区域关联默认 VLAN)
├── VLAN 收紧(规划目标 vs 设备现状)
└── 防火墙初始化(区域 → 安全 Zone + 子接口)
```
## 支持的设备
| 类型 | 厂商 | 型号 |
|------|------|------|
| 接入层交换机 | 华为 | S310-24T4X / S310-48T4X |
| 接入层交换机 | 锐捷 | NBS5200 系列 |
| 汇聚层交换机 | 华为 / 锐捷 | 支持 SSH 的三层交换机 |
| 防火墙 | 华为 | USG6000F 系列 |
| 无线 AC | 华为 / 锐捷 | 支持 SSH 的 AC 控制器 |
架构上预留了设备驱动抽象层,新增厂商/型号只需实现对应的命令生成器。
## 技术栈
| 层 | 技术 |
|----|------|
| 前端 | Vue 3 + TypeScript + Element Plus + Vite |
| 后端 | Python FastAPI + SQLite |
| 终端 | xterm.js(Web SSH)、Web Serial API(Console) |
| 拓扑 | D3.js 力导向图 |
| 安全 | RSA + Fernet 加密、JWT 认证 |
| 部署 | Docker / Windows 原生 |
## 快速开始
### 方式一:源码部署(开源,需要 Node.js + Docker 环境)
适合有开发能力的技术人员,或希望自定义修改的用户。
```bash
# 1. 克隆源码
git clone https://github.com/your-org/tomato-netops.git
cd itsm
# 2. 构建并打包(本地需要 Node.js + Docker)
./package.sh
# 3. 将生成的离线包部署到目标机
cd dist/tomato-netops-
bash ./deploy.sh
```
详细步骤参考 `docs/管理员手册.md`。
### 方式二:离线安装包(商业交付,开箱即用)
适合施工团队或甲方 IT,无需本地编译环境,拿到即可部署。
预构建的离线安装包包含:
- 已构建的前端静态文件
- 已导出的 Docker 后端镜像
- 一键部署脚本
**获取方式**:请联系 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) 获取适用于您环境的离线安装包。
### Windows 部署
```powershell
cd deploy-windows
.\install.bat
.\start.bat
```
### 开发环境
```bash
# 后端
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python main.py
# 前端
cd frontend
pnpm install
pnpm dev
```
## 项目结构
```
├── backend/ # FastAPI 后端
│ ├── routers/ # API 路由(22 个模块,200+ 端点)
│ ├── drivers/ # 设备驱动(华为/锐捷命令生成)
│ ├── services/ # 业务服务层(策略生成、端口维护等)
│ ├── models/ # Pydantic 数据模型
│ ├── core/ # 认证、加密、SSH 连接管理
│ ├── config_generator.py # 防火墙配置生成器
│ └── database.py # SQLite 数据层
├── frontend/ # Vue 3 前端
│ └── src/
│ ├── components/ # 21 个功能组件
│ ├── composables/ # 可复用逻辑(设备驱动、离线存储等)
│ ├── pages/ # 18 个页面
│ ├── stores/ # Pinia 状态管理
│ └── router/ # 路由定义
├── deploy-docker/ # Docker Compose 部署
└── deploy-windows/ # Windows 一键部署脚本
```
## 功能页面一览
| 页面 | 路径 | 说明 |
|------|------|------|
| 首页仪表盘 | `/` | 设备统计、在线状态、快捷入口 |
| 网络规划 | `/vlans` | 区域 + VLAN 规划,数据校验与锁定 |
| 初始化向导 | `/init` | Console + SSH 两阶段设备初始化 |
| 交换机管理 | `/switches` | 设备列表、配置备份、密码管理 |
| 防火墙管理 | `/firewalls` | 设备列表、WAN 配置、LACP、策略绑定 |
| 安全策略 | `/security-policy` | 矩阵/列表/对象三视图,策略推送 |
| 端口状态 | `/ports` | 可视化面板、802.1X 批量操作 |
| 802.1X 配置 | `/dot1x` | RADIUS 配置、区域策略、批量下发 |
| 重认证管理 | `/reauth` | 停电恢复、策略变更后重认证 |
| 临时上网 | `/temp-access` | TTL 工单、自动回滚 |
| 无线管理 | `/wireless` | AC/AP 管理、SSID 配置集 |
| Console 终端 | `/console` | 浏览器内串口终端 |
| Web SSH | `/ssh` | 浏览器内 SSH 终端 |
| 网络拓扑 | `/topology` | 自动可视化网络连接关系 |
| 自定义命令 | `/custom` | 对设备执行自定义 CLI 命令 |
| 实施报告 | `/reports` | 项目报告生成、NPS 脚本导出 |
| 系统管理 | `/system` | 配置、数据库备份恢复、审计日志 |
## 安全设计
- 设备密码使用 Fernet 对称加密存储
- 前端到后端的密码传输使用 RSA 非对称加密
- JWT Token 认证,存储在 sessionStorage
- 首次登录强制修改默认密码
- 部署模式 / 日常模式切换,防止误操作
- 策略推送时自动附加管理访问保护规则
- 系统策略集只读保护,绑定时自动克隆
## 适用场景
- 企业网络安全等保改造项目
- 新建网络的批量设备部署
- 网络架构升级迁移(VLAN 重新规划)
- 802.1X 网络准入控制部署
- 日常运维中的端口管理和故障排查
## 浏览器要求
- Google Chrome 或 Microsoft Edge(最新版)
- Console 终端功能依赖 Web Serial API,仅 Chrome / Edge 支持
## 社区支持 vs 商业支持
| 支持类型 | 渠道 | 说明 |
|---------|------|------|
| **技术讨论** | GitHub / GitLab Issue | bug 报告、功能建议、使用交流。按 best effort 响应 |
| **离线安装包** | 邮件 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) | 预构建 Docker 镜像,无需本地编译环境 |
| **商业技术支持** | 邮件 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) | 定制化开发、紧急修复、现场部署支持、培训服务 |
| **设备适配定制** | 邮件 [support@tomatoinfo.cn](mailto:support@tomatoinfo.cn) | 新增厂商/型号支持、特殊网络环境适配 |
## 许可证
[MIT License](LICENSE)
---
*Tomato NetOps 源自真实的企业网络安全改造项目实践,解决的是工程师在实施现场遇到的真实问题。*