Skip to content

Repository files navigation

NetworkTools Logo

NetworkTools

基于 Nuxt 4Tauri 2 构建的网络工具集
网络分析与管理工具



🌟 主要功能

📡 IPv4 工具

  • 子网计算器 - 快速计算IPv4子网信息
  • 地址汇总 - 批量汇总和优化IPv4地址段
  • 公网IP查询 - 获取当前公网IP地址

🌐 IPv6 工具

  • IPv6子网计算 - 支持IPv6地址段分析
  • 地址格式验证 - IPv6地址格式检查

🌍 IP地理位置

  • IP地理位置查询 - 精确的IP地址地理位置信息
  • 数据库信息 - 支持GeoIP数据库查询
  • 调试工具 - IP查询调试功能

🔧 NAT工具

  • NAT配置解析 - 网络地址转换配置分析
  • 规则验证 - NAT规则语法检查

🛠️ 技术栈

  • 前端框架: Nuxt v4 + NuxtUI v4
  • 样式框架: TailwindCSS v4
  • 桌面应用: Tauri v2
  • 编程语言: TypeScript + Rust
  • 代码质量: ESLint + Prettier
  • 版本管理: bumpp (自动化版本同步)
  • 自动化: Tauri函数自动导入

📋 系统要求

运行环境

  • 操作系统: Windows 10+, macOS 10.15+, Linux (Ubuntu 18.04+)
  • Rust环境: 1.70+ (参考 Tauri prerequisites)
  • 包管理器: bun (强制要求,如需更换请更新 package.jsontauri.conf.json)

开发环境

  • Node.js: 18+
  • 内存: 至少 4GB RAM
  • 存储: 2GB 可用空间

🚀 快速开始

1. 环境准备

# 安装 Rust (如果尚未安装)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 安装 bun
curl -fsSL https://bun.sh/install | bash

2. 项目设置

# 克隆项目
git clone https://github.com/mam15mon/networktools.git
cd networktools

# 安装依赖
bun install

# 启动开发服务器
bun run tauri:dev

这将启动 Nuxt 前端(端口 3000)并打开 Tauri 桌面应用。

📦 构建部署

生产构建

# 构建优化版本
bun run tauri:build

调试构建

# 构建调试版本(包含开发者工具)
bun run tauri:build:debug

构建产物将生成在 src-tauri/target 目录中:

