华农现在的校园网用锐捷认证,windows下的认证程序还行。linux下的客户端垃圾得不得了啊。。我在2004年11月8日买了一个二手苹果笔记本PowerBookG3(fireware)。锐捷没有苹果下的认证客户端,于是我上不了网了。郁闷啊。。。我在机里装了gentoo。最初我就尝试用qemu的user-mode来虚拟x86的指令集,再为xrgsu(锐捷linux版认证程序)提供运行所需的libs。最终xrgsu可以运行。但是找不到网卡。后面我就放弃了。
拉了一个月ADSL,在一次偶然的机会我发现了mystar。
mystar是用libnet+libpcap写的,关键的代码不到200行
(libnet和libpcap是平台无关的分组构造发送、分组截获C函数库)
mystar是网上一个叫netxray的人写的。
下面是源码
http://bbs.whnet.edu.cn/upload/mystarV0.1-src.zip
解压密码是netxray解压后cd /mystarV0.1
#make 编译成功。
#vim mystar.conf 修改我的ID跟password。
#./mystar可以运行,并且认证成功。
随后我发现一个问题,就是不会自动重连,老是会断线。在mystar.conf里面有一段
#enable intelligent reconnect?
# 1 means enable, and 0 means disable
intelligentReconnect=1
我将其设置为1也不行。
这样每次过几分钟我就要^C,再./mystar。很不爽。。于是我决定写个script来实现自动重连。
一开始我采用一个笨方法。写一个循环让它过三分钟就kill mystar,再重新运行。
如下:
#!/bin/bash
cd ~/mystarV0.1
while :
do
./mystar &
sleep 180
killall mystar
done
后面我改进了这个脚本。代码如下:
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
cd ~/mystarV0.1
./mystar &
while :
do
ping -c 5 -W 3 219.222.66.254 &>/dev/null
if [ $? -ne 0 ] ; then
kill -9 `pidof mystar`
./mystar &
fi
sleep 10
done
每10秒钟ping一次华农的网关。如果不通过,证明已经断线。将mystar kill掉,并重新运行。
这样子就可以了。。
只要开机运行一个这个script就行。当然也可以用rc-update将其加入到系统运行级别。现在上网根本就没感觉到认证的存在。。
哈哈。。。