校园网锐捷(Ruijie)认证路由器限制解决方案

2026年01月20日/ 浏览 10

校园网锐捷(Ruijie)认证路由器限制解决方案

前言

2021.10.18更新

⚠️铁道大学本部宿舍内基本实现wifi覆盖,没必要再买路由器了。

2021.5.16日更新

⚠️本部校园网模式已经改变,使用任意路由器不需配置mentohust即可上网。

大二学期转到了本部,感慨宿舍条件之余,课业也比大一忙了。龙山校区主要场所wifi全覆盖,而本部这边找个wifi都难,宿舍只能有线上网,并且每次上网前还需要使用客户端认证,很麻烦,于是就想到了用路由器代替认证的办法。可是一般的路由器不支持锐捷认证,为了省事可以直接买支持锐捷认证的路由器,原理几乎都是将路由器刷入新的固件再安装认证软件实现的,卖家用几十块的成本牟取暴利,不甘心之余我决定自己试一下,经过三天断断续续的操作,终于实现了用路由器成功认证上网,同时在宿舍使用wifi。

1.准备路由器

我使用的是小米路由器AC2100,

详细信息

重要的是我们需要知道处理器平台(mt7621),然后下载对应平台的软件开发工具包(SDK)编译我们所需要的软件。

2.刷入路由器固件

刷固件有什么用呢?

刷入新的固件后,可以安装各类的插件以扩展路由器的功能,如广告过滤、科学上网等功能。

什么是路由器固件?

路由器固件可以理解为路由器的操作系统,每个品牌的路由器都带有官方固件,不过可扩展性不强。目前,普遍使用的路由器固件包括OpenWrt、Padavan等,刷入路由器固件的教程可参考B站UP主韩风Talk的视频小米AC2100路由器刷Openwrt/Pandavan系统

3.交叉编译Mentohust

如果你和我使用的相同平台的路由器,直接下载我编译好的软件包即可。比如红米AC2100

1.Mentohust简介

Mentohust是由华中科技大学学生首先在Linux系统下开发出来,而后扩展到支持Windows、Linux、Mac OS下的锐捷认证的程序(附带支持赛尔认证)、兼容Windows、Linux和Mac OS所有主流版本,完美代替锐捷认证。

2.交叉编译Mentohust

什么交叉编译?

交叉编译是在一个平台上生成另一个平台上的可执行代码。

0.需要的工具

Linux 环境(大部分主流发行版均可,我自己使用的是ubuntu 20.04 LTS,你也可以选择自己喜欢的发行版)OpenWrt SDK稳定可靠的网络连接耐心(编译过程依赖电脑性能可能会需要较长的时间)

1.搭建编译环境

1.安装编译工具

可参考 OpenWrt 的官方 Wiki:Build system – Setup Linux

这个页面里针对各个 Linux 发行版都列出了所需的所有软件包,如果编译过程中还是有所欠缺,只需要根据报错信息安装对应的工具即可,这里不再详细展开。

2.下载 OpenWrt SDK 并解压

下载 OpenWrt SDK 之前需要先确定你的路由器 CPU 平台,可以到OpenWrt的系统界面确认。

以我的 MediaTek MT7621 举例,该路由器属于 ramips 平台,所以打开 OpenWrt 的 Download 页面(这里我使用 tuna 的镜像站以加快下载速度),可以看到有很多个目录,每个目录的名称对应的就是各个平台,这里我选择 ramips ,之后进入 generic 目录,将页面拉到最底下可以看到:openwrt-sdk-19.07.4-ramips-mt7621_gcc-7.5.0_musl.Linux-x86_64.tar.xz,将其下载下来即可。

下载完成之后,解压:

tar xvJf openwrt-sdk-19.07.4-ramips-mt7621_gcc-7.5.0_musl.Linux-x86_64.tar.xz

2.同步 Mentohust 源码

这里不使用原版的 Mentohust,而是使用已经为 OpenWrt 打包好的 MentoHUST-OpenWrt-ipk

