使用 Raspberry Pi 构建具有移动连接的路由器

使用 OpenWRT 以获得对网络路由器的更多控制。
98 位读者喜欢这篇文章。
Mesh networking connected dots

Raspberry Pi 是一款小型的单板计算机,尽管只有信用卡大小,但功能强大。 实际上,这款小型计算机几乎可以满足您的任何需求。 您只需要打开您的想象力。

Raspberry Pi 爱好者已经制作了许多不同的项目,从简单的程序到复杂的自动化项目和解决方案,例如气象站甚至智能家居设备。 本文将展示如何使用 OpenWRT 项目将您的 Raspberry Pi 变成具有 LTE 移动连接的路由器。

关于 OpenWRT 和 LTE

OpenWRT 是一个使用 Linux 定位嵌入式设备的开源项目。 它已经存在超过 15 年,并拥有庞大而活跃的社区。

使用 OpenWRT 的方法有很多,但其主要用途是在路由器中。 它提供了一个完全可写的文件系统,带有软件包管理,并且由于它是开源的,您可以查看和修改代码并为生态系统做出贡献。 如果您想更好地控制路由器,这就是您想要使用的系统。

长期演进 (LTE) 是一种基于 GSM/EDGE 和 UMTS/HSPA 技术的无线宽带通信标准。 我使用的 LTE 调制解调器是一个 USB 设备,可以为 Raspberry Pi 计算机添加 3G 或 4G (LTE) 蜂窝连接。

先决条件

