Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

AltStyle によって変換されたページ (->オリジナル) /