基于 Nuxt 4 和 Tauri 2 构建的网络工具集
网络分析与管理工具
- 子网计算器 - 快速计算IPv4子网信息
- 地址汇总 - 批量汇总和优化IPv4地址段
- 公网IP查询 - 获取当前公网IP地址
- IPv6子网计算 - 支持IPv6地址段分析
- 地址格式验证 - IPv6地址格式检查
- IP地理位置查询 - 精确的IP地址地理位置信息
- 数据库信息 - 支持GeoIP数据库查询
- 调试工具 - IP查询调试功能
- 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.json和tauri.conf.json)
- Node.js: 18+
- 内存: 至少 4GB RAM
- 存储: 2GB 可用空间
# 安装 Rust (如果尚未安装)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 安装 bun
curl -fsSL https://bun.sh/install | bash# 克隆项目
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 便携版
项目配置了完整的GitHub Actions工作流:
.github/workflows/ci.yml- 持续集成,包含测试和构建.github/workflows/release.yml- 自动发布,支持多平台构建.github/workflows/code-quality.yml- 代码质量检查
- 后端测试 - Rust单元测试、格式检查、代码检查
- 前端测试 - TypeScript类型检查、ESLint、构建测试
- 多平台构建 - Windows、macOS、Linux应用构建
- 代码质量 - 安全审计、依赖检查、代码规范
- 推送标签(如
v1.0.0)自动触发发布 - 自动安装 WiX Toolset(Windows)用于生成 MSI 安装包
- tauri-action 通过
uploadPlainBinary: true配置自动上传:- Windows: 单文件 EXE + MSI 安装包
- macOS: 单文件 APP + DMG 镜像
- Linux: 单文件二进制 + DEB/RPM 包 + AppImage
- GitHub Release自动创建,包含所有平台的构建产物和单文件可执行程序
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,一次版本升级命令会自动完成:
- 版本更新 - 同步更新三个配置文件
- Git 提交 - 创建版本变更提交
- 标签创建 - 生成对应的 git tag
- 远程推送 - 推送提交和标签到远程仓库
推送的标签会自动触发 GitHub Actions 发布工作流,生成多平台安装包并创建 GitHub Release。
- 前端端口: 3000 (可在
nuxt.config.ts中修改) - Tauri端口: 3001 (可在
tauri.conf.json中修改)
Tauri v2 需要在 src-tauri/capabilities/main.json 中配置权限:
- 文件系统访问
- 网络请求
- 系统通知
- 操作系统信息
项目集成了以下 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 # 项目文档
- 在
src-tauri/src/中创建新的 Rust 模块 - 在
lib.rs中注册 Tauri 命令 - 在前端
app/中创建对应的 UI 组件 - 更新
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!
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送分支:
git push origin feature/amazing-feature - 提交 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- Nuxt - Vue.js 框架
- Tauri - 轻量级桌面应用框架
- NuxtUI - 优雅的 UI 组件库
- TailwindCSS - 实用优先的 CSS 框架
Made with ❤️ by mam15mon
