首頁 收藏 QQ群
 網(wǎng)站導航

ZNDS智能電視網(wǎng) 推薦當貝市場

TV應用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網(wǎng)站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 12050|回復: 1
上一主題 下一主題
[其它]

【硬創(chuàng)邦】跟hoowa學做智能路由:系統(tǒng)基礎配置

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2014-5-14 10:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式 | 來自遼寧
本帖最后由 dongtao 于 2014-5-17 13:31 編輯

在這一章當中,我們將介紹在OpenWRT系統(tǒng)下的編輯和配置的基礎指令和操作知識,因為后續(xù)的章節(jié)主要用于介紹如何配置路由的相關功能,在配置的操作時我們需要掌握編輯和處理的方法。 本章中,編輯和配置的基礎方法我們分為三種,三種方式都可以操作成功。分別為:

  • 使用VI編輯器: 適合教學時直接修改配置文件。
  • 使用UCI進行編輯: 適合教學時使用,更適合用于自己開發(fā)的第三方程序修改配置文件。
  • 使用SCP下載到本地編輯: 適合教學和系統(tǒng)的測試,文件通過SCP工具下載到本地修改,完成后再上傳到服務器上(要注意使用Notepad++或editplus或ue這類支持unix格式文本文件編輯器)
VI編輯器介紹

vi(Visual Interface)是Linux上最通用的標準編輯器,幾乎99.99%的Linux發(fā)行版中都包含它。vi可以在不需要圖形界面的情況下實現(xiàn)對文件的查看、修改、刪除、查找、替換等眾多功能。vi的操作,適用于通過串口直接修改文件,以及通過ssh遠程登入系統(tǒng)修改文件。 在OpenWRT中,系統(tǒng)允許通過vi編輯器直接修改UCI配置文件,從而實現(xiàn)對系統(tǒng)的配置。

VI的操作方法

在本節(jié)我們就簡單的介紹下VI的基本操作方法。


vi指令語法: vi [文件名]


如果指定的文件名不存在,將會在內存中自動創(chuàng)建一個空文件,等待保存時保存到磁盤上。如果文件名存在則將打開該文件。vi在打開文件后有兩種工作模式:

  • vi指令模式: 在這個模式下,不能對文件做修改,指令輸入內容在屏幕的左下方顯示。
  • vi編輯模式: 在編輯模式下,可以對文件內容進行修改,刪減,或增加。在OpenWRT的系統(tǒng)下,我們可以輸入鍵盤上的主鍵盤區(qū)內容,也可以使用上下左右箭頭按鍵調整位置。

兩種模式切換: 在指令模式下,按鍵盤上的字母”i”既進入編輯模式(insert方式),這個時候可對文件進行修改編輯。在編輯模式下按鍵盤的esc鍵,即可返回指令模式,可以輸入指令。 vi支持的指令列表,所有指令都要輸入”:”作為指令開頭,以回車作為指令結束:


退出vi編輯器指令,放棄對文件的修改: :q! 退出vi編輯器: :q 保存當前內容: :w 保存退出: :wq 強制保存退出: :wq! 搜索字符: :/[字符內容]


操作舉例:

鍵盤輸入 i 進入編輯模式,然后可以 隨便輸入一些字符(這時已經(jīng)可以寫文字了)

保存退出,進入指令模式,輸入保存退出指令:wq (請編輯截圖) 該文件即保存,再次使用vi /tmp/test打開文件即可看到文件保存內容。

認識UCI

眾所周知,在Linux下各種軟件包有各種不同的配置腳本,每個配置腳本的語法格式和操作方式不同,這樣的設計雖然可以體現(xiàn)出各軟件包自身的優(yōu)勢,同時也增加了智能路由產(chǎn)品開發(fā)的難度。在這一點上OpenWRT下的UCI技術無疑是一種創(chuàng)新。

UCI是(Unified Configuration Interface)集中式配置信息管理接口的縮寫,他是OpenWRT引進的一套配置參數(shù)管理機制。UCI管理了OpenWRT下最主要的系統(tǒng)配置,并且提供了簡單,容易,標準化的人機交互接口。UCI的管理包含了網(wǎng)絡配置,無線配置,系統(tǒng)信息配置等作為路由器的系統(tǒng)主要配置參數(shù)。UCI可以幫助開發(fā)人員快速的開發(fā)出基于OpenWRT的智能路由產(chǎn)品的控制界面(諸如瀏覽器界面,手機界面等)。

