1. 程式人生 > >在PC搭建OpenWRT軟路由

在PC搭建OpenWRT軟路由

網上 -c 鏡像 menu virtual conf http 導入 點號

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軟路由