2024年1月2日发(作者:)

路由器一样可以DIY——五款开源路由器固件测评手记

作者:暂无

来源:《计算机世界》 2012年第49期

提到路由器,很多人会马上联想到思科、瞻博等厂商生产的现存产品。而事实上,路由器远不止这些,本文详细介绍了目前市面上主流的5 款开源路由器固件,包括DD-WRT、Tomato、OpenWRT、M0n0wall 和Vyatta,其中有常用到的,也有较少见的,相信读后会对路由器有更多的认识。

■ 沈建苗 编译

在日常生活中,除了智能手机外,路由器和无线基站无疑是最常被极客破解和修改的消费级设备。一方面破解这些设备较为简单,另一方面破解、修改设备参数后能带来一系列好处,比如拥有更多的特性,改善路由功能,加强安全性,而且破解后还能配置原厂固件通常不允许修改的参数(例如天线输出功率)。

在本文中我们测评了五种最常见的第三方固件,重点介绍了它们所提供的功能、最适合的用户群,其中有专为嵌入式硬件或特定路由器而设计的,有设计成与硬件无关的解决方案的,也有专为x86 设备设计的。

DD-WRT:支持广泛、功能全面DD-WRT 是一款比较受欢迎的路由器固件,青睐它的不仅有业余爱好者和破解高手,还有众多路由器厂商。比如说,巴法络公司(Buffalo)就使用DD-WRT,作为其多款家用和准专业级消费路由器产品的固件。其代表性产品是2005 年生产的LinksysWRT54G 路由器,该路由器基于Linux 固件版本,核心软件采用GPL 许可方式。

支持的硬件:DD-WRT支持博通、ADM、Atheros 以及Ralink 等厂商的芯片组,不过这些芯片组的设备并非全部自动与之兼容。有些设备可能需要破解才可以使用,而有些可能根本就无法使用。

功能特性:DD-WRT 提供了消费级路由器通常所不具备的众多强大的功能,比如ChilliSpot(用于建立商用级无线热点)、AnchorFreeVPN 系统以及支持NoCat 无线社区网络系统。另外,DD-WRT 有多个版本,有只支持最基本功能的2MB 大小的“微型”版本,有支持拥有各种功能的8MB 大小的“大型” 的版本, 这使得DDWRT能够应用于各种不同级别的设备中。

局限性:DD-WRT 的核心版本不经常更新。如果你想要更新较快的版本,只能选择临时的测试版,或者选择由厂商提供的定期修订的版本。

点评:DD-WRT 是大多数用户的最佳选择。其预装在很多品牌路由器中,很容易去掌握、操纵,包括调整、更新、升级等。

Tomato:衍生版本众多

Tomato 原本是作为博通路由器的备用固件而设计的,它因图形用户界面(GUI)、带宽监测工具以及其专业级、可调整的功能特性而备受关注。

支持的硬件:硬件支持方面与DD-WRT大同小异,不过用户要特别注意有哪些版本与你所用的硬件设备兼容。

功能特性:Tomato 功能与DDWRT比较相似,比如拥有复杂精巧的服务质量(QoS)控制、支持telnet 或SSH访问命令行接口(CLI)以及Dnsmasq 等。不过,Tomato 采用了特别的设计方法,因此,在配置改动后一般不需要重启,而配置改动后重启也是用户经常抱怨的一个方面(无论是商用版还是开源版)。另外,还有大量由Tomato 社区开发的定制脚本,比如将路由器的系统日志重定向至磁盘或另一台计算机、备份路由器的设置等。

Tomato 有一大批派生和衍生版本,其中最主要的是Tomato USB,该版本之所以有这样的名称,是因为它支持拥有USB 端口的路由器,因而其允许挂载可移动介质;Toastman 则可以编译很多Tomato 固件版本的修改版,比如经过改进的服务质量(QoS)模块和IP 流量客户端监测工具;Teaman(因其谷歌代码项目名称“tomatosdhc-vlan” 而得名) 增添了对安全数字高容量(SDHC)以及MMC 介质存储的支持、802.11Q虚拟局域网(VLAN)标记以及试验性的MultiSSID Web 界面。

除此之外, 还有T o m a t o b y S h i b b y 、Tomato RAF 以及其他许多派生版本,其中每个版本都有自己的特点和功能特性方面的改动。

局限性: Tomato 的修改版之所以这么多,原因很简单,原始版本的代码自2010 年后就再没有更新。为此,任何更新或新功能特性的出现都归功于上面所提到的替用版本,因此,这些版本同样没法保证这些项目都会不间断地更新。

此外,由于Tomato 衍生版本数量众多,用户很难选择最适合的那一个版本。不过,由于Tomato 的文档内容翔实丰富,其中详细介绍了哪些设备适合哪些版本,所以为你的硬件选择合适的版本应该也不是太难。

点评:Tomato 适合于十分熟悉路由固件的用户。Tomato 用起来与DDWRT差不多,都需要确保你有合适的硬件,并且严格按照固件刷新指示来操作。不过,Tomato 并不作为商用预装版来使用,所以别指望它像DD-WRT 那样出现在现成的路由器中。

OpenWRT:部署复杂、灵活性高

