這個教程,簡單地說是我一年以來的鼓搗成果,也是我對我baidu/google看過無數(shù)教程的一個大雜燴。我大一之前的那個暑假的時候在貼吧看了這個帖http://tieba.baidu.com/p/1621858667之后,燃起了我對openwrt路由器的激情。在看了很多很多個教程之后,我把我的心得匯總在這里,希望對各位有所幫助~PS.20130902更新:華工五山校區(qū)測試成功。
首先,最重要的,你需要有一個能刷openwrt的路由器。怎么知道自己的路由支不支持呢?請參看http://wiki.openwrt.org/toh/start,右邊的Supported Hardware – Router type里面就是支持的,如下圖。簡單地說,ROM必須≥4MB(假如有8MB+就最好了,4M的ROM挺苦逼的),RAM必須≥16MB才能刷入openwrt。
怎么刷機?不同的路由刷的方法也是不同的,所以請自行百度。刷機的風險也是不同的,有的刷變磚了要救回來比較難(我沒試過),有的怎么刷都能輕松刷回來……當然你也可以去淘寶直接買一個刷好了的,反正也不貴。
刷機的固件怎么來?去openwrt官網(wǎng)下載是最方便的方法,不過這樣刷出來的不一定有LuCI(一個網(wǎng)頁圖形界面,貌似trunk沒有,Attitude Adjustment有?),只能用命令行的方法來管理;而且之后還要自己安裝njit-client及其依賴包,比較麻煩;此外,njit-client的交叉編譯問題也沒有解決。當然也可以去各論壇上下載各大神編譯的固件,不過我這路由好像比較小眾,沒大神啊,只能靠自己了。
最重要的是,現(xiàn)在網(wǎng)上流傳的njit-client絕大多數(shù)都是1.2版的,都要libopenssl這個體積龐大的依賴包,直接導致了ROM剩余空間非常少的問題,所以下面我來講一下自己編譯openwrt固件和最新版的njit-client 1.3的方法~本文最后附上我編譯的ramips和ar7xxx的njit-client 1.3 的ipk下載。
我還裝了一些ipv6支持、QoS什么的還剩200多k空間
自己編譯看上去好像好高級的樣子 w(?Д?)w ,其實我也是一步一步看教程的o(* ̄▽ ̄*)o 以下內(nèi)容有相當一部分參考了這里的教程。
在終端中運行:
如果想下載Development branch(trunk)(注意這是二選一,有一個就夠了):
假設你的工作目錄為openwrt_trunk,進入openwrt_trunk目錄:
feeds.conf.default復制一份命名為feeds.conf:
(不裝njit-client此步可忽略)打開feeds.conf,在最后加上一行
路徑修改 2013.11.15
如果要安裝scutclient,就加一行
src-svn scut https://github.com/liuqun/openwrt-clients/trunk/scut
執(zhí)行了下面兩步之后還可以查看./package/scut/readme.html獲取更詳細的幫助
更新下載擴展軟件包,并安裝它們到package/feeds/目錄:
./scripts/feeds install -a
現(xiàn)在開始配置OpenWrt,選擇你需要目標平臺,以及選擇將要編譯和添加進固件的軟件包。運行命令:
若回顯提示缺少軟件包或編譯庫等依賴,則按提示安裝所缺軟件包或庫等即可。
然后你就來到了這個界面:
這個配置界面跟Linux內(nèi)核的配置界面基本差不多,幾乎每一項都有3個選擇Y/M/N:
例如我的是D-LINK DIR-615 D4,到第一幅圖Support Hardware那里查詢對應的Target和Platform,查到之后選擇對應的Target System和Subtarget和Target Profile,我選的是Ralink RT28XX/3XXX和RT305X和Default Profile。
又例如你是TP-LINK TL-MR3420,就這樣選:
Target Profile —> (X) TP-LINK TL-MR3420 v1
之后就是選擇擴展軟件包,按需要添加。
如果當時svn下載的是trunk,默認可能就沒有LuCI,那就要在feeds.conf后添加
其他的軟件包就按需要添加吧,注意不要太多(我可憐的4M ROM…),當然如果你的路由能支持掛載U盤什么的那就更爽了(再也不擔心空間不夠了),這方面請自行百度。
好了,選完之后回到主菜單,選Exit退出并保存,回到終端。
總之就是干掉pcap-config,否則編譯會出錯,就像這樣
當時編譯過不去真是折騰了好久,最后終于在這里看到了njit-client作者的解答。
之后就是編譯了,執(zhí)行
其中“V=99”表示輸出詳細的debug信息,也可以直接執(zhí)行make。
這個過程是漫長的,尤其是有時在下載一些位于國外服務器的源代碼的時候,速度甚至<1kB/s(絕對不是我?guī)挼膯栴}),這個各位就要做好心理準備了(也可以按Ctrl + C 中斷編譯,把那個下載很慢的文件鏈接拖到下載工具,下載回來之后放到 /工作目錄/dl/ 下)。
有時候編譯也會出錯,根據(jù)我的經(jīng)驗這是由于更新了新的版本,而這個版本又有問題,連編譯都不能通過( ⊙ o ⊙ ),我不是學編程的所以也沒辦法,只能等后續(xù)的bugfix,要么就回滾到舊的沒問題的版本(我也試過更新了feeds然后某一個軟件包有問題然后編譯失敗的),總之有的東西真的不是越新越好啊╮(╯-╰)╭
編譯完成之后,在 /工作目錄/bin/ 下就會生成刷機用的.bin文件,在packages/下有軟件包的.ipk文件和。刷機方法就請自行百度了。
刷完之后重啟路由,把電腦本地連接的ip改為192.168.1.x,然后在瀏覽器中進入192.168.1.1就進入LuCI了。然后在瀏覽器里設置一些東西,例如剛進去就要改密碼、改WAN口的IP(學校給的)、DNS、網(wǎng)關(學校給的)、MAC地址(如果校園網(wǎng)綁定了MAC)、設置DHCP服務(設完之后可以把本地連接的手動ip改回自動獲取,DNS好像要用學校給的DNS)、設置wifi什么的(PS.無線默認關閉),這里不再詳述。
測試一下njit-client吧!在putty之類的里面執(zhí)行
能連接上之后就做一個開機啟動腳本吧~在路由器的 /etc/init.d/ 目錄下建立一個自動運行腳本 njitclient,內(nèi)容如下:
#!/bin/sh /etc/rc.common
#(c) 2010 ivan_wl
START=50
start() {
njit-client username password eth0 &
}
stop() {
killall njit-client
killall udhcpc
}
之后運行命令
/etc/init.d/njitclient enable #開啟開機自動運行
openwrt功能太多了,各位有空可以慢慢研究~有什么問題歡迎在下面提出~
附ramips的njit-client下載:njit8021xclient_1.3-testing_ramips.zip
ar71xx的:njit8021xclient_1.3-testing_ar71xx.zip
20130918更新:我加了華工的路由器研究群262939451之后,得知原來有部分宿舍的認證系統(tǒng)有所升級,用原來的客戶端可能會有連不上的情況。針對這個問題,群里有高手修改過了源碼,我編譯了一下,也傳上來供各位測試一下。我的使用情況是改不改都能正常使用的。
ramips:njit8021xclient_1.3_SCUT-testing_ramips.rar
ar71xx:njit8021xclient_1.3_SCUT-testing_ar71xx.rar
20131116更新scutclient,對應新客戶端: PS.使用遇到問題請到群262939451進行反饋,我什么都不知道╮(╯▽╰)╭