网络工程师工具箱v1.6
Network Toolbox - 网络工程师工具箱
一个由本人开发的专为网络工程师设计的多功能工具箱,集成了批量配置生成、防火墙策略管理、巡检文件处理等常用工具,并支持插件扩展功能。
项目地址:https://gitee.com/tianxiang1996/network-toolbox
✨ 主要功能
🔧 核心工具
- 批量配置生成工具 - 基于Excel表格和Jinja2模板批量生成网络设备配置
- 防火墙策略生成工具 - 将Excel表格转换为防火墙策略配置文件
- 巡检信息合并工具 - 合并特定格式的巡检文件,便于统一分析
🔌 插件系统
- 可扩展架构 - 支持动态加载插件,扩展工具功能
- 插件管理 - 图形化插件管理界面,支持插件的启用/禁用
- 标准接口 - 提供统一的插件开发接口,便于第三方开发
📊 其他特性
- 现代化UI - 基于PySide6的美观界面
- 进度显示 - 实时显示任务执行进度
- 多平台支持 - 支持Windows、macOS等平台
🚀 快速开始
下载预编译版本
下载对应平台的预编译版本:
- Windows: NEToolbox_windows_amd64_v1.6.zip
- macOS: NEToolbox_macos_arm64_v1.6.dmg
源码运行
1 |
|
📖 使用说明
批量配置生成工具
工具概述
一个基于 Jinja2 模板引擎 的文本生成工具,通过读取Excel表格数据和自定义模板,批量生成网络设备配置脚本、文档或其他格式化文本文件。
功能特性
- ✅ 支持 Excel (.xlsx/.xls) 文件读取
- ✅ 基于 Jinja2 模板引擎,功能强大
- ✅ 内置 IP 地址计算插件
- ✅ 支持批量文件生成
- ✅ 支持单文件合并输出
- ✅ 自定义文件命名规则
- ✅ 支持模板循环和条件判断
使用说明
基本操作流程
- 准备Excel文件: 创建带表头的Excel表格,表头将作为模板变量
- 编写模板文件: 使用Jinja2语法编写.txt格式的模板文件
- 选择输出目录: 工具会自动创建
output
文件夹存放生成的文件 - 配置生成选项: 根据需要选择文件命名和输出方式
- 执行生成: 点击生成按钮,工具会逐行处理Excel数据
配置选项说明
选项 | 说明 | 默认行为 |
---|---|---|
XLSX文件 | 选择Excel数据源文件 | 支持.xlsx和.xls格式,推荐使用.xlsx |
模板文件 | 选择Jinja2模板文件 | 必须是.txt格式 |
输出目录 | 指定文件输出位置 | 自动创建output子目录 |
文件前缀 | 自定义文件命名列 | 默认使用第一列作为文件名 |
输出到单个文件 | 合并所有输出到一个文件 | 默认为每行数据生成单独文件 |
快速入门示例
示例数据准备
Excel文件 (ip.xlsx)
设备名及标签 | 带外IP | 带外网关 | 接口IP | 位置 |
---|---|---|---|---|
SW1 | 192.168.10.1 | 192.168.10.254 | 172.16.31.1 | 东 |
SW2 | 192.168.10.2 | 192.168.10.254 | 172.16.31.5 | 东 |
SW3 | 192.168.10.3 | 192.168.10.254 | 172.16.31.9 | 东 |
SW4 | 192.168.10.4 | 192.168.10.254 | 172.16.31.13 | 西 |
模板文件示例
模板文件 (temp.txt)
1 |
|
生成结果
输出文件结构
1 |
|
生成的配置文件 (SW1_line2.txt)
1 |
|
高级功能
1. 自定义文件命名
默认使用Excel第一列作为文件名,可通过”文件前缀”选项指定其他列。
示例: 指定”带外IP”作为文件名
1 |
|
2. 单文件输出模式
勾选”输出到单个文件”选项,所有生成内容合并到output.txt
文件中。
模板示例:
1 |
|
输出结果 (output.txt):
1 |
|
3. 模板循环功能
使用Jinja2的for循环语法处理重复配置。
模板示例:
1 |
|
输出效果:
1 |
|
IP地址计算插件
插件语法
1 |
|
支持的操作类型
1. 地址运算
操作 | 语法 | 说明 | 示例 |
---|---|---|---|
地址加法 | "+数值" |
IP地址增加指定数值 | {% ip "192.168.1.1", "+1" %} → 192.168.1.2 |
地址减法 | "-数值" |
IP地址减少指定数值 | {% ip "192.168.1.10", "-5" %} → 192.168.1.5 |
IPv6运算 | "+/-数值" |
支持IPv6地址运算 | {% ip "2001::1", "+1" %} → 2001::2 |
2. 网络地址计算
操作 | 语法 | 说明 | 示例 |
---|---|---|---|
CIDR掩码 | "netmask_位数" |
获取网络地址 | {% ip "192.168.1.100", "netmask_24" %} → 192.168.1.0 |
点分掩码 | "netmask_掩码" |
获取网络地址 | {% ip "192.168.1.100", "netmask_255.255.255.0" %} → 192.168.1.0 |
IPv6网络 | "netmask_位数" |
IPv6网络地址 | {% ip "2001::100", "netmask_64" %} → 2001:: |
3. 地址与掩码组合
操作 | 语法 | 说明 | 示例 |
---|---|---|---|
CIDR格式 | 位数 |
返回地址+点分掩码 | {% ip "192.168.1.1", 24 %} → 192.168.1.1 255.255.255.0 |
位数格式 | "掩码" |
返回地址+CIDR位数 | {% ip "192.168.1.1", "255.255.255.0" %} → 192.168.1.1 24 |
IPv6格式 | 位数 |
IPv6地址+前缀长度 | {% ip "2001::1", 64 %} → 2001::1 64 |
4. 特殊操作
操作 | 语法 | 说明 | 示例 |
---|---|---|---|
原样返回 | 无参数或其他值 | 直接返回原地址 | {% ip "192.168.1.1" %} → 192.168.1.1 |
错误处理
错误类型 | 返回值 | 触发条件 |
---|---|---|
地址格式错误 | IPERROR |
IP地址格式不正确 |
掩码格式错误 | NETMASKERROR |
子网掩码格式不正确 |
IP插件使用示例
1 |
|
Jinja2模板语法参考
基本语法
语法 | 用途 | 示例 |
---|---|---|
{{ 变量名 }} |
输出变量值 | {{ 设备名及标签 }} |
{% 控制语句 %} |
控制流程 | {% if 条件 %}...{% endif %} |
`` | 模板注释 | `` |
条件判断
1 |
|
循环语句
1 |
|
过滤器
1 |
|
使用建议
✅ 最佳实践
Excel准备
- 使用清晰的表头名称作为模板变量
- 避免表头中包含特殊字符和空格
- 数据格式保持一致性
模板设计
- 使用有意义的变量名
- 添加适当的注释说明
- 测试模板的各种数据情况
文件管理
- 为不同用途创建专门的模板
- 保持模板文件的版本控制
- 定期备份重要模板
性能优化
- 大量数据时考虑分批处理
- 复杂模板先用小数据集测试
⚠️ 注意事项
- 文件格式: 确保Excel文件格式正确,推荐使用.xlsx格式
- 编码问题: 模板文件使用UTF-8或GBK编码,避免中文乱码
- 变量命名: Excel表头名称直接作为模板变量,注意命名规范
- 路径问题: 避免文件路径包含特殊字符
- 数据验证: 生成前检查Excel数据的完整性和正确性
故障排除
常见问题
问题 | 可能原因 | 解决方案 |
---|---|---|
模板变量未替换 | 表头名称与模板变量不匹配 | 检查Excel表头与模板变量名称 |
生成文件为空 | 模板语法错误 | 检查Jinja2语法是否正确 |
IP计算返回错误 | IP地址格式不正确 | 验证Excel中IP地址格式 |
文件名包含非法字符 | 文件名列包含特殊字符 | 使用其他列作为文件名或清理数据 |
中文显示乱码 | 编码问题 | 确保模板文件使用UTF-8或GBK编码 |
调试技巧
- 简化测试: 先用简单模板和少量数据测试
- 逐步复杂: 逐步添加复杂的模板逻辑
- 变量检查: 在模板中输出变量值进行调试
- 语法验证: 使用在线Jinja2语法检查工具
扩展资源
- 📖 Jinja2官方文档
- 📖 模板设计者文档
- 💡 更多模板示例和技巧,请参考项目文档或社区分享
如需技术支持或功能建议,请联系我或提交Issue。
防火墙策略生成工具 (FWP)
工具概述
本工具可以根据Excel模板信息自动生成防火墙策略配置,目前支持 H3C Comware V7 安全策略。
功能特性
- ✅ 支持批量策略生成
- ✅ 支持对象组自动分析
- ✅ 支持地址组和应用组配置
- ✅ 支持自定义命令扩展
- ✅ 提供Excel模板导出功能
配置选项
输出对象组
分析表格中的地址组和应用组信息,自动生成对象组配置。
强制使用对象组
不分析策略中的地址网段信息,按照原始格式生成对象组策略。
模板格式说明
1. 策略模板格式
可通过工具中的 “导出表格模版” 按钮获取标准模板。
源区域 | 目的区域 | 策略名称 | 源地址 | 目的地址 | 源端口 | 目的端口 | 动作 | 描述 | 自定义命令 |
---|---|---|---|---|---|---|---|---|---|
Trust | Untrust | rule-0 | 192.168.1.1,192.168.2.0/24 | server | port1 | http,ping,4567 | permit,log,count | 示例 |
字段说明
字段 | 说明 | 格式要求 | 示例 |
---|---|---|---|
源区域 | 源安全域 | 多个用英文逗号分隔 | Trust,DMZ |
目的区域 | 目的安全域 | 多个用英文逗号分隔 | Untrust,Internet |
策略名称 | 策略规则名称 | 必填,支持字母、数字、中文 ⚠️ 建议避免使用中文 |
rule-web-access |
源地址 | 源IP地址或地址组 | 支持单IP、网段、地址组 多个用英文逗号分隔 |
192.168.1.1,192.168.2.0/24,server-group |
目的地址 | 目的IP地址或地址组 | 支持单IP、网段、地址组 多个用英文逗号分隔 |
10.0.0.1/32,web-servers |
源端口 | 源端口或应用组 | 支持单端口、端口范围、应用组 未指定协议默认TCP |
tcp:80,443,8080-8090,web-ports |
目的端口 | 目的端口或应用组 | 支持单端口、端口范围、应用组 未指定协议默认TCP |
http,https,tcp:3306,mysql-group |
动作 | 策略动作 | 多个动作用英文逗号分隔 | permit,log,count |
描述 | 策略描述 | 支持字母、数字、中文 ⚠️ 建议避免使用中文 |
Allow web access |
自定义命令 | 额外配置命令 | 英文逗号表示换行 | rule move 1 before 10,rule enable |
动作类型
动作 | 说明 | 可选值 |
---|---|---|
允许 | 允许流量通过 | pass , permit |
拒绝 | 拒绝流量通过 | drop , deny |
日志 | 记录日志 | log |
统计 | 统计流量 | count |
默认动作: 如未指定,默认为拒绝 (
deny
)
2. 地址组模板格式
名称 | 地址段 | 安全域 |
---|---|---|
server | 192.168.3.0/24 | Untrust |
web-servers | 10.0.1.0/24,10.0.2.0/24 | DMZ |
字段说明
字段 | 说明 | 格式要求 | 示例 |
---|---|---|---|
名称 | 地址组名称 | 必填,支持字母、数字、中文 ⚠️ 建议避免使用中文 |
web-servers |
地址段 | IP地址或网段 | 支持单IP、网段、其他地址组 多个用英文逗号分隔 |
192.168.1.0/24,10.0.0.1 |
安全域 | 所属安全域 | 一个地址组只能属于一个安全域 | Trust |
3. 应用组模板格式
名称 | 源端口 | 目的端口 |
---|---|---|
port1 | 30000-35000 | |
web-services | tcp:80,tcp:443 |
字段说明
字段 | 说明 | 格式要求 | 示例 |
---|---|---|---|
名称 | 应用组名称 | 必填,支持字母、数字、中文 ⚠️ 建议避免使用中文 |
web-services |
源端口 | 源端口范围 | 支持单端口、端口范围 未指定协议默认TCP |
tcp:80,443,8080-8090 |
目的端口 | 目的端口范围 | 支持单端口、端口范围 未指定协议默认TCP |
tcp:3306,udp:53 |
端口格式说明
支持的端口格式
格式 | 说明 | 示例 |
---|---|---|
端口号 |
单个端口,默认TCP | 80 , 443 |
协议:端口号 |
指定协议的单个端口 | tcp:80 , udp:53 |
端口范围 |
连续端口范围,默认TCP | 8080-8090 |
协议:端口范围 |
指定协议的端口范围 | tcp:8080-8090 |
预定义服务 |
系统预定义服务名 | http , https , ssh , ping |
常用预定义服务
服务名 | 协议 | 端口 | 说明 |
---|---|---|---|
http |
TCP | 80 | HTTP服务 |
https |
TCP | 443 | HTTPS服务 |
ssh |
TCP | 22 | SSH服务 |
telnet |
TCP | 23 | Telnet服务 |
ftp |
TCP | 21 | FTP服务 |
ping |
ICMP | - | ICMP Ping |
使用建议
✅ 最佳实践
- 命名规范: 使用英文字母、数字和连字符,避免特殊字符
- 策略描述: 提供清晰的策略用途说明
- 地址规划: 合理规划地址组,避免重复定义
- 端口管理: 使用应用组管理常用端口组合
- 测试验证: 生成配置后在测试环境验证
⚠️ 注意事项
- 编码问题: 由于终端软件编码限制,建议避免使用中文字符
- 策略顺序: 注意防火墙策略的匹配顺序,重要策略应放在前面
- 安全域: 确保地址组的安全域设置正确
- 端口协议: 明确指定端口协议,避免默认行为造成的配置错误
故障排除
常见问题
问题 | 原因 | 解决方案 |
---|---|---|
生成的配置有乱码 | 使用了中文字符 | 使用英文字符替代 |
策略不生效 | 策略顺序错误 | 调整策略在防火墙中的顺序 |
地址组配置错误 | 安全域设置错误 | 检查地址组的安全域配置 |
端口配置无效 | 端口格式错误 | 检查端口格式是否符合要求 |
如需更多帮助,请参考 H3C Comware V7 官方文档或联系技术支持。
🔄 版本历史
v1.6 (2025-06-15)
- 新增插件系统支持
- 重构代码架构
- 优化用户界面
- 增强错误处理
v1.5及以前版本
- 基础工具功能实现
- 批量配置生成
- 防火墙策略管理
💡 提示: 该说明由AI生成,如果您在使用过程中遇到问题,请查看相关文档或提交Issue获取帮助。
网络工程师工具箱v1.6
https://www.intx.work/posts/d39730bd.html