OpenWrt是什么

子凡 2020-12-01 22:03:14
问答

OpenWrt 可以被描述为一个嵌入式的 Linux 发行版。对比一个单一的、静态的系统,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。

OpenWrt 可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有 dd-wrt,tomato,openwrt,padavan 四类)对比一个单一的、静态的系统,OpenWrt 的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。

OpenWrt

对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。

开发背景

当 Linksys 释放 WRT54G/GS 的源码后,网上出现了很多不同版本的固件(Firmware)去增强原有的功能。大多数的 Firmware 都是 99%使用 Linksys 的源码,只有 1%是加上去的,每一种 Firmware 都是针对特定的市场而设计,这样做有 2 个缺点,第一个是难以集合各版本 Firmware 的长处,第二个是这版本距离 Linux 正式发行版越来越远。

OpenWrt 选择了另一条路,它从零开始,一点一点的把各软件加入进去,使其接近 Linksys 版 Firmware 的功能,而 OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统。

发展历程

OpenWrt 项目由 2004 年 1 月开始, 第一个版本是基于 Linksys 提供的 GPL 源码及 uclibc 中的 buildroot 项目, 这个版本称为 “stable” 版, 在网上至今仍有很多项目使用这个版本, 较为有名 Freifunk-Firmware 和 Sip@Home.

到了 2005 年初, 一些新的开发人员加入了这项目, 几个月后他们释出了第一个 “experimental” 版本, 这和以前版本不同的是, 这版本差不多完全舍弃了 Linksys 的 GPL 源码, 使用了 buildroot2 作为核心技术, 将 OpenWrt 完全模块化,OpenWrt 使用 Linux 正式发行的核心源码(2.4.30),加上了一些补丁和网络驱动,开发队伍更为 OpenWrt 添加了许多免费的工具,可以直接把 Image 写入 Flash (mtd)里面,设定无线功能和 VLAN 交换功能,这个版本名为“White Russian”,而 1.0 版本于 2005 年底公布。

系统特点

OpenWRT 是一个高度模块化、高度自动化的嵌入式 Linux 系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及 VOIP 设备中。 同时,它还提供了 100 多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。

OpenWRT 不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的 linux kernel 又远比绝大多数发行版来得新。

优势

如果对 Linux 系统有一定的认识, 并想学习或接触嵌入式 Linux 的话, OpenWRT 很适合。 而且 OpenWRT 支持各种处理器架构,无论是对 ARM,X86,PowerPC 或者 MIPS 都有很好的支持。 其多达 3000 多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个 make 命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件。

一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:

1、 创建 Linux 交叉编译环境;

2、建立 Bootloader;

3、移植 Linux 内核;

4、建立 Rootfs (根文件系统);

5、安装驱动程序;

6、安装软件;

熟悉这些嵌入式 Linux 的基本开发流程后,不再局限于 MIPS 处理器和无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的嵌入式产品。

劣势

由于 CPU 内核体系不同,造成很多应用程序移植到 OpenWrt 上的时候经常崩溃。

由于 ADSL 硬件模块的驱动程序没有开放源代码,造成很多 ADSL 一体无线路由的 ADSL 模块不能工作而造成功能缺失(RG100A 和 DB120 除外)。

由于 OpenWRT 并不是官方发布的路由器固件,所以要使用(刷入该固件)有困难,而且其基于 Linux,导致 OpenWRT 的入门门槛较高。

OpenWrt 功能

1、openwrt 可以作为 client 连接到其他 wifi 作为 WAN,再创建一个自己的 wifi 作为 LAN,相当于有线 WAN 口不用插网线就能够实现 wifi 上网。其他固件好像没有这种设置方式,不知道是不是我没有发现。其他固件通常只能中继别的 wifi,客户端实际连接的是这中继的 wifi,ip 也是由上级中继 wifi 分配,无法通过这个路由器创建一个子网络。openwrt 的好处在于通过 wifi 连通 internet,自己创建一个子网,可以端口映射、限速等。

2、SSH 隧道

OpenWrt 包含了一个 SSH 服务器所以你可以访问它的终端。把它的 SSH 服务暴露在网络下之后(别忘了用密钥验证而非弱密码的方式给它加密),你就可以远程连接并使用 SSH 隧道加密访问它。这使得在国外的你可以通过公共 Wi-Fi 访问一些只有在国内能访问的网站。

3、搭建 VPN

SSH 隧道和 VPN 在很多方面很相像,但你还是可以在 OpenWrt 路由上搭建适合自己的 VPN。

4、安装 BitTorrent 客户端

如果有特定的网络附加存储器(NAS),或者一个附带了 USB 端口的路由器和一个 USB 设备,你就可以把路由器当作一个 BitTorrent 客户端了。

5、运行服务器软件

OpenWrt 的软件源包含了可以让它作为 web 服务器的软件包,比如 IRCserver,BitTorrenttracker,等等。你可能正在使用路由器,那为什么不干脆把这台路由当作一台服务器来用?路由器耗电比计算机少得多,所以把它当作一个轻量级服务器是很聪明的做法。

6、流量整形服务

OpenWrt 让你可以对经过路由的包进行数据包整形并检测其服务质量,将合适的数据包优先分配。你甚至可以将指定数据包优先分配给指定计算机,而对分配给其他计算机的包暂缓处理。

7、创建贵宾网络

OpenWrt 的 wiki 有如何建立一个给客人用的特殊无线网络的指示,为了安全,它是从你的主网络分出来的。你甚至可以限制贵宾网络的速度。

8、捕获并分析网络流量

你可以使用 tcpdump 来记录所有经由你路由器的数据包。然后可以分享到网络或者使用类似 Wireshark 的工具来打开它,进而分析你的网络流量与行为。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