jmuSupplicant
这是一个适用于集美大学的第三方锐捷认证客户端。关于实现此客户端的实现过程,可以参考锐捷认证过程分析与第三方锐捷认证客户端的设计与实现
除了实现基础的认证并保持在线功能以外,额外实现了夜晚断网后认证功能。
普通认证支持所有服务类型的选择,夜晚断网后认证服务类型仅支持“教育网接入”。
经测试,12:00 p.m.后网速有较大提升,爱奇艺 1080P 勉强能够,抖音,微博毫无压力。
编译
普通编译
首先请确保系统已安装 libpcap
库以及 CMake
。
git clone https://github.com/ShanQincheng/jmuSupplicant.git
cd jmuSupplicant
mkdir build
cd build
cmake ../
make
之后可以在 build/bin
目录下找到 jmuSupplicant 的可执行文件。
交叉编译
交叉编译需要先编译 libpcap ,之后再编译 jmuSupplicant。下面以交叉编译到 ar71xx 路由器为例:(以下代码中的一些参数需要根据你的实际情况做相应的修改,仅供参考)
获取目标设备的交叉编译工具链
从 https://downloads.openwrt.org/ 上面下载目标设备的交叉编译工具链。例如 ar71xx 芯片的工具链下载地址为:https://downloads.openwrt.org/releases/18.06.0/targets/ar71xx/generic/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz
(若下载缓慢,可以到清华大学镜像源以及**科学技术大学镜像源下载相应工具链)
wget https://downloads.openwrt.org/releases/18.06.0/targets/ar71xx/generic/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz
tar xvJf openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz
配置环境变量
环境变量中的具体路径以及参数要根据你的实际情况做相应的修改,以下代码仅供参考:
export PATH=$PATH:/home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/bin
export CC=mips-openwrt-linux-gcc
export CPP=mips-openwrt-linux-cpp
export GCC=mips-openwrt-linux-gcc
export CXX=mips-openwrt-linux-g++
export RANLIB=mips-openwrt-linux-ranlib
export LC_ALL=C
export LDFLAGS="-static"
export CFLAGS="-Os -s"
export STAGING_DIR=/home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl
交叉编译 libpcap
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar zxvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure --host=mips-linux --with-pcap=linux
make
如果交叉编译 libpcap 的过程中遇到错误,不用担心,这里我们只需要用到 libpcap.a
,编译后能得到该文件即可。之后将该文件以及 libpcap 的相关头文件复制到工具链的目录中:
cp libpcap.a /home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/lib
cp pcap.h /home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/include
cp -r pcap /home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/include
交叉编译 jmuSupplicant
git clone https://github.com/ShanQincheng/jmuSupplicant.git
cd jmuSupplicant
mkdir build
cd build
cmake ../ -DCMAKE_FIND_ROOT_PATH=/home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_C_COMPILER=/home/xxx/openwrt-sdk-18.06.0-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-7.3.0_musl/bin/mips-openwrt-linux-gcc
make
之后可以在 build/bin
目录下找到 jmuSupplicant 的可执行文件。
使用说明
可以通过--help
参数来获取程序运行帮助,下面举例两种使用情况:
正常使用
-
使用以下指令进行锐捷认证:
sudo ./jmu -u学号 -p密码 -s0(教育网接入)1(联通宽带接入)2(移动宽带接入)3(电信宽带接入) -b
-
程序输出锐捷认证信息,或显示 login success, 则认证成功。
断网后的使用
-
首先自行找寻办公区域(夜晚能认证锐捷的地方,比如办公大楼)的 IP 地址,例如:123.123.123.123
-
使用以下指令进行断网后的锐捷认证:
sudo ./jmuSupplicant.out -u学号 -p密码 -s0 -b -n --ip 123.123.123.123
-
程序输出锐捷认证信息,或显示 login success, 则认证成功。
已测试稳定运行的设备
- 计算机:
- Ubuntu 17.10
- Archlinux 4.17.8-1-ARCH
- 路由器:
- MT7620
- ar71xx
- 其他:
- 树莓派 2B
License
Apache version 2.0