摘要
利用客戶端代理服務器和服務器端反向代理服務器,可以具備安全/可靠/快捷等優(yōu)點声滥,同時多路經(jīng)傳輸可以加大傳輸速度和增強傳輸魯棒性眉撵。利用嵌入式開發(fā)板和linux系統(tǒng),搭建網(wǎng)絡拓撲C--P==RP--S落塑,其中C(Client)和S(Server)分別代表客戶端和服務器纽疟,P(Proxy)和RP(Reverse-proxy)代表代理和反向代理,在這個網(wǎng)絡拓撲上順利實現(xiàn)了代理和多徑技術的結合憾赁。
一.配置要求
1.兩臺PC(網(wǎng)絡拓撲中的C和S仰挣,為了方便下文統(tǒng)一用代號表示),軟件平臺為Ubuntu 13.04+
2.兩個嵌入式開發(fā)板mini2440(網(wǎng)絡拓撲中的P和RP缠沈,為了方便下文統(tǒng)一用代號表示)膘壶,軟件平臺為linux 3.11.10
3.PC和開發(fā)板之間傳輸和控制的串口和網(wǎng)線
4.兩個代理之間通信的網(wǎng)線/無線網(wǎng)卡/3G模塊
5.最好兩人協(xié)作
二.環(huán)境搭建
1.PC環(huán)境
PC上必須安裝ubuntu便于和嵌入式開發(fā)板統(tǒng)一系統(tǒng)平臺错蝴,安裝過程網(wǎng)上有很多教程。
為了達到在PC上的終端控制開發(fā)板的目的颓芭,要裝minicom顷锰,安裝比較順利,利用以下命令行即可
#apt-get install minicom
直接在終端輸入minicom可以啟動該程序
此外可以安裝bwm-ng亡问,監(jiān)測傳輸過程中的各個路徑速度官紫,也是利用apt-get安裝
直接在終端輸入bwm-ng可以啟動該程序
S上要安裝apache服務器,安裝配置過程比較簡單
2.開發(fā)板環(huán)境
在兩個嵌入式開發(fā)板上安裝完linux 后在P上安裝tinyproxy州藕,安裝及配置代理的過程參考博客點擊打開鏈接
RP上安裝反向代理tinyproxy-re跟tinyproxy過程類似束世,但有些許不同,參考點擊打開鏈接
在開發(fā)板P和RP上可以移植appweb(一個web服務器床玻,不是必須項)毁涉,這樣就可以方便地在PC端通過圖形看到各條路徑的傳輸狀態(tài),移植過程參考點擊打開鏈接
要熟悉appweb的demo開發(fā)流程锈死,參考我的一篇博客贫堰,如果要進一步學習如何在appweb中嵌入javascript,參考點擊打開鏈接
三.實現(xiàn)流程
1.搭建網(wǎng)絡拓撲
首先是P和RP之間通過網(wǎng)線先連接上待牵。C和P其屏,S和RP,均是通過串口和網(wǎng)線連接缨该。待C和S上的minicom啟動后偎行,將P和RP通電,通電后在minicom上能看到P和RP的打印信息贰拿。
然后在minicom的界面上用命令ifconfig查看eth0的信息蛤袒,在PC上同樣查看eth0的信息,ping對方eth0的ip可以檢查兩者是否成功連通壮不。
接著就是P和RP之間多條網(wǎng)絡路徑的搭建了汗盘,由于網(wǎng)線已經(jīng)連好,只要再在P和RP都插入無線網(wǎng)卡和3G模塊就行询一,插入后在minicom上有對應的USB口打印信息隐孽。
注意wifi要設置成同一個ssid才能設置連接,這里可以在開發(fā)板上安裝wpa_supplicant實現(xiàn)健蕊。修改wpa_supplicant配置文件菱阵,實現(xiàn)P和RP上的SSID相同。輸入命令
#system/bin/wpa_supplicant -d -Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf------------------------>wpa_supplicant目錄不盡相同
我們在執(zhí)行時加上了-c/data/misc/wifi/wpa_supplicant.conf缩功,我們可以將我們要連接的AP的設置以一定的格式寫入wpa_supplicant.conf配置文件中即可晴及。
eg.
ctrl_interface=DIR=/data/system/wpa_supplicant?GROUP=system update_config=1
network={
ssid="my access point"
proto=WPA
key_mgmt=WPA-PSK
psk="you pass words"
}
具體的wpa_supplicant使用參考點擊打開鏈接
兩個3G模塊之間的通信比較復雜,可以參考點擊打開鏈接
2.設置每個網(wǎng)絡接口的ip
在root模式下利用命令ifconfig [itf] 192.168.*.*將指定interface設置成ip 192.168.*.*嫡锌。在我的實現(xiàn)中虑稼,具體各個接口的ip設置如下:
每次重啟后都要手動設置一次ip比較麻煩琳钉,可以寫一個腳本。
3.設置代理
首先在通過minicom設置P上的代理服務器蛛倦,先進入tinyproxy.conf的目錄歌懒,這里是cd /etc找到了這個配置文件,接著輸入命令:
#./tinyproxy -d -c ./tinyproxy.conf &
解釋一下這個命令溯壶,tinypoxy是全局運行的及皂,因此就算程序不在當前目錄下也可運行(通過which tinyproxy也能找到程序目錄),但是tinyproxy.conf配置文件必須要在當前目錄下且改,而&是后臺運行指令验烧,防止代理運行造成傳輸時的程序沖突。
反向代理設置的步驟與此相似又跛。
然后是在PC上面的瀏覽器端設置代理ip碍拆,以Firefox瀏覽器為例,在“工具”下拉列表里點擊“選項”效扫,選中“高級”欄目中的“網(wǎng)絡”標簽頁倔监,點擊“設置”手動設置ip直砂。
在實現(xiàn)過程中菌仁,C的代理ip設置為P的eth0 ip,而S的反向代理ip設置為RP的eth0 ip静暂。這樣C和S之間在ip上就相當于兩個代理之間通信了济丘,可以理解為代理充當了防火墻,而反向代理充當了服務器偽裝的作用洽蛀。
代理設置完之后可以用ping檢查是否連通摹迷。
4.http傳輸測試
現(xiàn)在可以正式開始傳輸測試了,在C的瀏覽器端輸入S上面某文件的URL郊供,S作為服務器峡碉,但是URL中的ip是第3步設置的反響代理ip如果能順利下載文件即代表傳輸通過。
如果進一步地用appweb在瀏覽器前端顯示了各個網(wǎng)絡路徑的傳輸速率曲線驮审,就更加直觀了鲫寄。
四.總結
總的來說,代理和多徑技術的結合需要注意很多技術細節(jié)問題疯淫,需要不斷找方法克服地来。整個實現(xiàn)的流程圖如下: