OpenWrt:一個開源的家用路由器固件替代品
如果你在家里閱讀這篇文章,你可能是用一個 LTE/5G/DSL/WIFI 路由器聯網的。這種設備通常負責在你的本地設備(智能手機、PC、電視等)之間路由數據包,并通過內置的調制解調器提供對 WWW 的訪問。你家里的路由器很可能有一個基于網頁的界面,用于配置該設備。這種界面往往過于簡單,因為它們是為普通用戶制作的。
如果你想要更多的配置選項,但又不想花錢買一個專業的設備,你應該看看其他的固件,如 ??OpenWrt??。
OpenWrt 的特點
OpenWrt 是一個基于 Linux 的、針對嵌入式網絡設備的開源操作系統。它主要用于替代各種家用路由器上的原始固件。OpenWrt 具備一個好的路由器應該具備的所有有用功能,如 DNS 服務器(??dnsmasq??),WiFi 接入點(AP)和客戶端功能,用于調制解調器功能的 PPP 協議,而且,與標準固件不同,這一切都是可以完全配置的。
LuCI 網頁界面
OpenWrt 可以通過命令行(SSH)或使用 GUI 配置界面(??LuCI??)進行遠程配置。LuCI 是一個用 ??Lua?? 編寫的輕量級、可擴展的網頁 GUI,它可以精確地配置你的設備。除了配置,LuCI 還提供了很多額外的信息,如實時圖表、系統日志和網絡診斷。
LuCI 網頁界面
LuCI 有一些可選的擴展,以增加更多的配置選擇。
可寫文件系統
它的另一個亮點是可寫文件系統。原有的固件通常是只讀的,而 OpenWrt 配備了一個可寫的文件系統,這要歸功于一個巧妙的解決方案,它將 OverlayFS 與 SquashFS/JFFS2 文件系統相結合,允許安裝軟件包以增強功能。在 ??OpenWrt 文檔?? 中可以找到更多關于文件系統架構的信息。
擴展
OpenWrt 有一個相關的軟件包管理器,??opkg??,它允許安裝額外的服務,比如 FTP 服務器、DLNA 媒體服務器、OpenVPN 服務器、用于實現文件共享的 Samba 服務器、控制電話的 Asterisk 等等。當然,有些擴展需要適當的底層硬件資源。
動機
你可能想知道為什么要冒著對你的設備造成不可修復的損害和失去保修的風險,而嘗試更換路由器制造商的固件。如果你的設備以你想要的方式工作,那么你可能不應該。永遠不要碰一個正在運行的系統!但是,如果你想增強功能,或者你的設備缺乏配置選項,那么你應該看看 OpenWrt 是否可以成為一種補救措施。
在我的例子中,我想要一個旅行用的路由器,當我在露營地的時候,我可以把它放在一個合適的位置,以便讓其它設備與這個本地 WiFi 接入點(AP)保持良好連接。該路由器將作為一個普通的客戶端連接到互聯網,并廣播它的 WiFi 接入點讓我的其它設備連接到它。這樣我就可以配置我的所有設備與這個路由器的接入點連接,當我在其他地方時我只需要改變路由器的客戶端連接。此外,在一些露營地,你只能得到一個單一設備的訪問代碼,我可以通過這種設置來加強。
作為我的旅行路由器,我選擇 TP-Link TL-WR902AC 的原因如下:
- 很小
- 兩根 WiFi 天線
- 5V 電源(USB)
- 低功耗
- 成本效益高(你以 30 美元左右的價格得到它)
為了了解它的尺寸,這里是它在樹莓派 4 旁邊的樣子:
TP-Link TL-WR902AC 在樹莓派旁邊
盡管這個路由器帶來了我所需要的所有硬件功能,但我很快發現,默認的固件并不能讓我按照我想要的方式配置它。該路由器主要是作為一個 WiFi 接入點,它可以復制現有的 WiFi 網絡或通過板載以太網接口將自己連接到網絡。默認的固件對于這些使用情況是非常有限的。
(LCTT 譯注:此型號國內沒有銷售,它的特點之一是可以通過插入 3G/4G USB 網卡連接到互聯網,但由于它不在國內銷售,所以沒有支持哪種國內 3G/4G USB 網卡的說明,我 ??查下來?? 似乎華為的 E3372h-320 是可用的。有相關實踐的同學可以分享一下經驗。
國內銷售的其它類似型號只能通過以太網口或 WiFi 連接到互聯網,這種情況下,如果只能通過 3G/4G 連接互聯網,那需要另外買一個隨身 WiFi /移動路由器。)
幸運的是,該路由器能夠運行 OpenWrt,所以我決定用它來替換原來的固件。
安裝
當你的 LTE/5G/DSL/WiFi 路由器符合 ??最低要求?? 時,很有可能在它上面運行 OpenWrt。下一步,你要查看 ??硬件表??,檢查你的設備是否被列為兼容,以及你要選擇哪個固件包。OpenWrt 的 ??TP-Link TL-WR902AC?? 的頁面還包括安裝說明,其中描述了如何刷入內部存儲器。
刷入固件的過程在不同的設備之間可能會有所不同,所以我就不詳細介紹了。簡而言之,我必須通過將設備連接到一個具有特定 IP 地址的網絡接口上的 TFTP 服務器,重命名 OpenWrt 固件文件,然后按復位按鈕啟動設備。
配置
一旦刷入成功,你的設備現在應該用新的固件啟動了。現在啟動可能需要更長的時間,因為與默認固件相比,OpenWrt 具有更多的功能。
為了開始配置,需要在你的 PC 和路由器之間建立一個直接的以太網連接,OpenWrt 在此充當了一個 DHCP 服務器,并將你的 PC 的以太網適配器配置為一個 DHCP 客戶端。
在 Fedora Linux 上,要激活你的網絡適配器的 DHCP 客戶端模式,首先你必須通過運行找出連接的 UUID:
選擇你要修改的連接的 UUID,然后運行:
你可以在 ??Fedora 聯網維基?? 中找到更多關于這些命令的信息。
在你連接到路由器后,打開一個網頁瀏覽器并導航到 ??http://openwrt/??。現在你應該看到 LuCI 的登錄管理器:
LuCI 登錄
使用 ??root?
? 作為用戶名,并將密碼留空。
配置 WiFi 和路由
要配置你的 WiFi 天線,請點擊 “網絡Network” 菜單并選擇 “無線Wireless”。
LuCI 無線配置
在我的設備上,上面的天線 ??radio0?
? 工作在 2.4GHz 模式,并連接到名為 ??MOBILE-INTERNET?
? 的本地接入點。下面的天線 ??radio1?
? 工作在 5GHz,有一個相關的接入點,SSID 為 ??OpenWrt_AV?
?。通過點擊 “編輯Edit” 按鈕,你可以打開設備配置,以決定該設備屬于 LAN 還是 WWAN 網絡。在我的例子中,接入點 ??OpenWrt_AV?
? 屬于 LAN 網絡,客戶端連接 ??MOBILE-INTERNET?
? 屬于 WWAN 網絡。
LuCI 配置屏幕
配置的網絡在 “接口Interfaces” 面板的 “網絡Network” 下列出。
設備列表
為了獲得我想要的功能,網絡流量必須在 LAN 和 WWAN 網絡之間進行路由。路由可以在 “網絡Network” 面板的 “防火墻Firewall” 部分進行配置。我沒有在這里做任何改動,因為在默認情況下,網絡之間的流量是被路由的,而傳入的數據包(從 WWAN 到 LAN)必須通過防火墻。
防火墻設置
因此,你需要知道的是一個接口是屬于 LAN 還是 (W)WAN。這個概念使它相對容易配置,特別是對初學者來說。你可以在 ??OpenWrt 聯網基礎?? 指南中找到更多信息。
專屬門戶
公共 WiFi 接入點通常受到 ??專屬門戶?? 的保護,你必須輸入一個訪問代碼或類似的代碼。通常情況下,當你第一次連接到接入點并試圖打開一個任意的網頁時,這種門戶就會出現。這種機制是由接入點的 DNS 服務器實現的。
默認情況下,OpenWrt 激活了一個安全功能,可以防止連接的客戶端受到 ??DNS 重新綁定攻擊??。OpenWrt 的重新綁定保護也阻止了專屬門戶網站被轉發到客戶端,所以你必須禁用重新綁定保護,以便你可以到達專屬門戶網站。這個選項在 “網絡Network” 菜單的 “DHCP 和 DNSDHCP and DNS” 面板中。
嘗試 OpenWrt
由于升級到 OpenWrt,我得到了一個基于商品硬件的靈活的旅行路由器。OpenWrt 使你的路由器具有完全的可配置性和可擴展性,而且由于其制作精良的網頁 GUI,它也適合初學者使用。甚至有一些 ??精選路由器?? 在出廠時已經安裝了 OpenWrt。你還可以用很多 ??可用的軟件包?? 來增強你的路由器的功能。例如,我正在使用 ??vsftp?? FTP 服務器,在連接的 U 盤上托管一些電影和電視劇。看看該 ??項目主頁??,在那里你可以找到許多切換到 OpenWrt 的理由。
圖片來自: Stephan Avenwedde,??CC BY-SA 4.0??