使用树莓派建立一个带有移动网络连接功能的路由器
在你的网络路由器上使用 OpenWRT 获得更多控制功能。
树莓派 OpenWRT
120.21.229.103
大佬，你那个下载这个调制解调器管理软件包打不开了，能发给我一个吗：longelang@qq.com，谢谢了
来自澳大利亚的 Firefox 98.0|Windows 10 用户
2022-07-27T21:33:12.000
在你的网络路由器上使用 OpenWRT 获得更多控制功能。

> 
> 在你的网络路由器上使用 OpenWRT 获得更多控制功能。
> 
> 
> 


![](/data/attachment/album/202204/15/123813xtpegv7e5xvj7c7a.jpg "Mesh networking connected dots")


树莓派是一种小型单板电脑，尽管只有信用卡大小，但是能做许多事情。实际上，这个小电脑几乎可以成为你想让它成为的任何东西，只要你打开想象力。


树莓派爱好者已经做了许多不同的项目，从简单的程序到复杂的自动化项目和解决方案，如气象站，甚至智能家居设备。这篇文章将展示怎样使用 OpenWRT 项目将你的树莓派变成带有 LTE 移动网络连接功能的路由器。


### 关于 OpenWRT 和 LTE


[OpenWRT](https://openwrt.org/) 是一个利用 Linux 内核为嵌入式设备开发的开源项目，它已经存在超过 15 年了，拥有一个庞大而活跃的社区。


有许多使用 OpenWRT 的方法，但是它的主要目的还是用在路由器上。它提供了包管理功能和一个完全可写的文件系统，并且因为它的的开源属性，你可以查看和修改代码，并贡献到开源生态。如果你想对你的路由器获得更多的控制，这就是你想要的系统。


<ruby> 长期演进技术 <rt>  Long-term evolution </rt></ruby>（LTE）是一个基于 GSM/EGDE 和 UMTS/HSPA 技术的无线宽带通信标准。我使用的 LTE 调制解调器是一个 USB 设备，可以为树莓派电脑增加 3G 或 4G（LTE）蜂窝连接。


![Teltonika TRM240 modem](/data/attachment/album/202204/15/123837qmzh759hi2z6ouew.png "Teltonika TRM240 modem")


### 安装前的准备


对这个项目来说，你需要：


* 一个带有电源线的树莓派
* 一台运行　Linux　的电脑
* 一张至少 16GB 的 SD 储存卡
* 以太网线
* LTE 调制解调器（我使用的是 Teltonika [TRM240](https://teltonika-networks.com/product/trm240/)）
* 一张移动网络的 SIM 卡


### 安装 OpenWRT


首先，下载最新的 [兼容树莓派的 OpenWRT 的发布版本](https://downloads.openwrt.org/releases/19.07.7/targets/brcm2708/bcm2710/)。在 OpenWRT 官网，你可以看到 4 个镜像：两个 **ext4** 文件系统的和两个 **squashfs** 文件系统的。我使用 **ext4** 文件系统。你可以下载 **factory** 或者 **sysupgrade** 镜像，这两个都运行良好。


![OpenWRT image files](/data/attachment/album/202204/15/123837luqias8lnu8nuqa1.png "OpenWRT image files")


下载了镜像后，你按照 [以下的说明](https://opensource.com/article/17/3/how-write-sd-cards-raspberry-pi) 需要解压并安装它到 SD 卡上。这将会花些时间安装固件，需要些耐心。一旦安装完成，在你的 SD 卡上将会有两个分区。一个是用来放 bootloader ，另一个是 OpenWRT 系统。


### 启动系统


要启动你的新系统，插入 SD 卡到树莓派，用以太网线把树莓派和你的路由器（或者交换机）相连，然后点亮。


如果你有使用树莓派的经验，你可能习惯于通过终端使用 SSH 访问过它，或者通过显示器和键盘连接到树莓派。OpenWRT 工作有一点点不同。你与这个系统交互是通过网页浏览器，所以你必须能够通过网络来访问你的树莓派。


缺省状态下，树莓派使用的 IP 地址是：192.168.1.1。用来配置树莓派的计算机必须和树莓派在同一个子网中。如果你的网络没有使用 192.168.1.x 地址，或者你不能确定，在 GNOME 打开 “<ruby> 设置 <rt>  Settings </rt></ruby>” ，导航到网络设置，选择 “<ruby> 手动 <rt>  Manual </rt></ruby>” ，然后键入以下的 IP 地址和子网掩码：


* IP 地址：192.168.1.15
* 网络掩码：255.255.255.0


![IP addresses](/data/attachment/album/202204/15/123837fj0d5jqjrldld566.png "IP addresses")


在你的电脑上打开浏览器然后导航到 192.168.1.1 。这将打开一个验证网页，你可以登录到你的树莓派。


![OpenWRT login page](/data/attachment/album/202204/15/123838hj2af0wjfrd3fqdf.png "OpenWRT login page")


首次登录不需要密码，所以直接点击 “<ruby> 登录 <rt>  Login </rt></ruby>” 按钮继续。


### 设置网络连接


树莓派只有一个以太网口，而普通路由器有两个：一个是 WAN（有线区域网络）口，另一个是 LAN （本地区域网络）。


你有两个选择：


1. 使用你的以太网口接入互联网
2. 使用 WIFI 接入互联网


#### 使用以太网连接


你决定使用以太网，导航到 “<ruby> 网络 <rt>  Network </rt></ruby> → <ruby> 接口 <rt>  Interfaces </rt></ruby>”。在这个设置页面，按下与 “LAN” 接口对应的蓝色 “<ruby> 编辑 <rt>  Edit </rt></ruby>” 按钮。


![LAN interface](/data/attachment/album/202204/15/123838t51ez044nuu5benq.png "LAN interface")


应该会出现一个弹窗，在这个窗口中，你需要键入与你将要连接树莓派的路由器子网匹配的 IP 地址。如果需要的话，修改子网掩码，并输入树莓派将要连接的路由器的 IP 地址。


![Enter IP in the LAN interface](/data/attachment/album/202204/15/123838plnoy7zyyiemnne1.png "Enter IP in the LAN interface")


保存设置，然后通过以太网将你的树莓派连接到路由器。你现在可以用这个新的 IP 地址访问树莓派。


当你在把树莓派投入生产环境使用之前，确保为你的 OpenWRT 设置一个密码！


#### 使用 WiFi 连接


如果你想通过 WiFi 将树莓派连接到互联网，导航到 “<ruby> 网络 <rt>  Network </rt></ruby> → <ruby> 无线 <rt>  Wireless </rt></ruby>” 。在 “<ruby> 无线 <rt>  Wireless </rt></ruby>” 菜单里，按下蓝色的 “<ruby> 扫描 <rt>  Scan </rt></ruby>” 按钮查找你的家庭网络。


![Scan the network](/data/attachment/album/202204/15/123839lxuz8tgubdblgzxd.png "Scan the network")


在弹出的窗口中，找到你的 WiFi 网络然后连接它。不要忘记 “<ruby> 保存并应用 <rt>  Save and Apply </rt></ruby>” 设置。


在这 “<ruby> 网络 <rt>  Network </rt> → <ruby>  接口  <rt>   Interfaces  </rt> </ruby> ” 部分，你应该看到了一个新的接口。</ruby>


![New interface](/data/attachment/album/202204/15/123839b5yzqhfv6leb55zy.png "New interface")


当你在把树莓派投入生产环境使用之前，确保为你的 OpenWRT 设置一个密码！


### 安装必要的软件包


默认状态下，路由器并没有安装许多软件包。OpenWRT 提供了一个包管理器，带有一系列你需要安装的。导航到 “<ruby> 系统 <rt>  System </rt></ruby> → <ruby> 软件 <rt>  Software </rt></ruby>” 然后通过按下标有 “<ruby> 更新列表… <rt>  Update lists... </rt></ruby>” 的按钮来更新你的包管理器。


![Updating packages](/data/attachment/album/202204/15/123839anspzfff8smmxxxf.png "Updating packages")


你将会看到许多软件包；你需要安装以下这些：


* `usb-modeswitch`
* `kmod-mii`
* `kmod-usb-net`
* `kmod-usb-wdm`
* `kmod-usb-serial`
* `kmod-usb-serial-option`
* `kmod-usb-serial-wwan`（如果没有安装的话）


另外，[下载这个调制解调器管理软件包](https://downloads.openwrt.org/releases/packages-21.02/aarch64_cortex-a53/luci/luci-proto-modemmanager_git-21.007.43644-ab7e45c_all.ipk)，然后在弹出的窗口中按下标有 “<ruby> 上传软件包… <rt>  Upload Package... </rt></ruby>” 的按钮来安装它。重启树莓派让安装包生效。


### 设置移动网络接口


所有这些软件包被安装完之后，你可以设置移动网络接口。在连接调制解调器到树莓派之前，请阅读 [调制解调器的说明书](https://wiki.teltonika-networks.com/view/TRM240_SIM_Card)，对其进行设置。然后连接你的移动调制解调器到树莓派，然后等待一会直到调制解调器启动。


导航到 “<ruby> 网络 <rt>  Network </rt></ruby> → <ruby> 接口 <rt>  Interfaces </rt></ruby>”。在页面底部，按下 “<ruby> 添加一个新接口… <rt>  Add new interface... </rt></ruby>” 按钮。在弹出的窗口中，给你的接口起一个名字（比如 “mobile”），然后从下拉列表中选择 “ModemManager” 。


![Add a new mobile interface](/data/attachment/album/202204/15/123840gs5udo2dsobbmbmb.png "Add a new mobile interface")


按下一个标有 “<ruby> 创建接口 <rt>  Create Interface </rt></ruby>” 的按钮。你应该看到一个新的弹出窗口。这是设置接口的一个主窗口。在这个窗口中，选择你的调制解调器，然后键入像<ruby> 接入点名称 <rt>  Access Point Name </rt></ruby>（APN）或是 PIN 码之类的信息。


![Configuring the interface](/data/attachment/album/202204/15/123840y4xifbjzj8fqzjbu.png "Configuring the interface")


**注意：** 如果在列表中没有调制解调器设备出现，尝试重启树莓派或者安装 `kmod-usb-net-qmi-wwan` 软件包 。


当你已经配置完你的接口，按下 “<ruby> 保存 <rt>  Save </rt></ruby>” 然后 “<ruby> 保存并应用 <rt>  Save and Apply </rt></ruby>”。给系统一些生效的时间。如果一切正常，你应该看到像这样的一些东西。


![Configured interface](/data/attachment/album/202204/15/123840rbwocykiaobocai4.png "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](/data/attachment/album/202204/15/123840apwjwktttpq4i5qa.png "Terminal interface")


`ppp0` 是你创建的移动网络接口的默认接口名称。你可以通过使用 `ifconfig` 命令检查你的接口。它只显示活动的接口。


### 设置防火墙


要让移动网接口运行，你需要为移动网络接口和本地网络接口配置防火墙，以便引导流量到正确的接口。


导航到 “<ruby> 网络 <rt>  Network </rt></ruby> → <ruby> 防火墙 <rt>  Firewall </rt></ruby>”。在页面的底部，你应该看到一个叫做 “<ruby> 区域 <rt>  Zones </rt></ruby>” 的部分。


![Firewall zones](/data/attachment/album/202204/15/123841kac5yawr9rf11reb.png "Firewall zones")


设置防火墙最简单的方法就是调整 “wan” 区域。在 “<ruby> 已覆盖的网络 <rt>  Covered networks </rt></ruby>” 选项里按下 “<ruby> 编辑 <rt>  Edit </rt></ruby>” 按钮，选择你的移动网络接口，然后 “<ruby> 保存并应用 <rt>  Save and Apply </rt></ruby>” 你的设置。如果你不想用 WiFi 连接你的树莓派，你可以从 “<ruby> 已覆盖的网络 <rt>  Covered networks </rt></ruby>” 里删除 “wwan” 接口，或者关闭 WiFi 连接。


![Firewall zone settings](/data/attachment/album/202204/15/123841lhoy4nyw6phag6ge.png "Firewall zone settings")


如果你想为每个接口设置一个独立区域，只需创建一个新区域然后分配必要的接口即可。举个例子，你可能想有一个覆盖移动网络接口的区域，并且通过它来转发 LAN 接口流量。按下 “<ruby> 添加 <rt>  Name </rt></ruby>” 按钮，然后给你的区域 “<ruby> 命名 <rt>  Name </rt></ruby>”， 检查 “伪装” 复选框，选中 “<ruby> 已覆盖的网络 <rt>  Covered networks </rt></ruby>” ，并选择哪些区域可以转发其流量。


![Firewall zone settings](/data/attachment/album/202204/15/123841j1ghr2e92ebaheee.png "Firewall zone settings")


然后 “<ruby> 保存并应用 <rt>  Save and Apply </rt></ruby>” 这些修改。现在你有一个新的区域。


### 设置一个接入点


最后一步是为你的设备接入互联网设置一个网络接入点。要设置一个接入点，导航到 “<ruby> 网络 <rt>  Network </rt></ruby> → <ruby> 无线 <rt>  Wireless </rt></ruby>” 。你将会看到一个 WiFi 设备接口，一个名为 OpenWRT 的禁用的接入点，以及一个用于通过 WiFi 连接互联网的连接（如果你之前没有禁用或删除它）。在这个禁用的接口上，按下 “<ruby> 编辑 <rt>  Edit </rt></ruby>” 按钮，然后 “<ruby> 启用 <rt>  Enable </rt></ruby>” 该接口。


![Enabling wireless network](/data/attachment/album/202204/15/123842m99yjgw1j39j9dhr.png "Enabling wireless network")


如果你想，你可以通过编辑 “ESSID” 选项来修改接口名称。你也可以选择它要关联的网络。默认情况下，它会与 LAN 接口关联。


![Configuring the interface](/data/attachment/album/202204/15/123842iaiqxd88asqcyh9y.png "Configuring the interface")


要为这个接口添加密码，选择 “<ruby> 无线安全 <rt>  Wireless Security </rt></ruby>” 选项，选择 “WPA2-PSK” 加密方式然后在 “<ruby> 密钥 <rt>  Key </rt></ruby>” 选项字段键入接口的密码。


![Setting a password](/data/attachment/album/202204/15/123842snb29bh5cj12nnob.png "Setting a password")


然后 “<ruby> 保存并应用 <rt>  Save and Apply </rt></ruby>” 设置。如果设置正确的话，当用你的设备扫描可用接入点的话，你应该可以看到你分配了名称的新接入点。


### 额外的软件包


如果你愿意，你可以通过网页界面为你的路由器下载额外的软件包。只需到 “<ruby> 系统 <rt>  System </rt></ruby> → <ruby> 软件 <rt>  Software </rt></ruby>” 然后安装你想从列表或者互联网上下载的软件包并上传它。如果你在列表中没有看到任何软件包，请按下 “<ruby> 更新列表… <rt>  Update lists... </rt></ruby>” 按钮。


你也可以添加其他拥有适合与 OpenWRT 一起使用的软件包的仓库。软件包和它们的网页界面是分开安装的。软件包名称是以 “luci-” 开始的是网也界面软件包。


![Packages with luci- prefix](/data/attachment/album/202204/15/123842kjdhl54hh9rlqbae.png "Packages with luci- prefix")


### 试试看


这就是我的树莓派路由设置的过程。


![Raspberry Pi router](/data/attachment/album/202204/15/123843a89zopodddooo2h8.jpg "Raspberry Pi router")


从树莓派建立一个路由器不是很困难。缺点是树莓派只有一个以太网接口。你可以用一个 USB-to-Ethernet 适配器来增加更多的网口。不要忘记在接口的网站上设置网口。


OpenWRT 支持大量的移动调制解调器，你可以用管理调制解调器的通用工具 modemmanager 为它们设置移动网络接口。


你有没有把你的树莓派当作路由器使用？请在评论中告诉我们情况。




---


via: <https://opensource.com/article/21/3/router-raspberry-pi>


作者：[Lukas Janėnas](https://opensource.com/users/lukasjan) 选题：[lujun9972](https://github.com/lujun9972) 译者：[hwlife](https://github.com/hwlilfe) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

