最近,偶得一迷你无线路由器,由于山大宿舍网络动态分配IP,且需要H3C 802.1X认证,无线路由AP模式和无线路由模式都无法使用,形同鸡肋。在网上搜索如何破解这个问题,发现无线路由器里面还是别有洞天。介绍几个比较详细的教程贴:
北理珠海学院:
http://bbs.zhbit.com/forum.php?mod=viewthread&tid=384429&extra=&page=1 (我主要是参考这个教程实现的)
华南理工:
http://tieba.baidu.com/p/1621858667
中山大学:
http://blog.csdn.net/killzero/article/details/8607276
其他学校也有一些零星教程,大同小异,上面这三个学校研究无线路由H3C上网的最多,技术也已经很牛。看完这些教程,对无线路由刷机联网就有比较清晰的思路了。实际上,路由器就是一个硬件平台,类似于电脑。我们需要在上面装个系统(嵌入式的openwrt,占内存不大),然后在装联网用的软件,类似inode,只是体积小,可以在openwrt系统上运行,最后就是用平时用的账号密码联网,并可以设置一些高级功能,如自动开关等。
首先,并非所有的路由器都可以刷openwrt, 这取决于内存大小,及硬件平台等。不同的平台对应不同的openwrt版本。能刷openwrt的型号请看http://wiki.openwrt.org/toh/start 我用的是TP-WR703N,网上相关教程还是比较多,用起来功能也很强大。TP-WR703N CPU 400MHz, 内存16M,flash 4M, 淘宝上有一些升级版的,内存和flash都扩大了,想深入研究的话建议考虑。我当时不确定能不能搞出来,就买了原版的,在宿舍开个wifi完全没问题。下面开始介绍折腾过程。
一、整个过程中需要下载的东西(包括固件及软件):
1、703n 合适的固件(就是703n对应的openwrt系统)
下载地址:
http://pan.baidu.com/share/link?shareid=2612660227&uk=1311113901
文件名称openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
MD5值:2F7361D864E4122837055B4E607ABF98
2、软件 Putty
winscp
下载地址:
http://pan.baidu.com/share/link?shareid=2646609520&uk=1311113901
http://pan.baidu.com/share/link?shareid=2648990072&uk=1311113901
这两个软件用来登录路由器,可以修改路由器内部的一些文件,具体使用步骤及方法后面会有详细介绍。
3、802.1X联网客户端njit-client
下载地址:
http://pan.baidu.com/share/link?shareid=2659966242&uk=1311113901
文件名称njit8021xclient_1.1-1_ar71xx.ipk
在openwrt上面运行该文件可以联网
在安装njit8021xclient_1.1-1_ar71xx.ipk之前需要安装一些包,路由器联上网的话可以自动下载。另外,也可以用电脑下载,然后安装,这样不容易保证所有版本对应,配置正确。强烈建议联网自动下载。
二、刷入openwrt 系统并配置
1、刷入系统
首先,按照说明书要求上电,这时候路由器会广播出wifi, 电脑无线网卡设置为自动获取ip,连上之后在浏览器输入http://192.168.1.1,用户名和密码均为admin,按下面图示操作(借用ruijanlee教程)
注意:升级之前核对一下硬件版本是否一致,我自己的703n的硬件是v1版本的,对应的固件也是v1版本的。版本不同请勿盲目升级。
确认无误之后上传固件之后点击升级。路由刷机稍慢,不要着急。保险的做法是上传之后,10分钟内不去动它。10分钟之后观察,如果路由器没什么动静应该就是完成了。
此时,路由器里面已经刷入openwrt了,由于该系统默认wifi是关闭的。重启后,用一根网线将703N的Lan口和你电脑相连,电脑上设置为自动获取IP(DHCP)模式。等后面wireless配置修改后,重启路由器就可以再次通过无线将电脑和路由器连起来。
2、配置系统,设置密码
运行putty,选择telent,地址192.168.1.1,连接上去
成功后出现OpenWrt的欢迎界面:
看到这个说明你已经刷机成功,你的路由器已经是路由器中的战斗机。
openwrt默认的用户名为root,第一件事就是要设置密码。
输入passwd,然后回车。会提示你输入密码,
输入的时候不会显示星号,重复输入两次就完成了。密码要求还比较高,提前想好复杂一点的密码,9~12位。
更改root密码后dropbear(SSH 服务)就运行了,输入exit退出telent
以后就可以通过ssh管理OpenWrt
3、配置系统,修改路由文件
接下来要配置路由器内部的一些文件,要用到WinSCP软件连接路由器,填写好连接信息,使用 scp 协议。密码就是刚才设置的密码。
连接上去之后,显示了右边显示的是路由器内部的文件。
进入上级目录,然后去到/etc/config/ 编辑wireless文件
修改后的示例:
config wifi-device radio0 option type mac80211 option channel 11 option hwmode 11ng option path 'platform/ar933x_wmac' option htmode HT40- list ht_capab SHORT-GI-20 list ht_capab SHORT-GI-40 list ht_capab RX-STBC1 list ht_capab DSSS_CCK-40 option noscan 1 # REMOVE THIS LINE TO ENABLE WIFI: option disabled 0 config wifi-iface option device radio0 option network lan option mode ap option ssid h3cc_wifi option encryption 'psk2' option key 'sdu615307'
上面config wifi-device radio0 只需把最后的option disabled 选项1改成0,改成0之后就可以发wifi了。
下面config wifi-iface 按照自己喜好设置账号密码就可以了。
然后修改/etc/config/network 文件。
修改后的示例:
config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'wan' option ifname 'eth0' option _orig_ifname 'eth0' option _orig_bridge 'false' option proto 'dhcp' config interface 'lan' option type 'bridge' option proto 'static' option ipaddr '192.168.8.1' option netmask '255.255.255.0'
第一个是系统的回环接口,不用动它
第二块的是,添加一个外网接口,设备是 eth0,后面联网会用到
第三块是内网,这里没有写它接了什么设备,但是这个一定不可缺少,为避免和其他路由设备冲突,这里内网的网段使用的是 192.168.8.1。 重启路由后登录putty 或者winscp 时,输入的主机名就应该是192.168.8.1 了。
如果你已经把上面的都配置好了,那现在路由器已经相当于一个简单的家用路由器,你可以用它发射的 wifi 来上网了,(设置完要重启才生效)你把它接入到一个自动获取 IP 就可以上网的接口中就可以用这个路由器上网了。如果是需要设置静态IP才能上网的话,第二块有关eth0的要做修改,改成静态IP上网的。我实验室电脑上网需要设置静态IP,修改后的示例:
config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'wan' option ifname 'eth0' option _orig_ifname 'eth0' option _orig_bridge 'false' option proto 'static' option ipaddr '219.231.150.88' option netmask '255.255.255.0' option gateway '219.231.150.254' option dns '202.194.15.12' config interface 'lan' option type 'bridge' option proto 'static' option ipaddr '192.168.8.1' option netmask '255.255.255.0'
这时候可以通过路由器联网了,下面在联网的环境下安装H3C客户端。
三、 安装联网客户端njit-client
首先,使用winscp把njit8021xclient_1.1-1_ar71xx.ipk上传到路由器的/tmp目录。
用winscp打开/tmp目录,直接把文件拖进去就OK
通过putty的SSH登录到你的路由器192.168.8.1
执行命令
cd /tmp opkg update opkg install njit8021xclient_1.1-1_ar71xx.ipk
路由器会自动安装完成相关软件,之后修改一下一些文件才可以使用客户端。
安装的主要文件有 libpcap、libopenssl、zlib
有的教程是自己在网上下载这几个安装包,然后按一定顺序安装,自己在网上下载然后再安装的话,容易出现版本不匹配等问题,虽然能够安装njit-client,但认证容易出现通不过的问题。一开始我自己在网上找了这几个包安装的,后来联网的时候一直无法认证,试了几个软件也不行,折腾了一天也没解决,后来干脆全部卸载,联网装njit-client,一切顺利解决。
安装后还需要建立几个链接,在putty中输入以下几行命令就可以了。
cd /usr/lib ln -s libcrypto.so.1.0.0 libcrypto.so.0.9.8 ln -s libpcap.so.1.1.1 libpcap.so.1.0
到这里,客户端算是安装完成了。
运行命令 njit-client, 出现下面情况
root@OpenWrt:~# njit-client 命令行参数错误! 正确的调用格式例子如下: njit-client username password njit-client username password eth0 njit-client username password eth1 (注:若不指明网卡,默认情况下将使用 eth0)
由于没有字符编码,汉字可能是乱码,出现以上页面说明客户端安装成功了。
四、用njit-client联网
1、手动连接
首先,修改路由器的network文件,因为山大宿舍里是自动获取IP,network文件的第二部分还是要改成dhcp模式,如果之前没动就不用改了。
修改完成之后,保存,重启路由器,接上校园网的网线。
客户端的执行方法如下:
njit-client 你的账号 你的密码 外网的接口
若出现以下页面,说明联网成功。
root@TP-LINK:~# njit-client 201212999 1234 eth0 [ ] Client: Start. [144] Server: Request Identity! [144] Client: Response Identity. [145] Server: Request MD5-Challenge! [145] Client: Response MD5-Challenge. [146] Server: (H3C data) [146] Server: Success. [147] Server: (H3C data)
现在你可以打开浏览器试试,应该已经可以上网了。
如只出现
[ ] Client: Start.......
后面是等待的点,说明客户端安装不成功,收不到服务器的返回信息。
2、设置自动联网
添加一个开机自动运行的脚本,每次路由器开机可以自动联网,免去每次用命令手动联网。
在路由器的/etc/init.d/目录下建立一个名为h3cc的文件,内容如下
#!/bin/sh /etc/rc.common #(c) 2013 sdu_h3cc START=50 start() { njit-client 你的账号 你的密码 eth0 & } stop() { killall njit-client killall udhcpc }
外网接口就是前面用的eth0, &符合是后台运行。文件保存好之后执行一下命令:
chmod +x /etc/init.d /h3cc/etc/init.d/h3cc enable
第一条是添加可执行属性,第二条是设置开机运行。
现在每次路由器重启都会自动连接上网了。
Enjoy!
关于设置一些高级功能,如定时开关,睡眠,多wifi,离线下载挂机等,可以参考开头提到的帖子。
致谢:
感谢ruijanlee提供的教程,https://github.com/ruijanlee/h3cc
感谢兔子,Qi Sun, ygz20036,北理-逆风而过,华工-折腾VS不折腾
QQ群:802.1X客户端交流86079951
华工路由器群2629394
后记:
由于ruijanlee提供的教程着实详细、实用,本没打算细写过程。不过之前在网上也一直找不到山东大学关于这方面应用的教程及案例,一直怀疑此方案是否可行,现已亲测,以后山大的孩子玩openwrt可以有所借鉴。
作者:Fred_zhuang@sdu
联系邮箱:zff1209@gmail.com
来源:https://www.cnblogs.com/buer1209/p/3370309.html