当然也有不足的地方,比如对于触发认证方式是采用广播触发还是多播触发就没有在主程序中实现。
我们这边使用广播触发认证,而且用户名中也有特殊符号,而且学校不提供linux的客户端,郁闷~于是在网上找了几个客户端,结果都没认证成功。再次郁闷。于是找了xclient的源代码来看了一下,发现主程序中没有广播触发(FF:FF:FF:FF:FF:FF)或者多播触发(01:80:C2:00:00:03)的输入。程序体中默认指定了多播触发(01:80:C2:00:00:03),所以难怪我们广播触发认证通不过。出于图方便的原因,于是直接在dot1x.cpp中把默认的多播地址改成了广播地址,重新编译了一下,广播触发认证成功。
现在把我编译后的程序发在附件里,广播触发认证的朋友可以用这个啦!多播触发认证下载原来的xclient就可以了,源程序地址在https://sourceforge.net/projects/h3cclient/。
使用方法:
cd到程序所在目录,比如xclient_broadcast,
静态ip的直接:
代码: 全选
sudo ./h3cclient -d -u 用户名/密码 eth0 (建议你先到etc/network/interfaces 设置好静态ip,子网掩码,网关,dns)
代码: 全选
sudo ifconfig eth0 10.1.1.1 && sudo ./h3cclient -r -d -u 用户名/密码 eth0
(这里先给eth0设定了一个ip,任意ip都可以)
--------------------------------------------------------------
如果使用过程中发现dhcp分配ip不成功或者频繁断线,可以参考http://forum.ubuntu.org.cn/viewtopic.php?t=106440,编写如下脚本:
代码: 全选
#!/bin/bash
sudo killall dhclient
sudo killall dhclient3
sudo killall dhclient-script
sudo rm /var/lib/dhcp3/dhclient.leases
sudo ifconfig eth0 10.1.1.1 && sudo ./h3cclient -d -u 用户名/密码 eth0
sudo dhclient eth0
代码: 全选
sudo chmod +x net.sh
当然你也可以cd到所在目录,运行脚本
代码: 全选
$./h3c.sh
----------------------------------------------------------