对于本项目,您将需要

  • 一台带电源线的 Raspberry Pi
  • 一台计算机,最好运行 Linux
  • 一张至少 16GB 的 microSD 卡
  • 一根以太网线
  • 一个 LTE 调制解调器(我使用的是 Teltonika TRM240
  • 一张用于移动连接的 SIM 卡

安装 OpenWRT

首先,下载最新的 Raspberry Pi 兼容版本 OpenWRT。 在 OpenWRT 网站上,您会看到四个镜像:两个带有 ext4 文件系统,两个带有 squashfs 文件系统。 我使用 ext4 文件系统。 您可以下载 factorysysupgrade 镜像;两者都很好用。

下载镜像后,您需要解压它并通过遵循这些说明将其安装到 SD 卡上。 安装固件可能需要一些时间,请耐心等待。 完成后,您的 microSD 卡上将有两个分区。 一个用于引导加载程序,另一个用于 OpenWRT 系统。

启动系统

要启动您的新系统,请将 microSD 卡插入 Raspberry Pi,使用以太网线将 Pi 连接到您的路由器(或交换机),然后打开电源。

如果您有 Raspberry Pi 的使用经验,您可能习惯于通过 SSH 终端访问它,或者只是将其连接到显示器和键盘。 OpenWRT 的工作方式略有不同。 您通过 Web 浏览器与此软件交互,因此您必须能够通过网络访问您的 Pi。

默认情况下,Raspberry Pi 使用此 IP 地址:192.168.1.1。 您用于配置 Pi 的计算机必须与 Pi 位于同一子网中。 如果您的网络不使用 192.168.1.x 地址,或者您不确定,请打开 GNOME 中的设置,导航到网络设置,选择手动,然后输入以下 IP 地址和网络掩码

  • IP 地址 192.168.1.15
  • 网络掩码 255.255.255.0

在您的计算机上打开 Web 浏览器并导航到 192.168.1.1。 这将打开一个身份验证页面,以便您可以登录到您的 Pi。

尚不需要密码,只需单击登录按钮继续。

配置网络连接

Raspberry Pi 只有一个以太网端口,而普通路由器有几个:一个用于 WAN(广域网),另一个用于 LAN(局域网)。 您有两个选择

  1. 使用您的以太网端口进行网络连接
  2. 使用 WiFi 进行网络连接

要使用以太网

如果您决定使用以太网,请导航到网络 → 接口。 在配置页面上,按与 LAN 接口关联的蓝色编辑按钮。

应该会出现一个弹出窗口。 在该窗口中,您需要输入 IP 地址以匹配您将 Raspberry Pi 连接到的路由器的子网。 如果需要,请更改网络掩码,然后输入 Raspberry Pi 将连接到的路由器的 IP 地址。

保存此配置,并通过以太网将您的 Pi 连接到路由器。 现在您可以使用这个新 IP 地址访问 Raspberry Pi。

务必在将 OpenWRT 路由器投入生产使用之前设置密码!

要使用 WiFi

如果您想通过 WiFi 将 Raspberry Pi 连接到互联网,请导航到网络 → 无线。 在无线菜单中,按蓝色扫描按钮以查找您的家庭网络。

在弹出窗口中,找到您的 WiFi 网络并连接到它。 不要忘记保存并应用配置。

网络 → 接口部分,您应该看到一个新的接口。

务必在将 OpenWRT 路由器投入生产使用之前设置密码!

安装必要的软件包

默认情况下,路由器没有很多软件包。 OpenWRT 提供了一个软件包管理器,其中包含您需要安装的软件包选择。 导航到系统 → 软件包,然后按标记为“更新列表…”的按钮来更新您的软件包管理器。

您将看到很多软件包; 您需要安装这些

  • usb-modeswitch
  • kmod-mii
  • kmod-usb-net
  • kmod-usb-wdm
  • kmod-usb-serial
  • kmod-usb-serial-option
  • kmod-usb-serial-wwan(如果尚未安装)

此外,下载此 modemmanager 软件包,然后按弹出窗口中标记为上传软件包…的按钮安装它。 重新启动 Raspberry Pi 以使软件包生效。

设置移动接口

安装完所有这些软件包后,您可以设置移动接口。 在将调制解调器连接到 Raspberry Pi 之前,请阅读调制解调器说明进行设置。 然后将您的移动调制解调器连接到 Raspberry Pi,并稍等片刻,直到调制解调器启动。

导航到网络 → 接口。 在页面底部,按添加新接口…按钮。 在弹出窗口中,为您的接口命名(例如,mobile),然后从下拉列表中选择 ModemManager

按标记为创建接口的按钮。 您应该会看到一个新的弹出窗口。 这是配置接口的主窗口。 在此窗口中,选择您的调制解调器并输入任何其他信息,例如接入点名称 (APN) 或 PIN。

注意: 如果列表中未出现调制解调器设备,请尝试重新启动 Raspberry Pi 或安装 kmod-usb-net-qmi-wwan 软件包。

完成接口配置后,按保存,然后按保存并应用。 给系统一些时间生效。 如果一切顺利,您应该会看到类似这样的内容。

如果您想通过此接口检查您的互联网连接,可以使用 ssh 连接到您的 Raspberry Pi shell。 在终端中,输入

ssh root@192.168.1.1

默认 IP 地址为 192.168.1.1; 如果您更改了它,则使用该 IP 地址进行连接。 连接后,在终端中执行此命令

ping -I ppp0 google.com

如果一切正常,那么您应该会收到来自 Google 服务器的 ping 返回。

ppp0 是您创建的移动接口的默认接口名称。 您可以使用 ifconfig 检查您的接口。 它仅显示活动接口。

设置防火墙

要使移动接口正常工作,您需要为 mobile 接口和 lan 接口配置防火墙,以将流量定向到正确的接口。

导航到网络 → 防火墙。 在页面底部,您应该看到一个名为 区域 的部分。

配置防火墙的最简单方法是调整 wan 区域。 按编辑按钮,然后在覆盖网络选项中,选择您的 mobile 接口,然后保存并应用您的配置。 如果您不想使用 WiFi 连接到互联网,您可以从覆盖网络中删除 wwan 或禁用 WiFi 连接。

如果您想为每个接口设置单独的区域,只需创建一个新区域并分配必要的接口。 例如,您可能想要创建一个移动区域,该区域覆盖移动接口,并用于转发 LAN 接口流量。 按添加按钮,然后命名您的区域,选中伪装复选框,选择覆盖网络,然后选择哪些区域可以转发其流量。

然后保存并应用更改。 现在您有了一个新区域。

设置接入点

最后一步是配置一个带有接入点的网络,供您的设备连接到互联网。 要设置接入点,请导航到网络 → 无线。 您将看到一个 WiFi 设备接口、一个名为 OpenWRT 的已禁用接入点,以及一个用于通过 WiFi 连接到互联网的连接(如果您之前没有禁用或删除它)。 在禁用接口上,按编辑按钮,然后启用该接口。

如果需要,您可以通过编辑 ESSID 选项来更改接口名称。 您还可以选择它将与哪个网络关联。 默认情况下,它将与 lan 接口关联。

要为此接口添加密码,请选择无线安全选项卡。 在选项卡中,选择加密方式 WPA2-PSK,然后在密钥选项字段中输入接口的密码。

然后保存并应用配置。 如果配置设置正确,当您使用设备扫描可用接入点时,您应该会看到一个带有您分配的名称的新接入点。

其他软件包

如果需要,您可以通过 Web 界面为您的路由器下载其他软件包。 只需转到系统 → 软件包,然后从列表中安装您想要的软件包,或者从互联网下载并上传。 如果您在列表中看不到任何软件包,请按更新列表…按钮。

您还可以添加其他存储库,其中包含适合与 OpenWRT 一起使用的软件包。 软件包及其 Web 界面是单独安装的。 以 luci- 前缀开头的软件包是 Web 界面软件包。

试一试

这是我的 Raspberry Pi 路由器设置的样子。

从 Raspberry Pi 构建路由器并不困难。 缺点是 Raspberry Pi 只有一个以太网端口。 您可以使用 USB 转以太网适配器添加更多端口。 不要忘记在接口网站上配置端口。

OpenWRT 支持大量移动调制解调器,您可以使用 modemmanager 为任何调制解调器配置移动接口,modemmanager 是一种管理调制解调器的通用工具。

您是否使用过 Raspberry Pi 作为路由器? 请在评论中告诉我们您的使用体验。

接下来阅读什么
标签
User profile image.
我是一名来自立陶宛的程序员/管理员。 我感兴趣的领域是:Linux 嵌入式 Linux 网络编程 其他嵌入式系统,如 Arduino 和许多其他系统

4 条评论

如果我使用 RPi4,它具有更好的以太网端口,我可以使用 USB - 以太网适配器代替 Wifi 作为第二个端口吗? 原生以太网端口将连接到内部网络,而 USB 端口将连接到 Internet 调制解调器。

可以连接以太网 USB 适配器作为第二个以太网端口。 您还需要安装正确的适配器驱动程序才能工作。 如果一切正常,您应该在“接口”部分中看到一个新接口

回复 作者 dgoadby

非常感谢您清晰的说明。

使用 TRM240 调制解调器我可以期望获得什么样的连接速度? 我只获得大约 850 KB/s,尽管我的连接应该提供更多。 TRM240 具有 LTE Cat-1,应该支持高达 10MB/s 的下载和 5MB/s 的上传。 但是在这种情况下我可以期望获得什么?

知识共享许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.