使用樹莓派建立一個帶有移動網絡連接功能的路由器
樹莓派是一種小型單板電腦,盡管只有信用卡大小,但是能做許多事情。實際上,這個小電腦幾乎可以成為你想讓它成為的任何東西,只要你打開想象力。
樹莓派愛好者已經做了許多不同的項目,從簡單的程序到復雜的自動化項目和解決方案,如氣象站,甚至智能家居設備。這篇文章將展示怎樣使用 OpenWRT 項目將你的樹莓派變成帶有 LTE 移動網絡連接功能的路由器。
關于 OpenWRT 和 LTE
OpenWRT 是一個利用 Linux 內核為嵌入式設備開發的開源項目,它已經存在超過 15 年了,擁有一個龐大而活躍的社區。
有許多使用 OpenWRT 的方法,但是它的主要目的還是用在路由器上。它提供了包管理功能和一個完全可寫的文件系統,并且因為它的的開源屬性,你可以查看和修改代碼,并貢獻到開源生態。如果你想對你的路由器獲得更多的控制,這就是你想要的系統。
長期演進技術Long-term evolution(LTE)是一個基于 GSM/EGDE 和 UMTS/HSPA 技術的無線寬帶通信標準。我使用的 LTE 調制解調器是一個 USB 設備,可以為樹莓派電腦增加 3G 或 4G(LTE)蜂窩連接。
Teltonika TRM240 modem
安裝前的準備
對這個項目來說,你需要:
- 一個帶有電源線的樹莓派
- 一臺運行 Linux 的電腦
- 一張至少 16GB 的 SD 儲存卡
- 以太網線
- LTE 調制解調器(我使用的是 Teltonika ??TRM240??)
- 一張移動網絡的 SIM 卡
安裝 OpenWRT
首先,下載最新的 ??兼容樹莓派的 OpenWRT 的發布版本??。在 OpenWRT 官網,你可以看到 4 個鏡像:兩個 ext4 文件系統的和兩個 squashfs 文件系統的。我使用 ext4 文件系統。你可以下載 factory 或者 sysupgrade 鏡像,這兩個都運行良好。
OpenWRT image files
下載了鏡像后,你按照 ??以下的說明?? 需要解壓并安裝它到 SD 卡上。這將會花些時間安裝固件,需要些耐心。一旦安裝完成,在你的 SD 卡上將會有兩個分區。一個是用來放 bootloader ,另一個是 OpenWRT 系統。
啟動系統
要啟動你的新系統,插入 SD 卡到樹莓派,用以太網線把樹莓派和你的路由器(或者交換機)相連,然后點亮。
如果你有使用樹莓派的經驗,你可能習慣于通過終端使用 SSH 訪問過它,或者通過顯示器和鍵盤連接到樹莓派。OpenWRT 工作有一點點不同。你與這個系統交互是通過網頁瀏覽器,所以你必須能夠通過網絡來訪問你的樹莓派。
缺省狀態下,樹莓派使用的 IP 地址是:192.168.1.1。用來配置樹莓派的計算機必須和樹莓派在同一個子網中。如果你的網絡沒有使用 192.168.1.x 地址,或者你不能確定,在 GNOME 打開 “設置Settings” ,導航到網絡設置,選擇 “手動Manual” ,然后鍵入以下的 IP 地址和子網掩碼:
- IP 地址:192.168.1.15
- 網絡掩碼:255.255.255.0
IP addresses
在你的電腦上打開瀏覽器然后導航到 192.168.1.1 。這將打開一個驗證網頁,你可以登錄到你的樹莓派。
OpenWRT login page
首次登錄不需要密碼,所以直接點擊 “登錄Login” 按鈕繼續。
設置網絡連接
樹莓派只有一個以太網口,而普通路由器有兩個:一個是 WAN(有線區域網絡)口,另一個是 LAN (本地區域網絡)。
你有兩個選擇:
- 使用你的以太網口接入互聯網
- 使用 WIFI 接入互聯網
使用以太網連接
你決定使用以太網,導航到 “網絡Network → 接口Interfaces”。在這個設置頁面,按下與 “LAN” 接口對應的藍色 “編輯Edit” 按鈕。
LAN interface
應該會出現一個彈窗,在這個窗口中,你需要鍵入與你將要連接樹莓派的路由器子網匹配的 IP 地址。如果需要的話,修改子網掩碼,并輸入樹莓派將要連接的路由器的 IP 地址。
Enter IP in the LAN interface
保存設置,然后通過以太網將你的樹莓派連接到路由器。你現在可以用這個新的 IP 地址訪問樹莓派。
當你在把樹莓派投入生產環境使用之前,確保為你的 OpenWRT 設置一個密碼!
使用 WiFi 連接
如果你想通過 WiFi 將樹莓派連接到互聯網,導航到 “網絡Network → 無線Wireless” 。在 “無線Wireless” 菜單里,按下藍色的 “掃描Scan” 按鈕查找你的家庭網絡。
Scan the network
在彈出的窗口中,找到你的 WiFi 網絡然后連接它。不要忘記 “保存并應用Save and Apply” 設置。
在這 “網絡Network→ 接口Interfaces” 部分,你應該看到了一個新的接口。
New interface
當你在把樹莓派投入生產環境使用之前,確保為你的 OpenWRT 設置一個密碼!
安裝必要的軟件包
默認狀態下,路由器并沒有安裝許多軟件包。OpenWRT 提供了一個包管理器,帶有一系列你需要安裝的。導航到 “系統System → 軟件Software” 然后通過按下標有 “更新列表…Update lists...” 的按鈕來更新你的包管理器。
Updating packages
你將會看到許多軟件包;你需要安裝以下這些:
- ?
?usb-modeswitch?
? - ?
?kmod-mii?
? - ?
?kmod-usb-net?
? - ?
?kmod-usb-wdm?
? - ?
?kmod-usb-serial?
? - ?
?kmod-usb-serial-option?
? - ?
?kmod-usb-serial-wwan?
?(如果沒有安裝的話)
另外,??下載這個調制解調器管理軟件包??,然后在彈出的窗口中按下標有 “上傳軟件包…Upload Package...” 的按鈕來安裝它。重啟樹莓派讓安裝包生效。
設置移動網絡接口
所有這些軟件包被安裝完之后,你可以設置移動網絡接口。在連接調制解調器到樹莓派之前,請閱讀 ??調制解調器的說明書??,對其進行設置。然后連接你的移動調制解調器到樹莓派,然后等待一會直到調制解調器啟動。
導航到 “網絡Network → 接口Interfaces”。在頁面底部,按下 “添加一個新接口…Add new interface...” 按鈕。在彈出的窗口中,給你的接口起一個名字(比如 “mobile”),然后從下拉列表中選擇 “ModemManager” 。
Add a new mobile interface
按下一個標有 “創建接口Create Interface” 的按鈕。你應該看到一個新的彈出窗口。這是設置接口的一個主窗口。在這個窗口中,選擇你的調制解調器,然后鍵入像接入點名稱Access Point Name(APN)或是 PIN 碼之類的信息。
Configuring the interface
注意: 如果在列表中沒有調制解調器設備出現,嘗試重啟樹莓派或者安裝 ??kmod-usb-net-qmi-wwan?
? 軟件包 。
當你已經配置完你的接口,按下 “保存Save” 然后 “保存并應用Save and Apply”。給系統一些生效的時間。如果一切正常,你應該看到像這樣的一些東西。
Configured interface
如果你想通過接口查看你的網絡連接,你可以使用 SSH 連接到你的樹莓派 shell。在終端里,鍵入:
ssh root@192.168.1.1
缺省 IP 地址是 192.168.1.1:如果你修改了它,就用修改后的 IP 地址連接。當連接后,在終端里執行命令:
ping -I ppp0 google.com
如果一切正常運行,那么你應該從 Google 的服務器接收到 ping 回包 。
Terminal interface
??ppp0?
?? 是你創建的移動網絡接口的默認接口名稱。你可以通過使用 ??ifconfig?
? 命令檢查你的接口。它只顯示活動的接口。
設置防火墻
要讓移動網接口運行,你需要為移動網絡接口和本地網絡接口配置防火墻,以便引導流量到正確的接口。
導航到 “網絡Network → 防火墻Firewall”。在頁面的底部,你應該看到一個叫做 “區域Zones” 的部分。
Firewall zones
設置防火墻最簡單的方法就是調整 “wan” 區域。在 “已覆蓋的網絡Covered networks” 選項里按下 “編輯Edit” 按鈕,選擇你的移動網絡接口,然后 “保存并應用Save and Apply” 你的設置。如果你不想用 WiFi 連接你的樹莓派,你可以從 “已覆蓋的網絡Covered networks” 里刪除 “wwan” 接口,或者關閉 WiFi 連接。
Firewall zone settings
如果你想為每個接口設置一個獨立區域,只需創建一個新區域然后分配必要的接口即可。舉個例子,你可能想有一個覆蓋移動網絡接口的區域,并且通過它來轉發 LAN 接口流量。按下 “添加Name” 按鈕,然后給你的區域 “命名Name”, 檢查 “偽裝” 復選框,選中 “已覆蓋的網絡Covered networks” ,并選擇哪些區域可以轉發其流量。
Firewall zone settings
然后 “保存并應用Save and Apply” 這些修改。現在你有一個新的區域。
設置一個接入點
最后一步是為你的設備接入互聯網設置一個網絡接入點。要設置一個接入點,導航到 “網絡Network → 無線Wireless” 。你將會看到一個 WiFi 設備接口,一個名為 OpenWRT 的禁用的接入點,以及一個用于通過 WiFi 連接互聯網的連接(如果你之前沒有禁用或刪除它)。在這個禁用的接口上,按下 “編輯Edit” 按鈕,然后 “啟用Enable” 該接口。
Enabling wireless network
如果你想,你可以通過編輯 “ESSID” 選項來修改接口名稱。你也可以選擇它要關聯的網絡。默認情況下,它會與 LAN 接口關聯。
Configuring the interface
要為這個接口添加密碼,選擇 “無線安全Wireless Security” 選項,選擇 “WPA2-PSK” 加密方式然后在 “密鑰Key” 選項字段鍵入接口的密碼。
Setting a password
然后 “保存并應用Save and Apply” 設置。如果設置正確的話,當用你的設備掃描可用接入點的話,你應該可以看到你分配了名稱的新接入點。
額外的軟件包
如果你愿意,你可以通過網頁界面為你的路由器下載額外的軟件包。只需到 “系統System → 軟件Software” 然后安裝你想從列表或者互聯網上下載的軟件包并上傳它。如果你在列表中沒有看到任何軟件包,請按下 “更新列表…Update lists...” 按鈕。
你也可以添加其他擁有適合與 OpenWRT 一起使用的軟件包的倉庫。軟件包和它們的網頁界面是分開安裝的。軟件包名稱是以 “luci-” 開始的是網也界面軟件包。
Packages with luci- prefix
試試看
這就是我的樹莓派路由設置的過程。
Raspberry Pi router
從樹莓派建立一個路由器不是很困難。缺點是樹莓派只有一個以太網接口。你可以用一個 USB-to-Ethernet 適配器來增加更多的網口。不要忘記在接口的網站上設置網口。
OpenWRT 支持大量的移動調制解調器,你可以用管理調制解調器的通用工具 modemmanager 為它們設置移動網絡接口。