注冊博客園挺久了,一直比較懶,雖然有幾次想寫點文章,但是一直沒有行動,今天給大家帶來一篇比較有意思的文章,不涉及技術上的,希望大家輕拍。本文的文字和圖片全部為原創,尊重作者轉載請注明出處!
說起路由器能夠干嘛,大部分想到的就是用來組建局域網呀,或者偶爾用它做做BT、迅雷脫機下載之類的,如果我告訴你用路由器還能用來做SVN服務器,甚至運行mysql+php你信么?今天我們就來打破這個傳統思維,用路由器來做SVN服務器。
SVN托管服務大家都不陌生了,我最早開始用的是谷歌提供的SVN,因為在上面托管的項目都是開源的,所以當有些項目不方便在網上公開的時候,就需要自己搭建SVN服務器了。windows、linux的用的是最多的了,但是有時候為了放一個SVN要單獨放一台電腦並24小時開機,不符合節能減耗的目的。所以今天筆者就做一個大膽的嘗試,使用路由器架設SVN服務器,路由器的功耗只有電腦的百分之一,而且平常也都要開機,這看起來有點像天方夜譚,因為路由器不論是CPU、內存還是ROM上,都遠遠不如一台電腦,甚至不如一台普通的安卓手機的性能,但是“實踐是檢驗真理的唯一標准”,所以我們今天就來做一個嘗試並檢驗它的可能性。
我們都知道,路由器的操作系統也是基於Linux的,既然Linux上可以搭建SVN,那理論上路由器也是可以的,只是我們要用到第三方的路由器固件,因為路由器自帶的固件是封閉的,功能上也有一定的限制,所以我們這里需要一台滿足這樣需求的路由器:至少帶一個USB接口(用來掛載U盤或者移動硬盤之類的);可以刷DD-WRT、Openwrt、TOMATO其中的一種;CPU主頻在300MHZ,RAM在32M以上。在本文中,我們用的是華為的HG255D路由器,因為這台路由器全新的也就不到100塊錢,淘寶二手的50左右即可,有一個USB接口,硬件配置是:CPU Ralink RT3052@384Mhz,16M FLASH,32M DDR內存(+20可以升級64M性能更好)。可以刷DD-WRT和Openwrt系統。
路由器怎么刷第三方固件網上已經有很多資料了,這里就不在詳細說明,我們直接拿刷好DD-WRT系統作為今天的測試平台,其他系統基本上操作也都差不多。
1、首先拿一個1G以上的U盤,在Linux系統中格式化為ext3格式,然后插在路由器的USB接口上,打開瀏覽器輸入192.168.0.1(根據自己實際IP)進入路由器管理界面,然后點“服務”-“USB”選項,按照下圖中打開USB支持,並將U盤掛載為opt,點應用后如果提示Status: Mounted on /opt則掛載成功。
2、接下來再點選項卡“服務”-“服務”,然后啟用SSH並應用,如下圖所示:
3、第三步下載PuttyMan,打開軟件后新建連接,注意用戶名那邊無論路由器的用戶名是什么都要填root,密碼則是路由器的密碼,如下圖
4、連接路由器,如果出現下圖中信息,那么恭喜你,已經離成功只有一半了,否則請重復前面2步。
5、在PuttyMan客戶端中輸入以下命令:(請先確認USB存儲設備已掛載到/opt)
wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d '\r' > /tmp/optware-install.sh sh /tmp/optware-install.sh
在這里我要講一下題外話,原先是本來考慮用其他Linux系統安裝svn的方法,直接下載svn安裝包,但是試了很多次都不成功,因為路由器的Linux是屬於輕量型的,里面很多庫都不支持,比如gcc庫,而安裝gcc庫的時候又缺少其他的依賴庫,所以走了不少彎路,事實也證明用這種方法幾乎是安裝不了的,因為安裝了太多的庫也會導致路由器硬件性能跟不上。所以后面才想到用optware這個更簡單的第三方軟件運行環境。這也是為什么第一步中要把U盤掛載為opt的原因。
6、等安裝好optware后會提示successfully,接下來就可以用功能強大的optware了,在命令行中繼續輸入以下命令更新opt軟件列表:
cd /opt ipkg-opt update
7、你可以輸入ipkg-opt list顯示所有可安裝的軟件(還可以安裝httpd、mysql、php等等,掛上你的個人主頁),這里我們只需要安裝SVN,所以輸入
ipkg-opt install svn
8、安裝好SVN后可以在命令行中輸入svnserve --version檢查一下SVN是否安裝成功,如果可以正常顯示svn版本號,那么恭喜你,你已經成功在路由器上運行SVN服務了,接下來讓我們啟動SVN服務,輸入命令:
svnserve -d -r /opt/svndata/
9、為了方便每次路由器關機后會自動啟動服務,我們可以把它添加到路由器的啟動命令中,點“管理”-“命令”選項卡,然后在指令的最后面添加以上代碼並保存為啟動指令即可。
10、接下來就是測試了,為了方便測試我們開啟路由器的Samba服務,進入“服務”-“NAS”選項卡,啟用Samba服務,並在文件分享那邊選擇opt
11、然后打開我的電腦,點“工具”-“映射網絡驅動器”,將路由器U盤映射為A盤,映射只是為了方便訪問,也可以直接在運行中輸入\\192.168.0.1來訪問
12、回到命令行中輸入以下命令創建版本庫:
cd /opt/svndata svnadmin create svntest
13、創建成功后打開剛剛的文件夾,修改這3個配置文件(添加用戶名讀寫權限等),具體方法參照Linux中svn配置
14、然后回到windows中檢出,在版本庫中加入我們的程序代碼並提交。
提交測試:
檢出測試:
路由器負載顯示正常(當負載超過7的時候路由器一般會死機):
哈哈,太令人振奮了,和以前用的SVN服務器用起來沒什么兩樣,簡直看不出來這是用一台路由器搭建的SVN,測試結果很成功,太完美了。
15、如果需要外網可以訪問,則啟用DDNS即可,這樣不管家里的IP怎樣變化,也可以用域名來訪問了,這樣使用更方便。如下圖設置,方法很簡單就不再具體說明。如果你覺得本文對你有幫助,就幫我點一下右下角的推薦吧。(完)