首先 cd 到 OpenWrt SDK 的目录下:

cd openwrt-sdk-19.07.4-ramips-mt7621_gcc-7.5.0_musl.Linux-x86_64

然后通过 git clone 将 MentoHUST 源码同步到 package 目录下:

git clone https://github.com/KyleRicardo/MentoHUST-OpenWrt-ipk.git package/mentohust

3.准备编译

编译环境搭建完成之后就可以准备正式开始交叉编译了。

1.更新 feeds

首先需要更新 feeds:

./scripts/feeds update

然后安装 libpcap feed:

./scripts/feeds install libpcap

这里需要注意,OpenWrt SDK 编译 libpcap 时只会编译出 libpcap.so 而不会编译出 libpcap.a,但是 mentohust 需要 libpcap.a,所以需要修改一下 libpcap 的 Makefile,编辑 package/feeds/base/libpcap/Makefile 文件,将其中的

define Package/libpcap/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcap.so.* $(1)/usr/lib/ endef

修改为:

define Package/libpcap/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcap.{a,so*} $(1)/usr/lib/ endef

即让编译 libpcap 的时候同时编译出 libpcap.a

2.配置menuconfig

接下来如要对编译配置文件进行简单的配置,这里直接使用 menuconfig:

make menuconfig

这里需要关闭 Advanced configuration options (for developers) 中的 Automatic removal of build directories

并确保 Libraries 下的 libpcap 为 M

Network` 下的 `Ruijie` 下的 `mentohust` 为 `M

这样 menuconfig 就完成了,保存一下退出即可

3.安装其他lib

./scripts/feeds install -a

3.开始编译

接下来就可以开始编译了:

make package/mentohust/compile

这一步需要在线下载 libpcap 的源码,所以请确保有一个良好的网络连接,如果没有什么意外情况的话,等编译完成之后就能在 bin/packages/mipsel_24kc/base 下找到 libpcap 和 mentohust 的 ipk 软件包了:

3.安装到 OpenWrt

接下来就只需要把编译出来的这两个 ipk 软件包安装进 OpenWrt 路由器就行了。

1.上传 *.ipk 到 OpenWrt

Linux可以直接使用 shell 的scp命令,Windows也可以使用powershell的scp命令。

scp /path/to/the/*.ipk root@192.168.1.1:/tmp

2.安装

首先切换到安装包所在的目录,然后执行:

opkg install libpcap1_1.9.1-2.1_mipsel_24kc.ipk opkg install mentohust_0.3.1-1_mipsel_24kc.ipk

不过我们还需要再下载一个 ipk 软件包,因为通过命令行进行锐捷认证是不方便的,而安装这个软件包后我们就能直接在浏览器中管理和配置 mentohust 。直接到这个仓库 BoringCat/luci-app-mentohustRelease 页面下载作者编译好的 ipk 包然后跟上文一样使用 opkg install 安装到路由器即可。

4.配置 Mentohust

1.进入路由器Mentohust

点击服务->Mentohust进入Mentohust设置界面

常规设置中填写校园网的账号和密码:

高级设置中填写校园网分配给账户的IP,子网掩码,网关,DNS服务器,DHCP选择二次认证,DHCP脚本选为dhclient:

2.设置接口

进入接口设置页面:

协议选为静态地址,填入IPv4地址,子网掩码,网关,DNS服务器:

5.后记

从路由器到货的那天下午开始折腾,三天期间断断续续地尝试,终于在网上各种参考资料下实现了路由器上网,收获了许多知识,庆幸自己平时使用Linux比较多,否则交叉编译不可能那么快的完成,多设备上网问题没有根本解决,以后再在路由器增加其他有用的插件。

根据半年多的使用经验,铁大校园网只要电脑端不登录QQ就不会被检测到多设备封禁半小时。

Reference

交叉编译:https://lgiki.net/2020/09/14/cross-compile-mentohust-for-openwrt/

picture loss