账号  

密码  

7499

查看

0

回复
主题:如何让dell电脑的 Ubuntu上学校网 [收藏主题]  
admin 当前在线

630

主题

0

广播

0

粉丝
添加关注
级别:管理员
用户积分:12115 分
登录次数:1853 次
注册时间:2007/3/30
最后登录:2024/6/29
admin 发表于:2011/11/24 16:47:45   | 显示全部帖子 查看该作者主题 楼主 
 学校弄了一个校园网认证客户端,是安腾的supplicant.exe,让人比较纠结的是有windows版本的,有MAC版本的,就是没有Linux版本的,没办法,上网搜。还真就找到了上网的方法,经过设置后还真就可以上网了。记录一下,不然忘了。
    有一个叫做Linux_client的软件可以使用,但是需要安装libpcap,装呗。
    首先安装libpcap:
    1、打开网址:www.tcpdump.org/ 下载 libpcap-1.2.0rc1.tar.gz (597.8KB) 软件包,解压文件,并将其放入自定义的安装目录。
  2、打开网址:flex.sourceforge.net/ 下载 flex-2.5.35.tar.gz (1.50MB) 软件包,并将其放入上述自定义的安装目录中。
  3、打开网址:ftp.gnu.org/gnu/bison/ 下载 bison-2.5.tar.gz (2.7MB) 软件包,并将其放入上述自定义的安装目录中。
  4、打开网址:ftp.gnu.org/gnu/m4/ 下载 m4-latest.tar.gz (1.6MB)软件包,并将其放入上述自定义的安装目录中。
  而后依次进入目录m4***,bison***,flex***,libpcap*** 并依次执行以下命令:
  (sudo) ./configure
  (sudo) make
  (sudo) make install
  注:括号内部分为可选的。
  命令完成后,libpcap网络捕包接口程序就可以使用了。
    接着就是Linux_client了:
    将Linux_client.tar.gz解压出来会有两个文件,upnet和downnet,一个用来连接(upnet)另一个用来断开(downnet)。解压完成后放到主文件夹下面,这时就可以用一下的方式来想认证服务器认证了:
    ./upnet -h server_ip -u username -p password
    下线就使用./downnet就可以了。
    然而还有一个问题,认证成功以后,服务器会每隔一段时间断开,要求重新认证,而upnet不能重新认证,只能手动下线再上线。经过一些简单的shell脚本学习以后,找到了一下的方法:
    脚本运行upnet:
    在这之前需要创建命令upnet和downnet的符号链接
    sudo ln /usr/bin/upnet ./upnet
    sudo ln /usr/bin/downnet ./downnet
    这样以来,就可以使用单独的upnet和downnet命令来上网了。然后创建运行脚本:
    最初的脚本是这样写的:

        #! /bin/bash

        while((1))    ##死循环
        do
        if ! ping -c 4 192.168.0.1; then    ##检测是否能够上网
        mydate=`date "+%Y-%m-%d %H:%M:%S"`
        echo startlogin edu net at $mydate>>./Documents/netrec.txt    ##如果不能上网,将当前时间写入到netrec.txt文件中
        downnet    ##接着下线
        upnet -u 20080701233 -p asdfghjkl    ##然后再上线
        fi
        done
    原理是:例如192.168.0.1,当能够连接外网时这个ip是能够ping通的,断开连接后就ping不通了,所以,以一个死循环去检测其是否能够连通,如果不能ping通就downnet下线,再upnet上线,但这样就可以上网而不掉线了,用了没多久就发现了一些问题:
    (1)这个是死循环,相当占用系统的资源。
    (2)一直在向192.168.0.1发送数据包,占用系统上行带宽不说,会不会有可能被管理员认为是恶意用户呢?
    (3)最终执行的是先下线再上线,使用浏览器下载的时候就会有短暂的中断,由于浏览器不支持断点续传,一旦被中断就停止下载了。
    经过一段时间的研究netrec.txt文件后,发现一个细节,就是两次认证记录的时间间隔是8分15秒,这样就可以在这8分15秒上做文章了。经过改进后,脚本如下:
        #! /bin/bash
        while((1))    ##依然是死循环,不同的是,每隔480秒执行一次
        do
        mydate=`date "+%Y-%m-%d %H:%M:%S"`
        echo startlogin edu net at $mydate>>./Documents/result    ##每隔480秒,将重新认证,并记录信息到result文件中
        kill `ps -C upnet -o pid=`    ##与上一个脚本不同的是,这次是找到upnet的进程ID号,然后就直接无条件结束掉
        upnet -u 20080701233 -p asdfghjkl    ##然后在进行一次认证
        sleep 480    ##时间间隔为480秒,即8分钟
        done
    原理如下:
    (1)直接结束掉upnet进程后,登陆信息会保存在服务器上,此时还能上网,所以不会导致浏览器的下载中断。
    (2)再一次认证后会使服务器计时器从零开始重新计时,脚本的认证时间间隔是8分钟,而服务器的认证间隔大约为8分15秒,所以每次服务器还没有要求重新认证,脚本就会将计时器清零并认证。
    (3)虽然是死循环,但每隔8分钟认证一次,大大减少了系统资源的占用。
    脚本就暂时这样了,然后就是启动脚本:
    首先为脚本授权:chmod +x innet(innet是脚本名称)
    执行脚本:./innet
    脚本运行起来后就相当于开启了一个简易的后台服务程序,每隔一段时间就在保证不掉线的前提下重新连接一次并记录登录时间。保持终端开启,就可以一直上网了。
 
 

  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By aaas Version 9.0
驱动专题 © 2010-2012 版权所有