OpenWRT 路由器固件版本较为成熟,用户可以针对各自的硬件配置下载相对应的程序包,并使用相关工具对硬件进行修改。这样虽然加大了部署过程的复杂性,也为用户提供了极大的灵活性。另外,你也可以使用针对常见硬件类型和路由器平台的OpenWRT 的各种预制版本,包括使用博通和Atheros芯片组的各种硬件。OpenWRT 的开发者建议用户从现成版本入手,等掌握了一定的基础后,再学习如何推出个性化版本。

支持的硬件:支持50 多种硬件平台和10 种处理器架构,包含从ARM 微架构到64 位x86

架构。另外,在选购专门与OpenWRT 兼容的硬件时,还会附有购买指南,帮助你选择适合的硬件设备。

功能特性:除了对硬件和平台的广泛支持外,OpenWRT 还支持优化的链路状态路由(OLSR)网状网络协议,该协议使得用户可以利用多个OpenWRT 设备,建立临时的移动网络。而且,软件一旦部署到位,不需要重新刷新固件,就可以进行修改。另外,用户可以根据需求,通过一个内置的程序包管理系统,添加或删除程序包。

OpenWRT也有各种派生版本,其中有些版本适用于非常特殊的场合。比如,Cerowrt 版本当初是作为Bufferbloat 项目的一部分而开发的,以解决局域网和广域网中的网络瓶颈问题;

而FreeWRT 比OpenWRT 核心版本更适合开发者;Gargoyle 则提供了根据主机设定带宽上限的功能, 而这是其重要功能之一。

局限性:

OpenWRT 最大的优点也恰恰是其最大的缺点。用户最好真正明白自己到底在做什么,如果你只是想把原厂路由器固件换成更新一点的固件, 最好避而远之。

点评:OpenWRT 最适合专家型人群。该固件适合于希望操作方面的限制尽量少、想大胆使用不同寻常的硬件,以及擅长自行推出个性化Linux 发行版本的用户。

M0n0wall:支持的芯片数量较少

相比文中介绍的其他固件版本,M0n0wall 的理念最接近OpenWRT,它是可作为防火墙或路由器来使用的FreeBSD 版本。

支持的硬件:M0n0wall 运行在至少64MB 内存、16MB 闪存大小的嵌入式硬件系统中。另外,由于BSD 驱动程序库提供了很强的兼容性,因此其可与常见的PC 硬件兼容。

功能特性:支持所有常见的路由器功能,包括流量整形、QoS 工具以及高端网络上的一些功能,比如VLAN 标记和轮询。M0n0wall 启动时间很短,一般30 秒内即可进入到闪存型硬件的工作系统。另外,其精巧的Web 界面提供了直接通过浏览器升级固件的功能。

M0n0wall 是众多派生版本的基础。其中最有名的衍生版本是PfSense, 它适用于成熟的PC 式系统,而不是嵌入式系统。如果你打算把PC 改造成路由器,首先应该使用Pfsense,而不是M0n0wall,因为Pfsense 是直接为PC 硬件开发的版本, 可以极大地缩减用户工作量。另一个版本M0n0wall-mod 增添了新的广域网选项,比如能够针对单独列举的广域网接口配置DHCP 和PPTP。

局限性:M0n0wall 的一个缺点是,它支持的无线芯片组数量很少。话虽如此,不过任何基于Atheros 芯片组的802.11硬件都可以支持。

点评: 把旧PC 硬件改造成防火墙或路由器的用户。如果你在考虑把嵌入式硬件路由器设计成多用途的网络设备,M0n0wall 是个不错的选择。

Vyatta:x86 设备专用

Vyatta 是一款基于Linux 的网络操作系统,一般在核心开源版和商用版中使用。用户可以通过软件订购或购买硬件设备的方式获得商用版。Vyatta 通常部署为小型办公室、分支机构的网关、VPN 集线器、数据中心之间或者数据中心与云之间的网桥。

支持的硬件: 与OpenWRT 和M0n0wall/PfSense 一样,Vyatta 也有支持32 位x86 PC 硬件的版本,任何这类系统与Vyatta 都可以改造成高效的路由器、防火墙和网络服务设备。

功能特性:一般性的功能 Vyatta都具备。而且其在今年3 月的版本中还新添了一些功能,包括以图形化方式显示统计数字的GUI 和仪表板(仅限于商用版)、符合RFC 的虚拟路由器冗余协议(VRRP)、经过改进的连接跟踪和日志记录子系统,以及状态检查防火墙等。另外,Vyatta 还增添了支持VMwarevSphere 5 模块的功能。

局限性:和这次测评的其他产品相比,Vyatta 的最大局限性在于,它是完全为x86 设备所设计的,而且不是一般的x86 设备,而是存储容量较大(至少1GB)的设备。简而言之,Vyatta 最适合成熟的PC。此外,虽然Vyatta 有64 位版本,但是目前还处于测试阶段,不适用于生产系统。

另外,包括Web 界面在内的许多关键功能只出现在商用版中。其中命令行接口是针对网络管理员设计的,对一般的用户来说可能是个障碍,目前其商用版提供30 天的免费试用。点评:Vyatta 是一款商务级产品,其路由和安全功能超出大多数小型办公室或家庭办公室的需求。话虽如此,如果有用户想使用基于x86 的PC 硬件来搭建网络设备——尤其是用于大型环境,会从Vyatta 中找到所需的一切功能。