在OpenWRT下有大量的軟件包的配置實用了UCI兼容模式。大量的應用程序其實都有他們自己的配置文件,比如samba的配置文件默認是/etc/samba/samba.conf,但是在OpenWRT下samba軟件包使用的配置方式也是UCI。當執(zhí)行/etc/init.d/samba start的時候,啟動腳本將通過UCI的shell解碼器分析/etc/config/samba配置文件,并且生成需要的/etc/samba/samba.conf配置,來完成配置。

OpenWRT下服務軟件加載流程(samba舉例):


啟動腳本—>/etc/config/samba(UCI解碼器)—>/etc/samba/samba.conf—>啟動samba服務


OpenWRT下配置處理流程(samba舉例):


uci命令—>UCI編解碼器—>/etc/config/samba


由于uci配置文件非常適合人機交互,因此如果你是需要人工修改配置,也可以簡單的使用常見的vi編輯器直接修改配置:


vi /etc/config/samba


默認的OpenWRT系統(tǒng)擁有以下幾個配置文件,隨著軟件包的增加系統(tǒng)配置文件數(shù)量也會增加:


dhcp 路由器的DHCP服務,面向LAN口下計算機提供IP地址分配服務 dropbear SSH服務 firewall 路由轉發(fā),端口轉發(fā),防火墻規(guī)則 fstab 外部存儲器配置 network WAN / LAN 網(wǎng)絡配置 system 時間服務器時區(qū)配置 wireless 無線網(wǎng)絡配置


UCI配置文件格式

UCI默認情況下只處理/etc/config中的配置文件,通過參數(shù)指定也可以通過UCI處理其他位置的配置文件。UCI的配置文件同XML不同(XML的設計更適應機器讀取),而UCI配置文件的設計對于人讀取非常友好。所以即使你手工修改這些配置也是沒有任何問題的。

UCI文件內容格式舉例:


config ‘example’ ‘test’
option ‘string’ ‘some value’
option ‘boolean’ ’1′
list ‘collection’ ‘first item’
list ‘collection’ ‘second item’


從config開始一直到下一個config出現(xiàn)中間的內容表示一個段配置(以下均用Section表達),其作用類似編程語言中的{}作用,是表示一個區(qū)域數(shù)據(jù)。


Section開始語法: config ‘類型’ ‘名字’


其中上面例子的example就是這個配置的類型,而test就是這個配置的名字。UCI允許”匿名”的配置存在所以可能存在只有”類型”而沒有”名字”的配置。


參數(shù)定義語法: option ‘鍵’ ‘值’


option表示當前的配置中的鍵/值定義語法。上面例子定義了一個鍵為’string’,值為’some value’的配置參數(shù)。


列表定義語法: list ‘集合名字’ ‘值’


list表示一種集合參數(shù),UCI會根據(jù)相同集合名字生成一個數(shù)組(以上例子數(shù)據(jù)中包含’first item’和’second item’兩個值)給予相應的軟件包使用。 UCI允許的參數(shù)格式:


option example value
option ‘example’ value
option example “value”
option “example” ‘value’
option ‘example’ “value”


當遇到上面錯誤的時候,UCI還是可以很好的工作,但是如果遇到下面的格式,UCI將出現(xiàn)問題:


option ‘example” “value’
option example some value with space


另外非常重要的是,盡量使用常規(guī)字符去處理器UCI,特殊字符有可能會破壞數(shù)據(jù)結構的完整性。

UCI文件讀寫方式

UCI文件的讀寫有兩種方式:

  • UCI文件的讀寫可以通過OpenWRT附帶的uci指令來完成,這種讀寫方式可以用于命令行也可以用于自己開發(fā)的WEB程序來操作。
  • 直接使用系統(tǒng)的vi編輯器直接修改UCI文件,所做的修改也可以被系統(tǒng)所識別。
UCI指令讀取配置

語法格式: uci [<options>] <command> [<arguments>] 查看類語法:


uci get <config>.<section>[.<option>] 取得一個鍵的值 或根據(jù)段的名字取得類型
uci show [<config>[.<section>[.<option>]]] 顯示出全部 / 配置文件 / 段 / 鍵 的完整格式
uci changes [<config>] 顯示出全部 / 配置文件 的未保存修改(經(jīng)過commit語法保存后就不再有記錄)


