最近,偶得一迷你無線路由器,由於山大宿舍網絡動態分配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
