很長時(shí)間沒有更新博客了。這段時(shí)間,很多智能化的新產(chǎn)品層出不窮,穿戴設(shè)
備,智能路由器啥的,可以說,移動(dòng)互聯(lián)的時(shí)代正在到來。所以,本著人生苦短,
及時(shí)折騰的原則,投身其中,也買了幾塊板子開始折騰。
先上張圖:
個(gè)人mini服務(wù)器。
目前,我們的長城越來越強(qiáng)大,google可以算是歇菜了,現(xiàn)在查資料,基本上
靠運(yùn)氣。寫個(gè)博客、圍脖啥的,稍微一不小心,就碰到敏感詞,都沒啥積極性了,
去年,弄了塊pcduino的開發(fā)板,征用了兒子幾塊樂高積木,自己組了個(gè)服務(wù)器,
上面博客、文件共享、代碼管理能帶的都帶上。空閑的時(shí)候,記記日記,貼貼照片,
,順帶文件備份啥的,自娛自樂。當(dāng)然,光靠開發(fā)板自帶的存儲(chǔ)空間是不夠的,需
要附加存儲(chǔ)。考慮電源的功率問題和靜音要求,弄了個(gè)ssd加移動(dòng)硬盤盒。現(xiàn)在跑
得不錯(cuò),已經(jīng)運(yùn)行了79天。板子買的較早,加上ssd的成本,在800 RMB 左右。
第二張圖:
去年開始,新的,基于ARM芯片可以玩的板子越來越多了。樹莓就不說了,
cubieboard、swift board、beaglebone等,性能、接口等都比以前好。所以,又
入手了一塊。 banana pi,1G內(nèi)存,關(guān)鍵是帶一個(gè)千兆網(wǎng)口,可以配合使用的系統(tǒng)
也多。繼續(xù)折騰。再配塊便宜點(diǎn)的64G ssd,總價(jià)格在500 RMB 左右。
相對來說,用這個(gè)開發(fā)板組個(gè)無線路由器還是很簡單的。找個(gè)支持的無線網(wǎng)卡,
NAT,配上相關(guān)的軟件,很容易實(shí)現(xiàn),網(wǎng)上也有教程。
但是路由器,如果僅僅實(shí)現(xiàn)NAT轉(zhuǎn)發(fā)上網(wǎng),qos等功能,其實(shí)還算是很簡單的。
相比軟路由,上網(wǎng)行為管理,應(yīng)用層協(xié)議分析,協(xié)議過濾等功能,還是缺很多的。
我想要的功能,就是記錄每個(gè)人上網(wǎng),什么時(shí)候,都上了些什么網(wǎng),做分析和
統(tǒng)計(jì)。這個(gè)功能,在目前市面上100多的路由器中,因?yàn)橛布杀镜年P(guān)系,基本上
都是沒有的。盡管刷openwrt系統(tǒng)的路由,如果配上外接存儲(chǔ),能把日志存下來,
但因?yàn)閮?nèi)存有限,效果不好。
但是,如果用linux做軟路由,內(nèi)存足夠的情況下,可以通過iptable+squid的
方式實(shí)現(xiàn)。現(xiàn)在的開發(fā)板,內(nèi)存可以到1G,芯片都是雙核1.6G,性能已經(jīng)足夠強(qiáng)大。
所以,本次折騰的目標(biāo)就是用開發(fā)板,實(shí)現(xiàn)透明代理,用以記錄所有人員的上網(wǎng)日
志。
一個(gè)網(wǎng)口,配合LINUX虛擬網(wǎng)卡,也可以實(shí)現(xiàn)路由功能。
操作系統(tǒng):
Lubuntu for arm,寫到SD卡上啟動(dòng)。
接下來介紹步驟:
1、LINUX啟動(dòng)數(shù)據(jù)包轉(zhuǎn)發(fā)。
2、設(shè)置網(wǎng)卡eth0的ip地址,網(wǎng)關(guān)等。
3、設(shè)置虛擬網(wǎng)卡,作為內(nèi)網(wǎng)網(wǎng)段。
ifconfig eh0:0 192.168.0.1 netmask 255.255.255.0
虛擬網(wǎng)卡不用設(shè)網(wǎng)關(guān)。
4、安裝和設(shè)置dnsmasq,啟動(dòng)dns cache和dhcp服務(wù)
5、安裝squid3,設(shè)置訪問規(guī)則和其他參數(shù),作為透明代理使用
http_port 192.168.0.1:3128 transparent
考慮日志存在SD卡上較慢,可以把日志存在內(nèi)存中。
6、設(shè)置iptabes,啟動(dòng)NAT和端口轉(zhuǎn)發(fā)
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j
REDIRECT --to-ports 3128
其他說明:
因?yàn)槭且粋€(gè)網(wǎng)口做路由,所以需要一個(gè)HUB或交換機(jī),連接上行網(wǎng)絡(luò)和內(nèi)網(wǎng)。
吞吐量測試:
使用一臺(tái)NAS模擬外網(wǎng)機(jī)器,計(jì)算機(jī)模擬內(nèi)網(wǎng),都接千兆交換機(jī)。拷貝文件測試。
4G數(shù)據(jù)文件,路由工作在千兆雙工模式
下行:
20MB/s 左右,系統(tǒng)負(fù)載峰值0.09左右
上行:
16.5MB/s 左右,系統(tǒng)負(fù)載峰值0.26左右。
日志分析:
squid的日志,有現(xiàn)成工具進(jìn)行分析。sarg,安裝后,指定日志文件和輸出路
徑就可以了。
后記:
因?yàn)楣β屎挽o音的需要,硬盤選了低端的64G SSD,190左右。對比前段時(shí)間比
較火的小米路由,缺雙頻的無線WIFI。但內(nèi)存相對來說高一點(diǎn),加上軟件豐富,可
玩性更高一些。