華農現在的校園網用銳捷認證,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將其加入到系統運行級別?,F在上網根本就沒感覺到認證的存在。。
哈哈。。。