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