使用luci app来快捷管理多wan登录
在此前的博客中,我介绍了一种基于 mwan3 和 macvlan 的虚拟多 WAN 自动登录负载均衡校园网提速方案。
然而,复制登录源码、SSH 连接到软路由以及手动修改 shell 脚本对于大部分用户来说操作门槛较高,即使对于经验丰富的软路由使用者而言,这种方式也缺乏优雅性和稳定性。
为此,我将控制脚本和登录脚本整合重构为 luci-app-multilogin,旨在提供更便捷、快速的登录控制解决方案。
下面是配置教程部分
安装
依赖项
luci-app-multilogin基于openwrt23.05与mwan3 2.10+
lede版本以及其衍生版本大概率是不可用的
1 | |
编译安装
- 将
luci-app-multilogin目录复制到 OpenWrt SDK 的package/目录。 - 编译:
1
2
3
4
5make download -j8 V=s
./scripts/feeds update -a
./scripts/feeds install -a
make toolchain/install -j$(nproc) V=s
make package/luci-app-multilogin/compile V=s - 在
bin/packages/...目录中找到生成的 ipk 文件并安装。
使用预编译的二进制文件
- 下载 release
- 在 OpenWrt → 系统 → 软件包中执行更新列表,再点击上传软件包,选择下载好的 ipk 文件上传安装。

安装完成后刷新网页,即可找到服务/auto-login
配置过程
原理阐释
使用 macvlan 创建多个 DHCP 客户端接口,再使用 mwan3 负载均衡以叠加网速和实现故障转移。
和此前的博客类似,我们使用 mwan3 interfaces 的结果来判断接口是否在线。如果掉线,那么从 luci app 预设的配置中匹配是否有账户配置,如果匹配成功,则尝试使用账户配置来调用登录脚本。如果未匹配到结果,则什么也不做。
使用 macvlan 创建多接口
使用 Web 页面创建虚拟网口


在网络 → 接口 → 设备 → 添加设备中创建虚拟网口
选择基础设备为你的 WAN 接口对应设备(例如,我这里是 eth0,创建了虚拟接口 eth00、eth01、eth0x)。
设备名随意,但最好创建一个自己能记得住、分得清的名称。
不建议启用 IPv6,MAC 地址随意/默认均可。
目前校园网支持同时登录三个设备,所以你可以创建两个虚拟网口,以最大化单个账户。
创建接口
- 进入
网络 → 接口 → 添加新接口 - 命名规则:我使用 wan、wanb、wanc…
- 协议选择
DHCP客户端 - 设备选择你创建的虚拟设备 eth01 等
点击创建接口。

接口参数
- 确保为每个接口配置不同的网关跃点(metric)
- 防火墙区域指定为
wan - 确保勾选忽略此接口(DHCP 服务)


mwan3 配置
- 进入
网络 → 负载均衡 → 接口 - 删除默认接口,新建对应虚拟接口
- 每个接口配置:
- 启用状态:√
- 追踪地址:223.5.5.5、223.6.6.6、114.114.114.114
- 跟踪可靠性:建议 2
- 检测间隔:建议 5 秒
- 检测超时:建议 2 秒
其余设置参见下图:


编辑接口成员(用于分配负载)
- 解释:跃点数代表接口优先级,权重则代表该接口在同跃点数中占的比重。
- 成员配置示例:
- wan_m1_w3(跃点 1,权重 3)
- wanb_m1_w2(跃点 1,权重 2)
注意:若使用不同的跃点数,如 wan_m1_w2、wanb_m2_w3,那么 wan 将占用 100% 的流量,wanb 占比为 0%
完成修改后,请点击保存并应用。

请根据需求添加成员。例如:两个同速率的接口,请使用相同的跃点和相同的权重:wan_m1_w2、wanb_m1_w2。
修改策略
- 选择策略页面
- 修改策略 balanced,删除原先自带的策略,把自己上面添加的成员写上去。
例:wan_m1_w2、wanA_m1_w2

确认规则
确认 default_rule_v4 使用新建的均衡策略。
当配置完成后,点击状态/multiwan管理器 → 状态,在这里能看到你的各个接口配置状态和预计分流情况。如果无误,即可进行下一步。
1 | |
配置 auto-login
只需要勾选启用自动登录,然后在登录实例配置处输入正确的信息,选择保存并应用即可。此时在日志中即可看到 multilogin 服务已启动,正在检测 mwan3 创建的接口。


注意:第一次保存并应用时可能会提示必须启用一个账户,如果你确信勾选了至少一个账户,那么请再次点击保存并应用即可。
注意:该登录脚本是为虎溪校区设计的,其他校区需要在编辑脚本中手动编辑 URL、登录字段等信息。目前作者无力维护其他校区登录脚本。
配置完成
如果顺利的话,在日志中能看到如下信息:
1 | |
出现这样的信息,说明 auto-login 已经正常运行并开始检测接口状态了!