硬件档案/HARDWARE ARCHIVE
杂谈

我为什么最终回到了OpenWRT的怀抱

在经历了10年后,我最终还是回到了OpenWRT这个平台。阔别10年,OpenWRT已经从一个简陋的路由器系统,变身为一个让我非常吃惊的全功能系统。再次相聚,感慨良多。

终于可以不用频繁切换配置思路了

我回到 OpenWrt,首先是因为它给了我选择设备的空间。以Cisco为例,Cisco的路由器、防火墙、交换机和Wireless系统,都有自己完全不同的配置逻辑。 如果我要给自己的的私有家用网络配置一整套Cisco的产品,我必须同时精通所有这些的配置,才能顺利搭建完成。显而易见,即便是在Cisco工作过3年,在Juniper工作过6年的我, 也仍然不能完成所有工作。

但OpenWRT不同了。同一套系统可以运行在许多品牌的路由器上,也可以装在 x86 小主机上。住处、带宽和预算变了,我可以重新挑硬件,不必从头适应另一套管理界面。它可以是路由器, 也可以是zone-based防火墙,可以是Wireless,也可以加载DSA成为限速路由器。而这一切的一切,都包含在OpenWRT框架下。

无线终于不再是劝退我的理由

过去谈 OpenWrt,常有人建议把它只用来做有线路由,无线交给别的设备。我现在不会把这条建议当成默认答案。OpenWrt 24.10 的官方发布说明明确提到: Wi‑Fi 6 支持得到改进,Wi‑Fi 7 也有了初步支持。这让我更愿意考虑让一台 OpenWrt 设备同时承担路由和无线接入。

Wi-Fi在合适的底层Wireless Drive和Wpad的协助下,可以实现非常惊人的漫游性能,并在BATMAN的协助下,实现无线、有线自动选择的无线回传和MESH组网。 这些功能的稳定性都让我非常震惊。

多样设备选择,更多设计快乐

大多数的硬件厂商,受限于自己的产品线和设计要求,能提供的设备种类很有限。譬如家用设备厂商都是类似于Orbi或者Beacon 10那种设备,而商用厂商基本又是吸顶设计。 在某些情况下,我们可能不得不选择混合类型部署的话,我们就必须被迫接受不同的配置方式和完全不相通的漫游、射频管理和配置逻辑。

OpenWRT已经完全屏蔽了这种差异。不同设备可以在一个平台上实现同步的配置方法和逻辑,完全不需要考虑有没有这个设备,而只需要考虑找到合适构型的设备即可。极大改善了使用体验。

LuCI

LuCI已经强大到不成样子了。结合ubus和rpcd的日益强大,自己开发功能已经完全不是任何问题了。下面是我基于25.0 branch设计和编写的无线控制器。

功能按需安装,路由器才像自己的路由器

厂商路由器通常把功能打包给用户:需要的、不需要的,都由产品定位决定。OpenWrt 则把许多能力做成可安装的软件包。我可以先用它完成最基本的上网、无线 和防火墙配置,等确实有需求,再加入动态域名、广告拦截或其他服务;不需要了,也可以移除。官方软件管理文档介绍了通过网页界面搜索、安装和删除软件包的方法。

插件化最吸引我的地方,不是把路由器装成一台什么都做的小服务器,而是让我控制它的复杂度。功能随着需求增加,哪些服务在运行、为什么要运行,我心里有数。 我可以用WireGUARD结合FRR做出非常类似于蒲公英的异地内网互联,或者用OpenVPN加BIRD2做出L2 VPN互联,还有其他的热门功能。

读者反馈与作者回复

关于本文,有问题、使用反馈或不同的实测结果,都欢迎留言。 涉及设备实测时,请尽量附上设备型号、固件版本和测试条件。 我会在对应留言下回复,已核实的修正会补进正文。

留言需登录 GitHub。不方便使用或评论未加载时,可以邮件反馈(itscraper@hotmail.com),邮件已预填本文链接。

← 回到杂谈

图片查看

打开原图 ↗

按原始尺寸显示,可滑动查看细节。