OpenWrt,家用路由器固件的开源替代方案

OpenWrt 是一个基于 Linux 的开源操作系统,目标是嵌入式网络设备。
5 位读者喜欢这篇文章。
Open source network cable

Opensource.com

如果您在家中阅读这篇文章,您可能正在使用 LTE/5G/DSL/WIFI 路由器连接网络。这些设备通常负责在您的本地设备(智能手机、PC、电视等)之间路由数据包,并通过内置调制解调器提供对万维网的访问。您家中的路由器很可能具有基于 Web 的界面,用于配置目的。这些界面通常过于简化,因为它们是为普通用户设计的。

如果您想要更多配置选项,但又不想花钱购买专业设备,您应该看看替代固件,例如 OpenWrt

OpenWrt 功能

OpenWrt 是一个基于 Linux 的开源操作系统,目标是嵌入式网络设备。它主要用作各种家用路由器上原始固件的替代品。OpenWrt 配备了优秀路由器应具备的所有实用功能,例如 DNS 服务器 (dnsmasq)、Wifi 接入点和客户端功能、用于调制解调器功能的 PPP 协议,并且与标准固件不同,所有功能都是完全可配置的。

LuCI Web 界面

OpenWrt 可以通过命令行 (SSH) 远程配置,也可以使用 LuCI,一个 GUI 配置界面。LuCI 是一个轻量级、可扩展的 Web GUI,用 Lua 编写,可以精确配置您的设备。除了配置之外,LuCI 还提供了许多附加信息,例如实时图表、系统日志和网络诊断。

LuCI web interface

Stephan Avenwedde, CC BY-SA

LuCI 还有一些可选扩展,可以添加更多配置选项。

可写文件系统

另一个亮点是可写文件系统。虽然原厂固件通常是只读的,但 OpenWrt 配备了可写文件系统,这要归功于一个巧妙的解决方案,它将 OverlayFS 与 SquashFS 和 JFFS2 文件系统相结合,允许安装软件包以增强功能。有关文件系统架构的更多信息,请参阅 OpenWrt 文档

扩展

OpenWrt 有一个关联的软件包管理器 opkg,允许安装其他服务。一些示例包括 FTP 服务器、DLNA 媒体服务器、OpenVPN 服务器、Samba 服务器(用于启用文件共享)或 Asterisk(用于控制电话呼叫的软件)。当然,某些扩展需要底层硬件的适当资源。

动机

您可能想知道为什么要尝试替换路由器制造商的固件,冒着对设备造成不可修复的损坏和失去保修的风险。如果您的设备按您想要的方式工作,那么您可能不应该这样做。永远不要动正在运行的系统!但是,如果您想增强功能,或者如果您的设备缺少配置选项,那么您应该检查 OpenWrt 是否可以成为补救措施。

就我而言,我想要一个旅行路由器,当我在露营地时,我可以将其放置在适当的位置,以便与当地的 Wifi 接入点建立良好的连接。路由器应将自身连接为普通客户端,并为其设备广播自己的接入点。这使我可以将所有设备配置为与路由器的接入点连接,而当我身处其他地方时,我只需要更改路由器的客户端连接即可。此外,在一些露营地,您只能获得一个设备的访问代码,我可以通过这种设置来扩展它。

作为我的旅行路由器,我选择 TP-Link TL-WR902AC 是出于以下原因:

  • 小巧
  • 两个 Wifi 天线
  • 5V 电源(USB)
  • 低功耗
  • 性价比高(大约 30 美元即可购得)

为了了解尺寸,这是它与 Raspberry Pi 4 的对比

即使路由器带来了我要求的所有硬件功能,我还是很快发现默认固件不允许我按照我想要的方式配置它。该路由器主要用作 Wifi 接入点,它重复现有的 Wifi 网络或通过板载以太网接口连接到网络。对于这些用例,默认固件非常有限。

幸运的是,该路由器能够运行 OpenWrt,所以我决定用它替换原始固件。

安装

当您的 LTE/5G/DSL/WIFI 路由器满足最低要求时,很有可能可以在其上运行 OpenWrt。下一步,您可以在硬件表格中查找并检查您的设备是否列为兼容,以及您必须选择哪个固件包。TP-Link TL-WR902AC 的页面还包括安装说明,其中描述了如何刷写内部存储器。

