在PC搭建OpenWRT軟路由
1. 因《智能路由器開發指南》而起,想研究使用下OpenWRT
2.虛擬機使用的的VirturalBox,VmWare也可以。重點在網絡配置上。
可以在網上搜到虛擬機設置中的:HostOnly,NAT,Bridging三種模式的詳細說明,組網。後面有機會我也詳細奉上。
3.下載源碼:
(1)記住,OpenWRT準確的來說應該是一種框架,和構建路由器的工具集合,Linux-Kernel也僅僅是他運行的平臺,本質上也是平臺工具。所以你下的軟件包代碼量很少的,都是一堆編譯腳本,配置腳本。
(2)工具代碼包要在編譯過程中由編譯腳本下載,自己可以提前離線下好,前提是編譯過相同版本(相同軟件編譯腳本使用的git節點號不一樣,稍後說明)。
(3)如果沒有(2),請保證自己的網絡能訪問Internet。
下載鏈接:https://github.com/openwrt/openwrt/releases 找一個完整的版本,應書上的版本,我選擇的是Chaos Calmer (15.05) https://github.com/openwrt/openwrt/archive/v15.05.tar.gz。
4.編譯源碼
(1)正常流程。
書上給的構建環境是Ubuntu14.04,由於我自己有PC是裝了Debian 8 的,所以就直接用的自己的PC,效果是一樣的,都是x86。
解壓後,基本按照書上來編譯:
./scripts/feeds update 更新包定義
./scripts/feeds install –a 安裝所有包 這些都是在解壓後的openwrt源碼包下進行。
make defconfig,檢查編譯工具是否齊全。
make menuconfig 配置x86平臺
選擇一些工具:tcpdump,gdb,web管理界面LuCI,看自己需要
在make menuconfig的首頁,使用查找[鍵盤上的"/"鍵]
選好後,make:這裏可以cat /proc/cpuinfo看看自己的編譯環境是CPU多少核,使用make –j2:使用2個線程並行編譯;-j4就是四線程。編譯出錯,編譯腳本會告訴你看錯誤[make V=s]。這些錯誤要會看,認真看,由於我是編號了,這個文檔是事後寫的,我就寫了。發揚找問題點的作風。
(2)FAQ:
a.編譯腳本下載軟件包速度太慢或者直接下不動,可以在 make –j1 V=s下看看他在下哪個包,自己去baidu包的名字,會給你很多選擇自己下。
b.遇到下載OpenWRT工程/框架下的工具,會涉及到git提交編號:例如
黃線標出的就是git提交(commit)號:
http://git.openwrt.org/ 這是openWRT下的工程網址,可能是為了專門構建openWRT路由環境,由社區專門開發的工具集合。
上面的圖片這些文件怎麽找出來,找出來如何改?
uhttpd為例:這個最新版本的OpenWRT是在2015-08-17取用uhttpd構建的,找不到相關日期,就找最接近的。會看到:
點擊commit鏈接進入:
然後點擊 snapshot 下載。
下載後,解壓你下載軟件包,把文件夾命名為編譯出錯的文件夾名字,其實就是刪掉後面的部分提交號。然後壓縮成下載時包名。就是我上面截圖的包名形式。放到dl文件夾。
5.編譯完成後的事情:這裏可以在網上找,在虛擬機上安裝openwrt,文章很多。大概是這些事:
(1)把bin/x86下的鏡像:openwrt-x86-generic-combined-ext4.img.gz轉換成虛擬機要求的格式
(2)新建虛擬機,啟動openwrt。
6.網絡配置:這裏非常重要!!![強烈建議把實際的家用路由器用熟練,明白原理]
(1)兩張網卡必不可少;一張作為wan口,一張作為lan口。實際路由器本質上就是一個wan口,一個lan口。你看到那麽多lan口,實質上用到的就一張網卡分成vlan橋接在一起的。
(2)一定要分清你的openwrt虛擬機是哪個網卡作為lan口,哪個作為wan口。簡單的方法:ifconfig後看看br-lan的mac地址和哪個網口的mac地址一致。一致的那個就是lan口,反之就為wan口。
修改配置文件/etc/config/network,來決定lan口和wan口與網口的對應關系。
wan口用來讓你訪問Internet,凸顯這是個可用的路由器。wan口的dns服務器設置成電信dns地址61.139.2.69(四川成都),我家用的電信的
a.把 interface ‘lan‘的ip改一下,我改的是192.168.4.1防止和家裏的網關沖突。
b.wan口網卡的虛擬機設置,我用的是橋接模式,所以wan的ip配置和我的電腦一樣
在虛擬機裏有兩種設置方法:
a.設置成NAT模式,直接可以共享宿主機的IP,讓openwrt上網;在openwrt上ping網址檢驗;不需要再openwrt中設置對應網卡;只能用接入該路由器的虛擬機訪問web管理
我用的是windowsXP虛擬機,效果很不好。也能用ssh訪問。
b.設置成橋接模式,這個時候,要想openwrt能ping通網址,就要在openwrt中把作為wan口的網卡作為和pc一樣的電腦設在同一網段內;可以在宿主機上用該ip訪問web管理
,我自己的pc,效果很好。也能連ssh。
配置dns文件/etc/resolv.conf為192.168.0.1,配置網關 route add default gw 192.168.0.1 我家的真實路由器lan網關
c.lan口網卡的虛擬機設置,要在虛擬機設置成內部網絡
(3)額外的操作:a.關掉openwrt防火墻:/etc/init.d/firewall stop,每次外部pc在ssh連不了,web也不能登錄時,請執行這個操作。
7.檢驗成果:
(1)在網上下了windows xp的VirtualBox鏡像,導入了虛擬機。然後網卡設置為自動獲取就可以。可以自己驗證是否獲取的OpenWRT軟路由的ip。
,我的windowsXP也能上外網。
(2)所有的網卡在虛擬機上控制芯片都設置為第一個,PCnet-PCI II(Am79C970A),設置成其他的,有時候網絡不通,不穩定。
後記:
(1)opkg update用來更新源,用過Debian/Ubunt的同學知道的,在openwrt下安裝LuCI,直接用opkg安裝:配置/etc/opkg.conf 這裏主要是在官網下載很慢的情況下,可以采用國內的鏡像。
註釋掉這句,防止簽名失敗,不能更新。
歡迎答疑。。。。。,討論。。。。。
在PC搭建OpenWRT軟路由