构建产物详情

  • Windows 平台:
    • src-tauri/target/release/networktools.exe - 单文件可执行程序
    • src-tauri/target/release/bundle/msi/*.msi - Windows Installer 安装包
  • macOS 平台:
    • src-tauri/target/release/bundle/macos/*.app - macOS 应用包
    • src-tauri/target/release/bundle/dmg/*.dmg - DMG 镜像文件
  • Linux 平台:
    • src-tauri/target/release/bundle/deb/*.deb - Debian 包
    • src-tauri/target/release/bundle/rpm/*.rpm - Red Hat 包
    • src-tauri/target/release/bundle/appimage/*.AppImage - AppImage 便携版

🔄 CI/CD

项目配置了完整的GitHub Actions工作流:

工作流文件

  • .github/workflows/ci.yml - 持续集成,包含测试和构建
  • .github/workflows/release.yml - 自动发布,支持多平台构建
  • .github/workflows/code-quality.yml - 代码质量检查

CI流程

  1. 后端测试 - Rust单元测试、格式检查、代码检查
  2. 前端测试 - TypeScript类型检查、ESLint、构建测试
  3. 多平台构建 - Windows、macOS、Linux应用构建
  4. 代码质量 - 安全审计、依赖检查、代码规范

发布流程

  • 推送标签(如v1.0.0)自动触发发布
  • 自动安装 WiX Toolset(Windows)用于生成 MSI 安装包
  • tauri-action 通过 uploadPlainBinary: true 配置自动上传:
    • Windows: 单文件 EXE + MSI 安装包
    • macOS: 单文件 APP + DMG 镜像
    • Linux: 单文件二进制 + DEB/RPM 包 + AppImage
  • GitHub Release自动创建,包含所有平台的构建产物和单文件可执行程序

必需的Secrets

  • TAURI_PRIVATE_KEY - Tauri签名私钥
  • TAURI_KEY_PASSWORD - 私钥密码

📋 版本管理

项目使用 bumpp 实现自动化版本管理,确保所有配置文件中的版本号保持同步。

版本同步机制

通过 bump.config.ts 配置,bumpp 会同时更新以下三个文件:

  • package.json - 前端项目版本
  • src-tauri/Cargo.toml - Rust 后端版本
  • src-tauri/tauri.conf.json - Tauri 应用版本

版本管理命令

# 补丁版本升级 (0.1.0 → 0.1.1)
bun run bump patch

# 次版本升级 (0.1.0 → 0.2.0)
bun run bump minor

# 主版本升级 (0.1.0 → 1.0.0)
bun run bump major

# 指定版本
bun run bump 0.2.5

# 预发布版本
bun run bump prerelease

自动化流程

配置了 commit: true, tag: true, push: true,一次版本升级命令会自动完成:

  1. 版本更新 - 同步更新三个配置文件
  2. Git 提交 - 创建版本变更提交
  3. 标签创建 - 生成对应的 git tag
  4. 远程推送 - 推送提交和标签到远程仓库

发布触发

推送的标签会自动触发 GitHub Actions 发布工作流,生成多平台安装包并创建 GitHub Release。

🔧 配置说明

端口配置

  • 前端端口: 3000 (可在 nuxt.config.ts 中修改)
  • Tauri端口: 3001 (可在 tauri.conf.json 中修改)

权限配置

Tauri v2 需要在 src-tauri/capabilities/main.json 中配置权限:

  • 文件系统访问
  • 网络请求
  • 系统通知
  • 操作系统信息

Tauri插件

项目集成了以下 Tauri 插件:

  • tauri-plugin-shell - Shell命令执行
  • tauri-plugin-notification - 系统通知
  • tauri-plugin-os - 操作系统信息
  • tauri-plugin-fs - 文件系统操作
  • tauri-plugin-store - 本地数据存储
  • tauri-plugin-dialog - 对话框

📁 项目结构

networktools/
├── app/                           # Nuxt 前端代码
│   ├── components/               # Vue 组件
│   │   ├── Config/              # 配置相关组件
│   │   ├── Design/              # 设计组件
│   │   ├── Layout/              # 布局组件
│   │   ├── Site/                # 站点组件
│   │   └── template-batch/      # 模板批量组件
│   ├── composables/             # Vue 组合式函数
│   ├── layouts/                 # 布局文件
│   ├── modules/                 # Nuxt 模块
│   ├── pages/                   # 页面路由
│   │   ├── nat-batch/          # NAT 批量生成页面
│   │   ├── ipv4-subnet.vue     # IPv4 子网计算
│   │   ├── ipv4-summary.vue    # IPv4 地址汇总
│   │   ├── ipv6-subnet.vue     # IPv6 子网计算
│   │   ├── ip-location.vue     # IP 地理位置查询
│   │   ├── nat-parser.vue      # NAT 配置解析
│   │   ├── template-batch/     # 模板批量生成
│   │   └── vsr-batch.vue       # VSR 批量配置
│   ├── app.config.ts           # 应用配置
│   └── app.vue                 # 根组件
├── src-tauri/                    # Tauri 后端代码
│   ├── src/                    # Rust 源码
│   │   ├── ip_location.rs      # IP 地理位置查询
│   │   ├── ipv4_subnet.rs      # IPv4 子网计算
│   │   ├── ipv4_summary.rs     # IPv4 地址汇总
│   │   ├── ipv6_subnet.rs      # IPv6 子网计算
│   │   ├── isp_manager.rs      # ISP 管理器
│   │   ├── nat_batch_generator.rs # NAT 批量生成
│   │   ├── nat_parser.rs       # NAT 配置解析
│   │   ├── template_batch.rs   # 模板批量生成
│   │   ├── vsr_batch.rs        # VSR 批量配置
│   │   ├── lib.rs              # Tauri 命令注册
│   │   └── main.rs             # 应用入口
│   ├── Cargo.toml             # Rust 依赖配置
│   └── tauri.conf.json        # Tauri 应用配置
├── types/                       # TypeScript 类型定义
│   ├── nat-batch.ts           # NAT 批量类型
│   └── template-batch.ts      # 模板批量类型
├── package.json               # Node.js 依赖配置
├── nuxt.config.ts             # Nuxt 框架配置
└── README.md                  # 项目文档

🧪 开发指南

添加新的网络工具

  1. src-tauri/src/ 中创建新的 Rust 模块
  2. lib.rs 中注册 Tauri 命令
  3. 在前端 app/ 中创建对应的 UI 组件
  4. 更新 app/modules/tauri.ts 以支持新的 Tauri 函数自动导入

代码规范

  • 遵循 Rust 官方代码风格
  • TypeScript 严格模式
  • ESLint + Prettier 自动格式化
  • 提交前必须通过 linting 检查

🐛 故障排除

常见问题

Q: 构建失败提示 Rust 版本过低 A: 请运行 rustup update 更新 Rust 到最新版本

Q: 前端热重载不工作 A: 检查端口 3000 是否被占用,或修改 nuxt.config.ts 中的端口配置

Q: Tauri 窗口无法打开 A: 确保系统已安装必要的图形库依赖,参考 Tauri 官方文档

Q: IP地理位置查询不准确 A: 需要更新 GeoIP 数据库,或检查网络连接

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送分支: git push origin feature/amazing-feature
  5. 提交 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🙏 致谢

  • Nuxt - Vue.js 框架
  • Tauri - 轻量级桌面应用框架
  • NuxtUI - 优雅的 UI 组件库
  • TailwindCSS - 实用优先的 CSS 框架

Made with ❤️ by mam15mon

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages