使用樹莓派建立一個帶有移動網路連接功能的路由器

樹莓派是一種小型單板電腦,儘管只有信用卡大小,但是能做許多事情。實際上,這個小電腦幾乎可以成為你想讓它成為的任何東西,只要你打開想像力。
樹莓派愛好者已經做了許多不同的項目,從簡單的程序到複雜的自動化項目和解決方案,如氣象站,甚至智能家居設備。這篇文章將展示怎樣使用 OpenWRT 項目將你的樹莓派變成帶有 LTE 移動網路連接功能的路由器。
關於 OpenWRT 和 LTE
OpenWRT 是一個利用 Linux 內核為嵌入式設備開發的開源項目,它已經存在超過 15 年了,擁有一個龐大而活躍的社區。
有許多使用 OpenWRT 的方法,但是它的主要目的還是用在路由器上。它提供了包管理功能和一個完全可寫的文件系統,並且因為它的的開源屬性,你可以查看和修改代碼,並貢獻到開源生態。如果你想對你的路由器獲得更多的控制,這就是你想要的系統。
長期演進技術 (LTE)是一個基於 GSM/EGDE 和 UMTS/HSPA 技術的無線寬頻通信標準。我使用的 LTE 數據機是一個 USB 設備,可以為樹莓派電腦增加 3G 或 4G(LTE)蜂窩連接。

安裝前的準備
對這個項目來說,你需要:
- 一個帶有電源線的樹莓派
- 一台運行 Linux 的電腦
- 一張至少 16GB 的 SD 儲存卡
- 乙太網線
- LTE 數據機(我使用的是 Teltonika TRM240)
- 一張移動網路的 SIM 卡
安裝 OpenWRT
首先,下載最新的 兼容樹莓派的 OpenWRT 的發布版本。在 OpenWRT 官網,你可以看到 4 個鏡像:兩個 ext4 文件系統的和兩個 squashfs 文件系統的。我使用 ext4 文件系統。你可以下載 factory 或者 sysupgrade 鏡像,這兩個都運行良好。

下載了鏡像後,你按照 以下的說明 需要解壓並安裝它到 SD 卡上。這將會花些時間安裝固件,需要些耐心。一旦安裝完成,在你的 SD 卡上將會有兩個分區。一個是用來放 bootloader ,另一個是 OpenWRT 系統。
啟動系統
要啟動你的新系統,插入 SD 卡到樹莓派,用乙太網線把樹莓派和你的路由器(或者交換機)相連,然後點亮。
如果你有使用樹莓派的經驗,你可能習慣於通過終端使用 SSH 訪問過它,或者通過顯示器和鍵盤連接到樹莓派。OpenWRT 工作有一點點不同。你與這個系統交互是通過網頁瀏覽器,所以你必須能夠通過網路來訪問你的樹莓派。
預設狀態下,樹莓派使用的 IP 地址是:192.168.1.1。用來配置樹莓派的計算機必須和樹莓派在同一個子網中。如果你的網路沒有使用 192.168.1.x 地址,或者你不能確定,在 GNOME 打開 「 設置 」 ,導航到網路設置,選擇 「 手動 」 ,然後鍵入以下的 IP 地址和子網掩碼:
- IP 地址:192.168.1.15
- 網路掩碼:255.255.255.0

在你的電腦上打開瀏覽器然後導航到 192.168.1.1 。這將打開一個驗證網頁,你可以登錄到你的樹莓派。

首次登錄不需要密碼,所以直接點擊 「 登錄 」 按鈕繼續。
設置網路連接
樹莓派只有一個乙太網口,而普通路由器有兩個:一個是 WAN(有線區域網路)口,另一個是 LAN (本地區域網路)。
你有兩個選擇:
- 使用你的乙太網口接入互聯網
- 使用 WIFI 接入互聯網
使用乙太網連接
你決定使用乙太網,導航到 「 網路 → 介面 」。在這個設置頁面,按下與 「LAN」 介面對應的藍色 「 編輯 」 按鈕。

應該會出現一個彈窗,在這個窗口中,你需要鍵入與你將要連接樹莓派的路由器子網匹配的 IP 地址。如果需要的話,修改子網掩碼,並輸入樹莓派將要連接的路由器的 IP 地址。

保存設置,然後通過乙太網將你的樹莓派連接到路由器。你現在可以用這個新的 IP 地址訪問樹莓派。
當你在把樹莓派投入生產環境使用之前,確保為你的 OpenWRT 設置一個密碼!
使用 WiFi 連接
如果你想通過 WiFi 將樹莓派連接到互聯網,導航到 「 網路 → 無線 」 。在 「 無線 」 菜單里,按下藍色的 「 掃描 」 按鈕查找你的家庭網路。

在彈出的窗口中,找到你的 WiFi 網路然後連接它。不要忘記 「 保存並應用 」 設置。
在這 「 網路 → 介面 」 部分,你應該看到了一個新的介面。

當你在把樹莓派投入生產環境使用之前,確保為你的 OpenWRT 設置一個密碼!
安裝必要的軟體包
默認狀態下,路由器並沒有安裝許多軟體包。OpenWRT 提供了一個包管理器,帶有一系列你需要安裝的。導航到 「 系統 → 軟體 」 然後通過按下標有 「 更新列表… 」 的按鈕來更新你的包管理器。

