一个智能的网络IP配置切换工具,支持根据网络环境自动切换静态IP和动态IP配置。
RouterSwitcher 是一个基于 Wails v3 开发的桌面应用程序,主要用于在 Windows 系统上自动管理网络IP配置。当您连接到家庭网络时,程序可以自动切换到静态IP配置以使用旁路由;当连接到其他网络时,自动切换回动态IP(DHCP)模式,确保网络连接的灵活性和便捷性。
典型使用场景:在家庭局域网时,网关连接您的旁路由;在外网时,需要使用动态IP(DHCP)模式。
-
三种IP模式
- 自适应模式:根据网络环境自动切换IP配置
- 动态IP模式:强制使用DHCP自动获取IP
- 静态IP模式:强制使用静态IP配置
-
智能网络检测
- 自动检测当前连接的WiFi SSID
- 检测旁路由是否可达(通过ping检测)
- 每30秒自动检查网络状态(仅在自适应模式下)
-
系统托盘支持
- 最小化到系统托盘运行
- 托盘菜单快速切换IP模式
- 点击托盘图标显示/隐藏主窗口
-
开机启动
- 支持设置开机自动启动
- 使用Windows任务计划程序实现
-
配置管理
- 图形化配置界面
- 实时显示网络状态
- 配置自动保存到本地文件
发布产物列表
- RouterSwitcher.exe :双击直接运行
- RouterSwitcher-amd64-installer.exe :windows安装包,安装后使用
-
克隆项目
git clone <repository-url> cd RouterSwitcher # 或 打包生产环境报 wails3 task release # 打包windows安装程序 wails3 task windows:package
构建完成后,可执行文件位于
bin/目录下。
-
首次运行
- 运行程序后,会在程序目录下生成
config.json配置文件 - 默认配置:
- IP模式:自适应
- 家庭SSID:
HomeWiFi - 静态IP:
192.168.31.100 - 网关:
192.168.31.2 - DNS:
192.168.31.2
- 运行程序后,会在程序目录下生成
-
配置设置
- 点击系统托盘图标打开配置界面(不会自动显示配置界面)
- 根据您的网络环境修改配置:
- 使用静态IP模式的网络 (SSID):输入您的家庭WiFi名称
- 静态IP配置:设置静态IP地址、网关和DNS服务器地址
- IP模式:选择自适应/动态IP/静态IP模式
- 开机启动:勾选后程序将在系统启动时自动运行
- 点击"保存"按钮保存配置,配置会立即生效
-
系统托盘操作
- 右键点击托盘图标可以快速切换IP模式(自适应/动态IP/静态IP)
- 左键点击托盘图标可以显示/隐藏主窗口
- 选择"退出"可以关闭程序
配置文件 config.json 位于程序可执行文件同目录下,格式如下:
{
"HomeSSID": "YourWiFiName",
"StaticIP": "192.168.31.100",
"Gateway": "192.168.31.2",
"DNS": "192.168.31.2",
"AutoStart": false,
"IPMode": "adaptive"
}HomeSSID: 家庭WiFi的SSID名称,当连接到该WiFi时,自适应模式会尝试切换到静态IP配置StaticIP: 静态IP地址,需要确保该IP地址在您的局域网中未被占用Gateway: 网关地址(通常是旁路由的IP地址)DNS: DNS服务器地址,可以是单个地址或多个地址(用逗号分隔)AutoStart: 是否开机自动启动(true/false)IPMode: IP模式选择adaptive: 自适应模式(推荐),根据网络环境自动切换dynamic: 动态IP模式,强制使用DHCP获取IPstatic: 静态IP模式,强制使用配置的静态IP
-
管理员权限
- 修改网络配置需要管理员权限,建议以管理员身份运行程序
- 如果权限不足,IP切换操作可能会失败
-
位置服务权限
- Windows系统需要开启位置服务才能获取WiFi SSID信息
- 如果位置服务被禁用,程序会提示您开启
- 开启方法:Windows设置 → 隐私和安全 → 位置 → 开启位置服务
-
网络接口
- 程序会自动检测活动的网络接口
- 如果检测失败,请检查网络连接是否正常
-
配置文件
- 配置文件保存在程序可执行文件同目录下
- 如果配置文件损坏,程序会使用默认配置并重新创建配置文件
!!欢迎提交PR!!
- 后端: Go 1.24+
- 前端: Vue 3 + Vite
- 框架: Wails v3
- 平台: Windows(目前仅支持 Windows 系统)
- Windows 10/11
- 管理员权限(用于修改网络配置)
- 位置服务权限(用于获取WiFi SSID信息)
RouterSwitcher/
├── main.go # 主程序入口和Wails应用逻辑
├── config.go # 配置文件读写
├── autostart.go # 开机启动管理
├── network.go # 网络接口和IP配置管理
├── types.go # 数据结构定义
├── wails.json # Wails配置文件
├── go.mod # Go模块依赖
├── frontend/ # 前端代码
│ ├── src/
│ │ ├── main.js # 前端入口
│ │ └── components/
│ │ └── ConfigManager.vue # 配置管理组件
│ ├── package.json # 前端依赖
│ └── vite.config.js # Vite配置
└── build/ # 构建相关文件
# 开发模式(热重载)
wails dev
# 构建测试版本
wails3 build
# 构建生产版本
wails3 task release
# 打包windows安装程序
wails3 task windows:package程序运行时会生成 app.log 日志文件,位于程序可执行文件同目录下,可用于排查问题。
- 程序启动后,每30秒自动检查一次网络状态(仅在自适应模式下)
- 检测当前连接的WiFi SSID是否与配置的
HomeSSID匹配 - 如果SSID匹配,则通过ping命令检测旁路由(网关地址)是否可达
- 如果两个条件都满足,程序自动切换到静态IP配置
- 如果任一条件不满足,程序自动切换回动态IP(DHCP)模式
- WiFi SSID检测:使用 Windows 系统的
netsh wlan show interfaces命令获取当前连接的WiFi信息 - 旁路由可达性检测:使用系统ping命令检测网关地址是否可达(超时时间3秒)
- 网络接口检测:自动检测当前活动的网络接口,支持中英文Windows环境
本项目采用 MIT 许可证。
- Nisus Liu - [email protected]
如有问题或建议,请通过以下方式联系:
- 邮箱:[email protected]
- 提交 Issue 或 Pull Request



