Skip to content

destinym/rswitch

Repository files navigation

RSwitch - macOS 路由切换工具

一个基于 Rust 和 Tauri 2 构建的 macOS 网络路由切换工具,提供简洁的图形界面来管理和切换系统默认路由。

✨ 特性

  • 🚀 快速切换 - 一键切换网络默认路由
  • 📊 路由可视化 - 清晰展示所有网络路由信息
  • 🎨 现代界面 - 基于 Tauri 2 的原生应用体验
  • 🔒 安全可靠 - 使用系统级命令,需要管理员权限
  • 高性能 - Rust 后端保证极致性能

🛠️ 技术栈

  • 后端: Rust + Tauri 2
  • 前端: HTML + CSS + JavaScript
  • 构建工具: Vite
  • 系统调用: macOS netstatroute 命令

📋 前置要求

  • macOS 10.13 或更高版本
  • Rust 1.70+ (安装: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  • Node.js 18+ (安装: brew install node)
  • Xcode Command Line Tools (安装: xcode-select --install)

🚀 快速开始

1. 安装依赖

# 安装 Node.js 依赖
npm install

# Rust 依赖会在构建时自动安装

2. 开发模式运行

npm run tauri dev

3. 构建生产版本

npm run tauri build

构建完成后,应用程序将位于 src-tauri/target/release/bundle/ 目录。

📖 使用说明

  1. 启动应用 - 打开 RSwitch 应用
  2. 查看路由 - 应用会自动加载当前系统的所有路由信息
  3. 切换路由 - 点击"设为默认"按钮切换默认路由
  4. 权限确认 - 系统会提示输入管理员密码以执行路由切换

🔧 核心功能

路由信息展示

  • 目标地址 (Destination)
  • 网关地址 (Gateway)
  • 路由标志 (Flags)
  • 网络接口 (Interface)
  • 路由状态 (默认/普通)

路由切换

应用使用以下系统命令进行路由管理:

# 查看路由表
netstat -rn

# 删除默认路由
sudo route delete default

# 添加新的默认路由
sudo route add default <gateway>

📁 项目结构

rswitch/
├── src/                    # Rust 后端源码
│   ├── main.rs            # 应用入口
│   └── route.rs           # 路由管理核心逻辑
├── src-tauri/             # Tauri 配置
│   ├── tauri.conf.json    # Tauri 配置文件
│   └── capabilities/      # 权限配置
├── index.html             # 前端入口
├── main.js                # 前端逻辑
├── vite.config.js         # Vite 配置
├── package.json           # Node.js 依赖
├── Cargo.toml             # Rust 依赖
└── README.md              # 项目文档

⚠️ 注意事项

  1. 管理员权限: 切换路由需要管理员权限,系统会提示输入密码
  2. 网络中断: 切换路由可能导致短暂的网络中断
  3. 备份配置: 建议在切换前记录当前的网络配置
  4. 仅限 macOS: 此工具仅支持 macOS 系统

🐛 故障排除

应用无法启动

# 检查 Rust 安装
rustc --version

# 检查 Node.js 安装
node --version

# 重新安装依赖
rm -rf node_modules target
npm install

路由切换失败

  • 确保有管理员权限
  • 检查目标接口是否有有效的网关地址
  • 查看系统日志: Console.app 搜索 "route"

构建失败

# 清理构建缓存
cargo clean
rm -rf target

# 重新构建
npm run tauri build

📝 开发说明

添加新功能

  1. 后端功能在 src/route.rs 中实现
  2. 前端界面在 index.htmlmain.js 中修改
  3. Tauri 命令在 src/main.rs 中注册

调试技巧

# 启用详细日志
RUST_LOG=debug npm run tauri dev

# 查看 Tauri 控制台
# 在开发模式下按 Cmd+Option+I 打开开发者工具

📄 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📮 联系方式

如有问题或建议,请通过 GitHub Issues 联系。


⚡ 由 Rust + Tauri 2 强力驱动

About

macbook ip/route switch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published