恩兔酱是一个可爱又实用的 N2N VPN 图形界面客户端,基于 Rust 和 Tauri 2 构建。 让复杂的网络配置变得简单有趣,就像有位贴心的女仆帮您打理一切~ 介绍 blog 在这里呢!
- 🎀 轻盈灵活 - 使用 Tauri 框架,可执行文件不到 10MB,不占主人的空间
- 🌍 跨平台待命 - Windows 和 Linux 都能为主人服务
- 💾 记忆力超好 - 主人的设置会自动保存,下次不用重新配置
- 🗣️ Let's speak English! - Support English, adapt to the needs of different masters
- 后端: Rust + Tauri 2.x
- 前端: React 18 + TypeScript + TailwindCSS
- 构建工具: Vite
- N2N 集成: 进程调用方式
- Node.js 18+ 和 npm
- Rust 1.70+
- N2N edge 可执行文件
# 安装前端依赖
npm install
# Rust 依赖会在构建时自动安装# 启动开发服务器
npm run tauri dev# 构建应用
npm run tauri build生成的安装包位于 src-tauri/target/release/bundle/ 目录。
GitHub Actions 会在推送 tag 时触发构建(仅 Windows + Linux),发布产物文件名为 "[name]_[version]_[platform]_[arch]_[bundle]_lite[ext]",lite 用来标识不包含 bin/edge。
运行时请在设置里填写 edge_path,或提前把 edge 放进系统 PATH。
git tag v0.1.0
git push origin v0.1.0n2n-maid/
├── src/ # 前端源代码
│ ├── components/ # React 组件
│ │ ├── LogViewer.tsx # 日志查看器
│ │ └── Settings.tsx # 设置面板
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 前端入口
│ ├── i18n.ts # 国际化配置
│ ├── types.ts # TypeScript 类型定义
│ └── styles.css # 全局样式
├── src-tauri/ # Tauri/Rust 后端(需要创建)
│ └── src/
│ ├── main.rs # 主程序入口
│ ├── config.rs # 配置管理
│ ├── n2n_process.rs # N2N 进程管理
│ └── tray.rs # 系统托盘
│ └── icons/ # 应用图标(由 `tauri icon` 生成)
├── bin/ # N2N edge 二进制文件
│ └── README.md
├── src-tauri/tauri.conf.json # Tauri 配置
├── package.json # 前端依赖配置
├── Cargo.toml # Rust 依赖配置
└── README.md # 本文件
将 N2N edge 可执行文件放置在 bin/ 目录:
- Windows:
bin/edge.exe - Linux/macOS:
bin/edge
从 N2N binaries 下载最新版本。或从 N2N 官方仓库 自行编译。
- TAP-Windows 适配器:Windows 上创建虚拟网卡通常需要 TAP 驱动。恩兔酱启动时会检查是否存在 TAP-Windows(常见为
tap0901),缺失则弹窗提示安装/下载。 - 打包内置安装包:把
tap-windows.exe或tap-windows.msi放进bin/,构建安装包时会随应用一起打包,恩兔就能直接帮主人拉起安装程序。 - UAC(管理员权限):生产构建已设置
requireAdministrator,每次启动都会弹 UAC,这是 Windows 上最稳定的“开机就能创建网卡”的方案。
应用图标使用 tauri icon 生成的产物,默认输出在 src-tauri/icons/。
如果要重新生成,建议把源图标放在 src-tauri/icons/icon-source.png,然后运行:
npm install -g @tauri-apps/cli
tauri icon src-tauri/icons/icon-source.png配置文件自动保存在:
- Windows:
%APPDATA%/n2n-maid/config.toml - Linux:
~/.config/n2n-maid/config.toml
- 启动应用,恩兔酱会立刻出现在主人面前
- 点击「📋 服务准备」按钮
- 填写工作清单(必填项):
- 🏢 总部地址(格式:
host:port,如vpn.example.com:7777) - 🔑 工作暗号
- 👤 我的工号
- 🔐 保密密语(可选,但恩兔建议设置哦)
- 🏢 总部地址(格式:
- 选择地址分配方式(自动分配或手动指定)
- 点击「确认」,恩兔会记住主人的指示
- 返回主界面,开始!
恩兔会在系统托盘静静守候,右键菜单提供:
- 召唤主窗口
- 开始打扫/休息一下
- 让恩兔下班
N2N 通常需要 root 权限来创建 TAP 设备。在 Linux 上有两种方式运行:
sudo ./n2n-maidsudo setcap cap_net_admin+ep ./bin/edge然后普通用户运行应用。
- 检查 Supernode 地址是否正确
- 检查防火墙是否阻止了 N2N 端口
- 查看日志输出,寻找错误信息
- 确认 edge 二进制文件有执行权限
- 确认
bin/目录下有正确的 edge 文件 - 或在「高级设置」中指定完整路径
- 阶段一:MVP(最小可行性产品)
- Tauri + React + Tailwind 框架
- 基本 UI 和连接功能
- 日志查看器
- 阶段二:用户体验优化
- 配置持久化
- 系统托盘支持
- 国际化(中英文)
- 自动重连机制
- 阶段三:Windows 深度适配
- TAP 驱动检测(启动时提示并引导安装)
- UAC 权限(requireAdministrator)
- 安装包构建(MSI/EXE)
- 阶段四:高级功能
- 多实例支持
- Supernode 订阅机制
- 流量统计图表
- Peers 信息显示
- 托盘等系统有关功能优化
欢迎提交 Issue 和 Pull Request!