刷写固件的过程可能因设备而异,因此我不会详细介绍。简而言之,我必须通过具有特定 IP 地址的网络接口上的 TFTP 服务器连接设备,重命名 OpenWrt 固件文件,然后在启动设备时考虑按住重置按钮。

配置

一旦刷写成功,您的设备现在应该使用新固件启动。与默认固件相比,OpenWrt 具有更多功能,因此启动可能需要更长的时间。

OpenWrt 充当 DHCP 服务器,因此为了开始配置,请在您的 PC 和路由器之间建立直接以太网连接,并将您的 PC 的以太网适配器配置为 DHCP 客户端。

在 Fedora Linux 上,要激活网络适配器的 DHCP 客户端模式,首先您必须通过运行以下命令找出连接 UUID:

$ nmcli connection show
NAME          UUID         TYPE      DEVICE 
Wired Conn 1  7a96b...27a  ethernet  ens33
virbr0        360a0...673  bridge   virbr0
testwifi      2e865...ee8  wifi     --
virbr0        bd487...227  bridge   --
Wired Conn 2  16b23...7ba  ethernet --

选择您要修改的连接的 UUID,然后运行

$ nmcli connection modify <UUID> ipv4.method auto

您可以在 Fedora 网络 Wiki 中找到有关这些命令的更多信息。

连接到路由器后,打开 Web 浏览器并导航到 http://openwrt/。您现在应该看到 LuCI 的登录管理器

使用 root 作为用户名,密码字段留空。

配置 Wifi 和路由

要配置您的 Wifi 天线,请单击 网络 菜单并选择 无线

在我的设备上,顶部的天线 radio0 以 2.4 GHz 模式运行,并连接到名为 MOBILE-INTERNET 的本地接入点。下方的天线 radio1 以 5 GHz 运行,并具有与 SSID OpenWrt_AV 关联的接入点。单击 编辑 按钮,您可以打开设备配置以决定设备是属于 LAN 还是 WWAN 网络。在我的例子中,接入点 OpenWrt_AV 属于 LAN 网络,客户端连接 MOBILE-INTERNET 属于 WWAN 网络。

配置的网络在 网络接口 面板下列出。

为了获得我想要的功能,网络流量必须在 LAN 和 WWAN 网络之间路由。路由可以在 网络 面板的 防火墙 部分中配置。我没有在此处进行任何更改,因为默认情况下,流量在网络之间路由,并且传入的数据包(从 WWAN 到 LAN)必须通过防火墙。

因此,您需要知道的只是接口是属于 LAN 还是 (W)WAN。这个概念使得配置相对容易,特别是对于初学者而言。您可以在 OpenWrt 的基本网络 指南中找到更多信息。

强制门户

公共 Wifi 接入点通常受强制门户保护,您必须在其中输入访问代码或类似信息。通常,当您首次连接到接入点并尝试打开任意网页时,会出现此类门户。此机制由接入点的 DNS 服务器实现。

默认情况下,OpenWrt 激活了一项安全功能,可防止连接的客户端遭受 DNS 重绑定攻击。OpenWrt 的重绑定保护还阻止强制门户转发到客户端,因此您必须禁用重绑定保护,以便您可以访问强制门户。此选项位于 网络 菜单的 DHCP 和 DNS 面板中。

尝试 OpenWrt

得益于升级到 OpenWrt,我获得了一个基于商用硬件的灵活旅行路由器。OpenWrt 使您的路由器完全可配置和可扩展,并且由于制作精良的 Web GUI,它也适合初学者。甚至有一些精选路由器已经预装了 OpenWrt。您还可以使用许多可用软件包来增强路由器的功能。例如,我正在使用 vsftp FTP 服务器在连接的 USB 闪存盘上托管一些电影和电视剧。查看 项目主页,您可以在其中找到切换到 OpenWrt 的许多理由。

标签
User profile image.
Stephan 是一位技术爱好者,他欣赏开源技术带来的对事物工作原理的深入了解。Stephan 在工业自动化软件这个主要为专有领域的行业担任全职支持工程师。如果可能,他会致力于他基于 Python 的开源项目、撰写文章或骑摩托车。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.