Lukas Janėnas 发布的文章

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

 title=

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

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

关于 OpenWRT 和 LTE

OpenWRT 是一个利用 Linux 内核为嵌入式设备开发的开源项目,它已经存在超过 15 年了,拥有一个庞大而活跃的社区。

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

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

 title=

安装前的准备

对这个项目来说,你需要:

  • 一个带有电源线的树莓派
  • 一台运行 Linux 的电脑
  • 一张至少 16GB 的 SD 储存卡
  • 以太网线
  • LTE 调制解调器(我使用的是 Teltonika TRM240
  • 一张移动网络的 SIM 卡

安装 OpenWRT

首先,下载最新的 兼容树莓派的 OpenWRT 的发布版本。在 OpenWRT 官网,你可以看到 4 个镜像:两个 ext4 文件系统的和两个 squashfs 文件系统的。我使用 ext4 文件系统。你可以下载 factory 或者 sysupgrade 镜像,这两个都运行良好。

 title=

下载了镜像后,你按照 以下的说明 需要解压并安装它到 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

 title=

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

 title=

首次登录不需要密码,所以直接点击 “ 登录 Login ” 按钮继续。

设置网络连接

树莓派只有一个以太网口,而普通路由器有两个:一个是 WAN(有线区域网络)口,另一个是 LAN (本地区域网络)。

你有两个选择:

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

使用以太网连接

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

 title=

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

 title=

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

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

使用 WiFi 连接

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

 title=

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

在这 “ 网络 Network 接口 Interfaces ” 部分,你应该看到了一个新的接口。

 title=

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

安装必要的软件包

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

 title=

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

  • 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” 。

 title=

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

 title=

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

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

 title=

如果你想通过接口查看你的网络连接,你可以使用 SSH 连接到你的树莓派 shell。在终端里,键入:

ssh [email protected]

缺省 IP 地址是 192.168.1.1:如果你修改了它,就用修改后的 IP 地址连接。当连接后,在终端里执行命令:

ping -I ppp0 google.com

如果一切正常运行,那么你应该从 Google 的服务器接收到 ping 回包 。

 title=

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

设置防火墙

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

导航到 “ 网络 Network 防火墙 Firewall ”。在页面的底部,你应该看到一个叫做 “ 区域 Zones ” 的部分。

 title=

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

 title=

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

 title=

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

设置一个接入点

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

 title=

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

 title=

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

 title=

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

额外的软件包

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

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

 title=

试试看

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

 title=

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

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

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


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

作者:Lukas Janėnas 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用 OpenWRT 和 Wireguard 在路由器上创建自己的虚拟专用网络。

 title=

通过计算机网络从一个地方到另一个地方可能是一件棘手的事情。除了知道正确的地址和打开正确的端口之外,还有安全问题。 对于 Linux,SSH 是一种流行的默认方式,虽然你可以使用 SSH 做很多事情,但它仍然“只是”一个安全外壳(实际上,这就是 SSH 的含义)。用于加密流量的更广泛的协议是“虚拟专用网络”,它创建了一个独特的两点之间的虚拟的专用网络。有了它,你可以登录到另一个网络上的计算机并使用它的所有服务(文件共享、打印机等等),就像你坐在同一个房间里一样,并且全部的数据都是从点到点加密的。

通常,为了使虚拟专用网络连接成为可能,进入每个网络的网关必须接受虚拟专用网络流量,并且必须侦听目标网络上的某些计算机的虚拟专用网络流量。然而,你可以运行自己的带有虚拟专用网络服务器的路由器固件,使你能够连接到目标网络,而无需担心转发端口或考虑内部拓扑。我最喜欢的固件是 OpenWrt,在本文中我将演示如何设置它,以及如何启用虚拟专用网络。

什么是 OpenWrt?

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

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

OpenWrt 支持很多路由器,包括 思科华硕MikroTikTeltonika NetworksD-LinkTP-linkBuffaloUbiquiti 等知名品牌和 许多其他品牌

Wireguard 是什么?

Wireguard 是开源的虚拟专用网络软件,它比 OpenVPN 等其他选项更快、更简单且更安全。它使用最先进的密码学:用于对称加密的 ChaCha20;用于密钥协商的 Curve 25519(使用椭圆曲线),和用于散列的 BLAKE2。这些算法的设计方式在嵌入式系统上是高效的。Wireguard 也可用于各种操作系统 平台

先决条件

对于这个项目,你需要:

  • Teltonika RUT955 或支持 OpenWrt 的其他路由器
  • 一个公网 IP 地址,用于从外部网络连接到虚拟专用网络
  • 一部安卓手机

安装 OpenWrt

首先,下载路由器的 OpenWrt 镜像。使用 固件选择器 检查 OpenWrt 是否支持你的路由器并下载固件。输入你的路由器型号,将显示选项:

 title=

使用搜索框右侧的下拉输入选择要下载的固件版本。

下载出厂镜像。

 title=

许多路由器允许你从 Web 界面刷入未经授权的固件,但 Teltonika Networks 不允许。要将 OpenWrt 固件刷入这样的路由器,你需要使用引导加载器。为此,请按照下列步骤操作:

  1. 拔掉路由器的电源线。
  2. 按住重置按钮。
  3. 插入路由器的电源线。
  4. 插入电源线后,继续按住重置按钮 5 到 8 秒。
  5. 将计算机的 IP 地址设置为 192.168.1.15,将网络掩码设置为 255.255.255.0
  6. 使用以太网电缆通过 LAN 端口连接路由器和计算机。
  7. 打开网页浏览器并输入 192.168.1.1:/index.html
  8. 上传并刷写固件。

刷机过程可能占用三分钟。之后,你应该可以通过在浏览器中输入 192.168.1.1 来访问路由器的 Web 界面。 默认情况下没有设置密码

 title=

配置网络连接

网络连接是必要条件。如果你的 Internet 服务提供商(ISP) 使用 DHCP 自动分配你的 IP 地址,你只需将以太网电缆插入路由器的 WAN 端口。

如果你需要手动分配 IP 地址,导航至 “Network → Interfaces”。选择 “Edit” 编辑你的 WAN 接口。从 “Protocol” 字段中,选择 “Static address”,然后选择 “Switch protocol”。

 title=

在 “IPv4 address” 字段中,输入你的路由器地址。设置 “IPv4 netmask” 以匹配你的网络子网;输入你将用于连接到网络的 “IPv4 gateway” 地址; 并在 “Use custom DNS servers” 字段中输入 DNS 服务器的地址。保存配置。

就是这样!你已成功配置 WAN 接口以获得网络连接。

安装必要的包

默认情况下,该固件不包含很多包,但 OpenWrt 有一个包管理器和可选安装的软件包。导航到 “System → Software” 并通过选择 “Update list...” 更新你的包管理器。

 title=

在“Filter”输入中,键入 “Wireguard”,等待系统找到所有包含该关键字的包。找到并安装名为 “luci-app-wireguard” 的包。

 title=

该软件包包括一个用于配置 Wireguard 的 Web 界面,并安装 Wireguard 所必需的所有依赖项。

如果你在安装 Wireguard 软件包之前收到一个软件包丢失的警告并且在存储库中找不到,请忽略它并继续。

接下来,找到并安装名为 “luci-app-ttyd” 的包。这将用于稍后访问终端。

安装这些软件包后,重新启动路由器以使更改生效。

配置 Wireguard 接口

接下来,创建 Wireguard 接口。导航到 “Network → Interfaces” 并选择左下角的 “Add new interface...”。在弹出窗口中,输入你想要的接口名称,从下拉列表中选择 “WireguardVPN”,然后选择右下角的 “Create interface”。

 title=

在新弹出的窗口中,选择 “Generate Key” 为 Wireguard 接口生成私钥。在 “Listen Port” 字段中,输入所需的端口。我将使用默认的 Wireguard 端口,“51820”。在 “IP Addresses” 字段中,分配将用于 Wireguard 接口的 IP 地址。在这个例子中,我使用了 10.0.0.1/24。数字 “24” 表明我的子网的大小。

 title=

保存配置并重启接口。

导航到 “Services → Terminal”,登录到 shell,然后输入命令 wg show。你将看到有关 Wiregaurd 接口的一些信息,包括其公钥。复制公钥——稍后你将需要它来创建对等点。

 title=

配置防火墙

导航到 “Network → Firewall” 并选择 “Traffic Rules” 选项卡。在页面底部,选择 “Add”。在弹出窗口的 “Name” 字段中,为你的规则命名,例如 “Allow-wg”。接下来,将 “Destination zone” 从 “Lan” 更改为 “Device”,并将 “Destination port” 设置为 “51820”。

 title=

保存配置。

手机上配置 Wireguard

从 Google Play 在你的手机上安装 Wireguard 应用程序。安装后,打开应用程序并从头开始创建一个新接口。在 “Name” 字段中,输入要用于接口的名称。在 “Private key” 字段中,按右侧的双向箭头图标生成密钥对。你将需要上面的公钥来在你的手机和路由器之间创建一个对等点。在 “Addresses” 字段中,分配你将用于通过虚拟专用网络访问电话的 IP 地址。我将使用 10.0.0.2/24。在 “Listen port” 中,输入端口;我将再次使用默认端口。

 title=

保存配置。

要向配置中添加对等点,请选择 “Add peer”。在 “Public key” 字段中,输入路由器的 Wireguard 公钥。在 “Endpoint” 字段中,输入路由器的公共 IP 地址和端口,以冒号分隔,例如 12.34.56.78:51820。在 “Allowed IP” 字段中,输入要通过 Wireguard 接口访问的 IP 地址。 (你可以输入路由器的虚拟专用网络接口 IP 地址和 LAN 接口地址。)IP 地址必须用逗号分隔。你还可以定义子网的大小。

 title=

保存配置。

配置中还剩下最后一步:在路由器上添加一个对等点。

在路由器上添加一个对等点

导航到 “Network → Interfaces” 并选择你的 Wireguard 接口。转到 “Peers” 选项卡并选择 “Add peer”。在 “Description” 字段中,输入对等方的名称。在 “Public Key” 字段中输入手机的 Wireguard 接口公钥,在 “Allowed IPs” 字段中输入手机的 Wireguard 接口 IP 地址。选中 “Route Allowed IPs” 复选框。

 title=

保存配置并重启接口。

测试配置

在手机上打开 Web 浏览器。在 URL 栏中,输入 IP 地址 10.0.0.1192.168.1.1。你应该能够访问路由器的网站。

 title=

你自己的虚拟专用网络

这些天有很多虚拟专用网络服务商在做广告,但是拥有和控制自己的基础设施还有很多话要说,尤其是当该基础设施仅用于提高安全性时。无需依赖其他人为你提供安全的数据连接。使用 OpenWrt 和 Wireguard,你可以拥有自己的开源虚拟专用网络解决方案。


via: https://opensource.com/article/21/5/open-source-private-vpn

作者:Lukas Janėnas 选题:lujun9972 译者:stevenzdg988 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出