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