{"id":31955456,"url":"https://github.com/mrtian2016/wireguard-config-generator","last_synced_at":"2025-10-20T05:29:36.863Z","repository":{"id":318736053,"uuid":"1074730450","full_name":"mrtian2016/wireguard-config-generator","owner":"mrtian2016","description":"WireGuard client config generator | WireGuard 客户端配置生成工具","archived":false,"fork":false,"pushed_at":"2025-10-14T10:15:35.000Z","size":6661,"stargazers_count":17,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-14T11:03:36.941Z","etag":null,"topics":["react","rust","tauri","wireguard","wireguard-config"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrtian2016.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-12T11:21:48.000Z","updated_at":"2025-10-14T10:15:38.000Z","dependencies_parsed_at":"2025-10-14T11:06:23.944Z","dependency_job_id":"38058c16-8078-4e42-95ea-5118d266d5db","html_url":"https://github.com/mrtian2016/wireguard-config-generator","commit_stats":null,"previous_names":["mrtian2016/wireguard-config-generator"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mrtian2016/wireguard-config-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtian2016%2Fwireguard-config-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtian2016%2Fwireguard-config-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtian2016%2Fwireguard-config-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtian2016%2Fwireguard-config-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrtian2016","download_url":"https://codeload.github.com/mrtian2016/wireguard-config-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtian2016%2Fwireguard-config-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279310247,"owners_count":26145370,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-17T02:00:07.504Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["react","rust","tauri","wireguard","wireguard-config"],"created_at":"2025-10-14T14:17:03.029Z","updated_at":"2025-10-17T08:19:04.884Z","avatar_url":"https://github.com/mrtian2016.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔐 WireGuard 配置生成器\n\n一个基于 Tauri 2 + React 19 构建的桌面应用程序，用于快速生成 WireGuard 客户端配置。支持多种客户端和路由器平台，包括标准 WireGuard、Surge、爱快、MikroTik、OpenWrt 等。\n\n![配置生成界面](./screens/iShot_2025-10-15_22.09.29.png)\n\n\n\n## ✨ 特性\n\n### 核心功能\n- 🗄️ **多服务端管理** - 管理多个 WireGuard 服务端，Peer ID 独立计数，避免冲突\n- 🔑 **密钥生成** - 基于 X25519 算法生成密钥对和预共享密钥（PSK）\n- 📄 **多平台配置** - 一键生成 5 种格式：WireGuard、Surge、爱快、MikroTik、OpenWrt\n- 📱 **二维码导入** - 自动生成二维码，移动设备扫码导入\n- 💾 **配置持久化** - 自动保存配置，支持历史记录查询和批量导出\n\n### 云同步\n- ☁️ **WebDAV 同步** - 支持 Nextcloud、坚果云、群晖 NAS、威联通 NAS 等\n- 🔄 **双向智能同步** - 基于文件时间戳自动上传/下载较新文件\n- ⏰ **自动同步** - 可设置定时同步间隔（最少 60 秒）\n- 🗑️ **删除同步** - 本地删除操作自动同步到远程\n\n### 跨平台\n- 📦 **桌面应用** - 基于 Tauri 2，支持 macOS、Windows、Linux\n- 🔄 **自动更新** - 应用内检测和安装更新\n\n## 🛠️ 技术栈\n\n- **前端**: React 19.1.0 + Vite 7.0.4\n- **桌面框架**: Tauri 2\n- **后端**: Rust (Tauri 后端)\n- **包管理器**: Yarn\n\n## 📦 安装\n\n### 下载安装包\n\n从 [Releases](https://github.com/mrtian2016/wireguard-config-generator/releases) 页面下载对应平台的安装包。\n\n#### ⚠️ macOS 用户注意事项\n\n首次打开应用时,macOS 系统可能会提示 **\"WireGuard Config Generator.app\"已损坏,无法打开。你应该将它移到废纸篓。**\n\n这是因为应用未经过 Apple 验证。请按以下步骤解决:\n\n1. 打开\"终端\"应用\n2. 执行以下命令(根据应用的实际安装位置调整路径):\n\n```bash\n# 如果安装在应用程序文件夹\nsudo xattr -r -d com.apple.quarantine /Applications/WireGuard\\ Config\\ Generator.app\n\n# 或者如果在其他位置,替换为实际路径\nsudo xattr -r -d com.apple.quarantine /path/to/WireGuard\\ Config\\ Generator.app\n```\n\n3. 输入系统密码后,应用即可正常打开\n\n\u003e 💡 **这是什么操作?**\n\u003e `xattr` 命令用于移除 macOS 的隔离属性(quarantine)标记。这个标记会阻止从互联网下载的未签名应用运行。此操作仅移除限制,不会修改应用本身。\n\n### 从源码构建\n\n1. **克隆仓库**\n```bash\ngit clone https://github.com/mrtian2016/wireguard-config-generator.git\ncd wireguard-config-generator\n```\n\n2. **安装依赖**\n```bash\nyarn install\n```\n\n3. **开发模式运行**\n```bash\nyarn tauri dev\n```\n\n4. **构建应用**\n```bash\nyarn tauri build\n```\n\n构建产物位于 `src-tauri/target/release/bundle/`\n\n## 🚀 使用指南\n\n### 配置流程\n\n1. **本地接口配置**\n   - 输入配置文件名称（默认 `wg0`）\n   - 生成或输入私钥（44 字符 Base64），公钥自动计算\n   - 输入本地 IP 地址（CIDR 格式，如 `192.168.199.10/32`）\n   - 可选：监听端口、DNS 服务器\n\n2. **选择服务端**\n   - 从列表选择已保存的服务端，或在\"服务端管理\"中新建\n   - 每个服务端独立管理 Peer ID 计数器\n\n3. **服务端信息**\n   - 配置服务端公钥、Endpoint 地址（如 `example.com:51820`）\n   - 可选：生成预共享密钥（PSK）增强安全性\n   - 设置 AllowedIPs（`0.0.0.0/0,::/0` 为全局 VPN）\n   - 设置 PersistentKeepalive（推荐 25 秒）\n\n4. **客户端信息**\n   - Peer ID 自动递增\n   - 输入路由器接口名称（默认 `wg_0`）\n   - 输入备注名称（如 `iPhone`、`MacBook`）\n\n5. **生成配置**\n   - 自动生成 5 种格式：WireGuard (.conf)、Surge (.conf)、爱快 (.txt)、MikroTik (.rsc)、OpenWrt (.sh)\n   - 支持二维码扫码导入（移动设备）\n   - 自动保存到历史记录\n\n## 💡 使用技巧\n\n### WebDAV 同步配置示例\n\n**Nextcloud**\n```\n服务器地址: https://cloud.example.com/remote.php/dav/files/username/\n用户名: your_username\n密码: 应用专用密码\n```\n\n**坚果云**\n```\n服务器地址: https://dav.jianguoyun.com/dav/\n用户名: 账号邮箱\n密码: 应用密码（在坚果云网页端生成）\n```\n\n建议同步间隔：300-600 秒（5-10 分钟）\n\n### 常见问题\n\n**Q: 字段提示\"不允许包含空格\"？**\nA: 关键字段（接口名称、密钥、IP 地址、备注）禁止空格，确保输入内容无空格。\n\n**Q: 移动设备如何导入配置？**\nA: 生成配置后，切换到\"二维码\"标签，用 WireGuard 应用扫描导入。\n\n**Q: WebDAV 同步失败？**\nA: 检查服务器地址、用户名密码、网络连接，坚果云需使用应用密码。\n\n**Q: 如何迁移到新设备？**\nA: 新设备上启用 WebDAV 同步，执行\"立即同步\"即可。\n\n## 🔧 开发命令\n\n### 前端开发\n```bash\n# 启动 Vite 开发服务器（仅前端）\nyarn dev\n\n# 构建前端\nyarn build\n\n# 预览构建结果\nyarn preview\n```\n\n### Tauri 开发\n```bash\n# 启动 Tauri 开发模式（包含热重载）\nyarn tauri dev\n\n# 构建 Tauri 应用\nyarn tauri build\n```\n\n### Rust 后端开发\n```bash\ncd src-tauri\n\n# 检查 Rust 代码\ncargo check\n\n# 运行 Rust 测试\ncargo test\n\n# 格式化 Rust 代码\ncargo fmt\n\n# 运行 Clippy 检查\ncargo clippy\n```\n\n## 📝 技术说明\n\n### 数据存储\n\n应用数据存储在以下目录：\n- **macOS**: `~/Library/Application Support/com.wireguard.config-generator/`\n- **Windows**: `%APPDATA%\\com.wireguard.config-generator\\`\n- **Linux**: `~/.local/share/com.wireguard.config-generator/`\n\n目录结构：\n- `servers/` - 服务端配置文件（JSON）\n- `history/` - 历史配置记录（JSON）\n- `webdav.json` - WebDAV 同步配置\n- `last_sync.json` - 最后同步信息\n\n### 密钥生成\n\n- 基于 X25519 椭圆曲线 Diffie-Hellman 算法\n- 私钥：32 字节随机数据，经过 clamping 处理\n- 公钥：从私钥通过 X25519 基点计算得出\n- 预共享密钥（PSK）：32 字节随机数据\n- 所有密钥使用 Base64 编码（44 字符）\n\n### 配置格式\n\n#### 1. 标准 WireGuard 配置（.conf）\n```ini\n[Interface]\nPrivateKey = xxx\nAddress = 192.168.199.10/32\nListenPort = 51820\nDNS = 8.8.8.8\n\n[Peer]\nPublicKey = xxx\nPresharedKey = xxx\nEndpoint = example.com:51820\nAllowedIPs = 0.0.0.0/0,::/0\nPersistentKeepalive = 25\n```\n\u003e 适用于标准 WireGuard 客户端（Windows、macOS、Linux、iOS、Android）\n\n#### 2. Surge WireGuard 配置（.conf）\n```\n[WireGuard wg0]\nprivate-key = xxx\nself-ip = 192.168.199.10\ndns-server = 8.8.8.8\nmtu = 1280\npeer = (public-key = xxx, preshared-key = xxx, allowed-ips = \"0.0.0.0/0,::/0\", endpoint = example.com:51820, keepalive = 25)\n```\n\u003e 适用于 Surge iOS/macOS 客户端，可在 Surge 配置文件中直接使用\n\n#### 3. 爱快路由器 Peer 配置（.txt）\n```\nid=1 enabled=yes comment=iPhone interface=wg_0 peer_publickey=xxx presharedkey=xxx allowips=192.168.199.10/32 endpoint= endpoint_port= keepalive=25\n```\n\u003e 适用于爱快路由器，可在 Peer 管理界面批量导入\n\n#### 4. MikroTik RouterOS 脚本（.rsc）\n```\n/interface wireguard peers\nadd allowed-address=192.168.199.10/32 comment=\"iPhone\" interface=wg_0 public-key=\"xxx\" preshared-key=\"xxx\" persistent-keepalive=25s\n```\n\u003e 适用于 MikroTik RouterOS，在终端中执行脚本自动添加 Peer\n\n#### 5. OpenWrt UCI 配置脚本（.sh）\n```bash\nuci set network.wg0_peer_1=wireguard_wg_0\nuci set network.wg0_peer_1.public_key='xxx'\nuci set network.wg0_peer_1.preshared_key='xxx'\nuci set network.wg0_peer_1.allowed_ips='192.168.199.10/32'\nuci set network.wg0_peer_1.persistent_keepalive='25'\nuci set network.wg0_peer_1.description='iPhone'\nuci commit network\n/etc/init.d/network reload\n```\n\u003e 适用于 OpenWrt 路由器，通过 SSH 执行脚本自动添加 Peer\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request！\n\n## 📄 许可证\n\nMIT License\n\n## 📋 更新日志\n\n### v0.1.9 (2025-10-15)\n- ☁️ WebDAV 云同步：双向智能同步、自动同步定时器、删除操作同步\n- 🔄 自动更新：应用内检测更新、下载进度条、安装流程优化\n- ✅ 表单验证：所有字段格式验证、禁止空格、AllowedIPs 格式统一\n\n### v0.1.5 (2025-10-14)\n- 🗄️ 多服务端管理：独立 Peer ID 计数、按服务端筛选历史、旧版数据迁移\n- 🧹 清空功能优化：历史记录和服务端配置分离管理、二次确认\n- 🍎 macOS 原生窗口：透明标题栏、固定窗口尺寸\n\n### v0.1.4 (2025-10-13)\n- ✨ 新增 Surge 配置支持\n- 🌐 新增 OpenWrt 路由器支持\n- 📦 历史记录增强：ZIP 批量导出\n\n## 🙏 致谢\n\n- [WireGuard](https://www.wireguard.com/) - 现代 VPN 协议\n- [Tauri](https://tauri.app/) - 轻量级桌面应用框架\n- [React](https://react.dev/) - UI 框架\n- [Surge](https://nssurge.com/) - 强大的网络调试工具\n- [爱快路由器](https://www.ikuai8.com/) - 企业级路由系统\n- [MikroTik](https://mikrotik.com/) - 专业网络设备制造商\n- [OpenWrt](https://openwrt.org/) - 开源路由器固件\n\n---\n\n**WireGuard Client Config Generator**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtian2016%2Fwireguard-config-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrtian2016%2Fwireguard-config-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtian2016%2Fwireguard-config-generator/lists"}