變更類語法:


uci add <config> <section-type> 增加一個匿名段配置到配置文件中
uci set <config>.<section>[.<option>]=<value> (增加/修改)一個有名字的段 / 增加一個段中的鍵和值
uci add_list <config>.<section>.<option>=<string> 增加一個列表集合數(shù)據(jù)到配置文件中
uci del_list <config>.<section>.<option>=<string> 刪除一個指定值的列表集合數(shù)據(jù)
uci delete <config>[.<section>[[.<option>][=<id>]]] 刪除一個 段 / 鍵 / 指定值的鍵
uci commit [<config>] 將變更保存在文件中,或保存全部變更到各自文件


UCI在讀取的時候優(yōu)先顯示內存中的緩存,其次顯示文件中的。UCI在進行變更的時候只變更內存的,如果要使變更生效需要執(zhí)行commit將其寫入文件。 來舉個例子。首先產(chǎn)生一個用來做測試的樣本測試:


root@OpenWrt:~# cp /etc/config/system /etc/config/mytest


查看當前狀態(tài):

取出mytest.ntp.server的值:

增加一個名為mytest類型為hello的段到mytest文件中:


root@OpenWrt:~# uci set mytest.mytest=hello


增加一個配置到這個段中:


root@OpenWrt:~# uci set mytest.mytest.enable=1


修改mytest.@system[0].hostname這個參數(shù):


root@OpenWrt:~# uci set mytest.@system[0].hostname=hoowa


刪除掉一個ntp.server的值:


root@OpenWrt:~# uci del_list mytest.ntp.server=2.openwrt.pool.ntp.org


查看都修改了啥:

保存修改:


root@OpenWrt:~# uci commit mytest


看看文件有啥變化:

舉例,開啟wifi功能:


root@OpenWrt:/# uci set wireless.radio0.disabled=0
root@OpenWrt:/# uci commit wireless


讓wifi開啟生效:


root@OpenWrt:/# wifi


使用SCP進行文件傳輸

SCP(Secure copy)是OpenWRT中的SSH附帶的文件傳輸功能,SCP在操作上類似FTP可以實現(xiàn)一個安全的數(shù)據(jù)文件傳輸。

SCP適用于調試階段的程序文件上下載,從而進行快速測試,這是個非常不錯的工具。

第一步:正式開放SSH

在默認的情況下由于沒有密碼,所以SSH無法登入。首先修改系統(tǒng)超級賬戶密碼,在提示中填寫兩次新密碼:


root@OpenWrt:/# passwd


完成后重啟SSH的服務:


root@OpenWrt:/# /etc/init.d/dropbear restart


第二步: 安裝WinSCP

大家可以使用一個winscp的工具實現(xiàn)這個操作。winscp工具已經(jīng)放在了教學服務器上,下載地址為http://182.92.3.46/hoowa/openwrt/tools/winscp439setup.zip。安裝這個工具軟件,然后讓你的電腦連接到開發(fā)板的wifi上(在上邊案例中,你已經(jīng)開啟過wifi了,對嗎?),同時打開軟件。

第三步: 點擊新建


主機名填寫IP地址,默認的開發(fā)板是192.168.1.1
端口填寫22
用戶名填寫root
密碼就填寫剛才設置的那個密碼
文件協(xié)議選擇SCP


點擊連接, 連接過程中有提示找不到group指令,沒關系直接確認就行了。

第四步:文件處理

登入后,操作起來就像FTP工具一樣,左側是你的電腦,右側是開發(fā)板系統(tǒng),你可以上載下載文件。

在本章,我們介紹了三種進行配置編輯的方法,請選擇其中一種最為你進行后續(xù)操作所使用的方式即可。其他的用到了再回來學習也可以的。

到這里,我們在硬件部分的第一次操作基本完成,接下來將進去軟件環(huán)節(jié),來學習如何配置出一個具備完整功能的路由系統(tǒng)來。



上一篇:周鴻祎攜360安全路由器殺入智能路由器市場 ...
下一篇:有人買過小米路由器的嗎?用起來怎么樣?
沙發(fā)
發(fā)表于 2015-3-2 21:54 | 只看該作者 | 來自北京
強烈支持樓主ing……
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

快速回復 返回頂部 返回列表