你將會看到許多軟體包;你需要安裝以下這些:
usb-modeswitch
kmod-mii
kmod-usb-net
kmod-usb-wdm
kmod-usb-serial
kmod-usb-serial-option
kmod-usb-serial-wwan
(如果沒有安裝的話)
另外,下載這個數據機管理軟體包,然後在彈出的窗口中按下標有 「 上傳軟體包… 」 的按鈕來安裝它。重啟樹莓派讓安裝包生效。
設置移動網路介面
所有這些軟體包被安裝完之後,你可以設置移動網路介面。在連接數據機到樹莓派之前,請閱讀 數據機的說明書,對其進行設置。然後連接你的移動數據機到樹莓派,然後等待一會直到數據機啟動。
導航到 「 網路 → 介面 」。在頁面底部,按下 「 添加一個新介面… 」 按鈕。在彈出的窗口中,給你的介面起一個名字(比如 「mobile」),然後從下拉列表中選擇 「ModemManager」 。

按下一個標有 「 創建介面 」 的按鈕。你應該看到一個新的彈出窗口。這是設置介面的一個主窗口。在這個窗口中,選擇你的數據機,然後鍵入像 接入點名稱 (APN)或是 PIN 碼之類的信息。

注意: 如果在列表中沒有數據機設備出現,嘗試重啟樹莓派或者安裝 kmod-usb-net-qmi-wwan
軟體包 。
當你已經配置完你的介面,按下 「 保存 」 然後 「 保存並應用 」。給系統一些生效的時間。如果一切正常,你應該看到像這樣的一些東西。

如果你想通過介面查看你的網路連接,你可以使用 SSH 連接到你的樹莓派 shell。在終端里,鍵入:
ssh root@192.168.1.1
預設 IP 地址是 192.168.1.1:如果你修改了它,就用修改後的 IP 地址連接。當連接後,在終端里執行命令:
ping -I ppp0 google.com
如果一切正常運行,那麼你應該從 Google 的伺服器接收到 ping 回包 。

ppp0
是你創建的移動網路介面的默認介面名稱。你可以通過使用 ifconfig
命令檢查你的介面。它只顯示活動的介面。
設置防火牆
要讓移動網介面運行,你需要為移動網路介面和本地網路介面配置防火牆,以便引導流量到正確的介面。
導航到 「 網路 → 防火牆 」。在頁面的底部,你應該看到一個叫做 「 區域 」 的部分。

設置防火牆最簡單的方法就是調整 「wan」 區域。在 「 已覆蓋的網路 」 選項里按下 「 編輯 」 按鈕,選擇你的移動網路介面,然後 「 保存並應用 」 你的設置。如果你不想用 WiFi 連接你的樹莓派,你可以從 「 已覆蓋的網路 」 里刪除 「wwan」 介面,或者關閉 WiFi 連接。

如果你想為每個介面設置一個獨立區域,只需創建一個新區域然後分配必要的介面即可。舉個例子,你可能想有一個覆蓋移動網路介面的區域,並且通過它來轉發 LAN 介面流量。按下 「 添加 」 按鈕,然後給你的區域 「 命名 」, 檢查 「偽裝」 複選框,選中 「 已覆蓋的網路 」 ,並選擇哪些區域可以轉發其流量。

然後 「 保存並應用 」 這些修改。現在你有一個新的區域。
設置一個接入點
最後一步是為你的設備接入互聯網設置一個網路接入點。要設置一個接入點,導航到 「 網路 → 無線 」 。你將會看到一個 WiFi 設備介面,一個名為 OpenWRT 的禁用的接入點,以及一個用於通過 WiFi 連接互聯網的連接(如果你之前沒有禁用或刪除它)。在這個禁用的介面上,按下 「 編輯 」 按鈕,然後 「 啟用 」 該介面。

如果你想,你可以通過編輯 「ESSID」 選項來修改介面名稱。你也可以選擇它要關聯的網路。默認情況下,它會與 LAN 介面關聯。

要為這個介面添加密碼,選擇 「 無線安全 」 選項,選擇 「WPA2-PSK」 加密方式然後在 「 密鑰 」 選項欄位鍵入介面的密碼。

然後 「 保存並應用 」 設置。如果設置正確的話,當用你的設備掃描可用接入點的話,你應該可以看到你分配了名稱的新接入點。
額外的軟體包
如果你願意,你可以通過網頁界面為你的路由器下載額外的軟體包。只需到 「 系統 → 軟體 」 然後安裝你想從列表或者互聯網上下載的軟體包並上傳它。如果你在列表中沒有看到任何軟體包,請按下 「 更新列表… 」 按鈕。
你也可以添加其他擁有適合與 OpenWRT 一起使用的軟體包的倉庫。軟體包和它們的網頁界面是分開安裝的。軟體包名稱是以 「luci-」 開始的是網也界面軟體包。

試試看
這就是我的樹莓派路由設置的過程。

從樹莓派建立一個路由器不是很困難。缺點是樹莓派只有一個乙太網介面。你可以用一個 USB-to-Ethernet 適配器來增加更多的網口。不要忘記在介面的網站上設置網口。
OpenWRT 支持大量的移動數據機,你可以用管理數據機的通用工具 modemmanager 為它們設置移動網路介面。
你有沒有把你的樹莓派當作路由器使用?請在評論中告訴我們情況。
via: https://opensource.com/article/21/3/router-raspberry-pi
作者:Lukas Janėnas 選題:lujun9972 譯者:hwlife 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive