校园网的Linux用户大概都有这样的苦恼,如今大多数校园网都必须安装基于802.1X协议的认证软件才可以上网,也许windows操做系统的用户以为安装这样的软件上网,那是一件很简单的事情,可是对于linux操做系统的用户时常会以为很棘手,我也曾经有过一样的感受,因而处处找了不少有关 802.1X协议的资料以及认证软件,整理成为这篇文章,并附上相关软件包,与你们共享一下研究的心得。
安装步骤:
1.将lib文件夹中的将所需库文件复制到/usr/lib/文件夹中;
2.将bin文件夹中的全部文件复制到/usr/bin/文件夹中;
3.可选:(若是不安装expect,只能在root下用myxrgsu -a命令进行认证)
网络设置:
1.静态认证方式:若是校园网采用的是静态IP认证的方式,那么请先在网络配置那里配置好你的静态IP、子网掩码和网关,而后使用 myxrgsu -a 命令经过认证。
2.动态认证方式:若是校园网采用的是动态IP认证的方式,那么请先在网络配置那里设置成自动获取IP地址的形式,而后使用 xrgsu 命令经过认证。
(这种方式我如今还没测试成功过,估计它的源程序有点问题。假如大家校园的校园网采用动态IP地址认证,能够按照如下方法解决)
方法:
1.在windows下运行锐捷的认证客户端,经过认证以后查看你当前被分配到的IP地址信息,把IP信息记录下来,因为校园网的DHCP服务的IP租借期通常都比较长,咱们学校是n个月才换一次,因此咱们能够在linux下使用静态IP配置,也照样可以经过认证。
2.进入linux,将网络配置成静态IP的形式,IP信息要跟先前咱们在windows下看到的一致。
3.若是不安装expect,只能在root下用myxrgsu -a命令进行认证。
4.若是安装了expect,在命令提示行(普通用户或root都行)中输入netlogin就会自动链接上网了。
#若是你还嫌麻烦,那就在桌面上作个快捷方式,对象命令为:netlogin,之后双击就能够上网了。爽吧?
#若是你是第一次使用这个脚本,请先到/usrl/bin/下用vi或gedit修改autoconnect和autoconnectasroot两个文件。
#按说明填上您的账号资料等。记住要保存哦!
#之后使用这个脚本就不用输入任何账号密码了,不过这样作的安全性,呵呵,你知道的啦。
#若是你的802.1x协议感兴趣,想了解更多它的原理,能够参考我收集到的一篇写得不错的文章:这是目前为止LINUX下使用锐捷认证上网的比较完美的解决方法了。之前那个版本的说明还有些不完善的地方,应广大网友的要求,最近抽空写了这个比较完善的说明,若是有写得不够清晰的地方,欢迎随时找我交流。
附自动脚本范例:
netlogin:
#!/bin/bash
#by linuxjerry
#这个脚本用于自动判断当前用户是root仍是普通用户,从而调用autoconnectasroot或autoconnect来进行上网认证。
#还有自动重连功能,方便在网络很差的条件下使用。下面的1000是重试次数,你能够自行更改。
for ((i=1;i<=1000;i++))
do
[[ $(id -u) -eq 0 ]]&&autoconnectasroot||autoconnect
done
自动配置脚本(也放在/usr/bin文件夹中):
autoconnectasroot:
#! /usr/bin/expect
# --by Linuxjerry 2004.10.
#这个脚本是为root用户使用xrgsu而写的,目的是省去每次输入上网账户的麻烦。
#root用户要上网只需在命令提示行中输入autoconnectasroot就会自动链接上网了。
#在非root下不能使用本命令,因此建议用netlogin命令,它会自动判断是否可使用本命令而作出正确的选择。
#若是你还嫌麻烦,那就在桌面上作个快捷方式,对象命令为:netlogin,之后双击就能够上网了。爽吧?
#若是您是第一次使用这个脚本,请先到/usr/local/bin/下用vi或kwrite修改autoconnectasroot文件,
#按说明填上您的账号资料等。记住要保存哦!
#通常修改myNetUsername、myNetPassword 2处便可。
#之后使用这个脚本就不用输入任何账号密码了,不过这样作的安全性,呵呵,你知道的啦。
send "若是您是第一次使用这个脚本,请先到/usr/local/bin/下修改autoconnect和autoconnectasroot文件,按说明填上您的账号资料等。\r\n "
set timeout 3
spawn myxrgsu -a
expect "Please input your user name:"
send "myNetUsername\r"
#用你的上网账号替换myNetUsername。
expect "Please input your password:"
send "myNetPassword\r"
#用你的上网密码myNetPassword
expect "Use DHCP,1-Use,0-UnUse(Default: 0):"
send "1\r"
#若是你是用动态ip,就将0改成1,不然为0
expect "Use default auth parameter,0-Use 1-UnUse(Default: 0):"
#是否使用默认参数,为了脚本简单这里只设计了为0的。
send "0\r"
sleep .2
set timeout 10
expect "Please input 'unauth' to LogOff:"
set timeout 360000
expect "xrgsu exit!"
sleep .2
send_user "Reconnect please.\r\r"
close
#end
来源:http://andrewlee.blog.51cto.com/66132/135389