OpenWrt是一個基於Cisco源碼的第三方路由器固件。
OpenWrt功能:
自定義功能
參考鏈接:https://zhuanlan.zhihu.com/p/293003353
OpenWrt可以被描述為一個嵌入式的 Linux 發行版。(主流路由器固件有 dd-wrt,tomato,openwrt,padavan四類)對比一個單一的、靜態的系統,OpenWrt的包管理提供了一個完全可寫的文件系統,從應用程序供應商提供的選擇和配置,並允許您自定義的設備,以適應任何應用程序。
OpenWrt的特點:
- 可擴展性好,可在線安裝所需功能,功能包豐富
- 是一台完整的Linux工作站,文件系統可讀可寫,便於開發者學習和實踐
一、搭建編譯環境
二、下載OpenWrt源碼並編譯
- 下載速度太慢可以從git克隆
OpenWrt目錄結構:

上圖是openwrt目錄結構,其中第一行是原始目錄,第二行是編譯過程中生成的目錄。
三、將OpenWrt刷入路由器
要在路由器上使用OpenWrt,首先要將路由器固件刷新為OpenWrt,即相當於OpenWrt 系統的安裝,不同型號的路由器的安裝方法可能也會不一樣,但一般常用的有三種方法:
- Web上傳固件更新
- PFTP上傳固件更新
- 編程器寫入固件
四、開始使用OpenWrt
要對OpenWrt進行配置,一般有兩條途徑:
- SSH登錄通過命令行控制
- Web登錄通過Web界面設置
參考鏈接:https://blog.csdn.net/p1279030826/article/details/108473779
OpenWrt的配置很豐富,幾乎可以完成任何網絡結構。
OpenWrt網絡結構
參考鏈接:https://www.cnblogs.com/happygirl-zjj/p/6008365.html

上圖是一個支持OpenWrt的路由器網絡結構:這個路由器內部交換機有6個口,其中1個WAN口、4個LAN口、Port5默認連接內部網卡eth0,連接Wifi的無線網卡接eth1,eth2保留。
OpenWrt依靠VLAN和Bridging可以實現靈活性。
VLAN
一般路由器為節約成本只有一張網卡(我的理解是以太網控制芯片),但如何接入多個網絡呢?(路由器按常理至少要兩張網卡吧),這就是VLAN的功勞
VLAN(Virtual Local Area Network)是虛擬局域網縮寫,是把局域網中的同一工作組的主機連在一起,隔絕不同的子網(在一個或多個交換機上),這種局限增強了工作組間的保密性,也減少了全面廣播的副作用。用了VLAN也就把連接子網用的路由器給省了,省錢而且效率還很高。
VLAN需要路由器內置的交換機支持(一般都支持),最多可以划分4096個VLAN。一般使用只划分兩個VLAN:WAN和LAN,分別對應外網和內網。如果是純粹的VLAN,則WAN和LAN之間是隔離的,互相不能通信,但在自己的VLAN里可以自由通信。
Trunking
用一張網卡怎么連接兩個網絡呢?上圖中Port5一邊連接路由器,一邊連接網卡eth0,它的作用就是連接vlan0和vlan1。這就是采用VLAN的Trunking技術,在Trunk Port(port5)經過的以太網幀上打標簽(Tagging)用以區分來自那個VLAN,然后路由器用網卡eth0接收並處理標簽從而處理(在CPU中處理),這就是所謂的單臂路由器,很形象啊:)。
Bridging
網橋說穿了就是交換機,它就是用軟件模擬以太網交換機,連接多個以太網網卡(虛擬的或物理的)分享同一個IP子網。在OpenWrt中,網橋主要用來連接無線WIFI網絡和LAN,組成一個統一的內部局域網。
一張示意圖VLAN、Trunking和Bridging

