进阶教程之 OpenWrt 基础应用软件指南

当你已经可以熟练使用 OpenWrt 完成日常上网的相关配置,那么是时候更进一步了,接下来你应该了解如何在 OpenWrt 上安装软件,利用各类精巧的软件实现更多的附加价值,你可以用以提升生活品质,或助力提升生产力,无限可能等你发掘。

OpenWrt 系统分区

首先你需要了解 OpenWrt 的系统分区属性,不同于常见的 Windows、Linux 之类的系统,嵌入式系统的分区属性有所不同,OpenWrt 的系统安装包又被称之为“固件”,因为系统分区一般为只读属性(即 ROM),也就是说系统分区的所有文件只能由系统安装阶段所写入,日常使用中无法修改或删除。

剩余空间被称之为 “overlay” 的文件分区管理,这是个覆盖层,你可以把它理解为一张透明的纸,因为有这个 overlay 分区的存在,才可以对系统自带的文件进行修改操作,但本质上来说原文件依然存在,只是被 overlay 分区增加的数据覆盖了,因为这个属性,日常使用中删除 OpenWrt 系统自带的文件并不会增加剩余可用空间,相反因为写入了覆盖数据,反而会导致可用空间变少。

系统安装完毕后,额外增加的软件或文件,删除这些额外安装的软件或文件才能释放可用空间。

因为路由器作为传统的嵌入式设备,其一直具备“恢复出厂设置”的功能,只读系统分区就是为这个功能设计的,当因为各种原因导致系统功能严重故障后,就可以使用“恢复出厂”功能来清空 overlay 分区,以达到快速让系统恢复如初的效果。

OpenWrt 系统安装包(固件)中有一种例外情况,有些设备可以使用 ext4 格式的安装包,使用后则系统分区为可读写属性,当然也就失去了“恢复出厂”的功能,一旦系统损坏,则只能重装系统。

OpenWrt 软件结构

OpenWrt 的软件安装包后缀名为 ipk ,软件一般分为两个部分,一个是软件的主体,这个 ipk 文件内包含软件的可执行文件、启动脚本等,另一个就是软件的界面,这个 ipk 文件内包含与软件配套的可视化界面,用于在网页进行操控。

  • 并非所有的软件都有配套界面,可能这个软件不需要界面,也可能是暂时还没有人制作配套的界面。
  • 软件界面文件名一般都以 luci 开头,目前 OpenWrt 的软件界面已采用 JavaScript 脚本编写,旧版界面是使用 Lua 脚本编写。
  • 根据不同的开发人员喜好,也可能出现一个 ipk 中既包含软件可执行文件,又包含软件界面的情况。

软件安装方式

以 OpenWrt-Life 固件为例,系统安装完毕后,自带的软件仅能实现常用的基础网络功能,要想实现其它的功能,则需要安装对应的软件包。

首先你需要知道软件安装包的名称,了解软件的功能用途,一般情况下新入门的普通用户很难获取相关信息,导致想安装一个软件变得极其繁琐,好在 OpenWrt-Life 固件提供了配套的软件库列表以供查阅,使得软件安装更为便利。

这里以安装局域网共享软件 Samba4 为例,通过查阅软件库列表可知软件界面名称为 luci-app-samba4

打开“系统”-“软件包”界面,首先点击一次“更新列表”按钮,然后在“过滤器”文本框输入软件包名称以进行过滤显示,只输入部分关键字也可以,只要能检索到这个软件就行。

安装软件只需三步。

安装完毕后,刷新网页即可看到新增的菜单,一般软件安装后都在“服务”菜单下,有些软件安装后会在其它菜单下,如果各处都找不到菜单,可能这个软件包并没有界面。

OpenWrt 软件包提供方式

OpenWrt 属于一个基于 Linux 内核的嵌入式操作系统,其软件包提供方式和其它桌面 Linux 系统一样,都是由在线 HTTP 文件服务器提供,因 OpenWrt 属于开源系统,是否提供配套的软件包取决于其作者。

需要注意的是,基于 Linux 内核的缘故,软件包不可随意通用,不同的系统版本只能使用与其配套的软件包。
某些基于 OpenWrt 修改而成的商业路由器系统,也并不能随意安装 ipk 软件包。

因为开源操作系统的高度可定制性,导致不同的作者编译的成品固件可能差异很大(未能严格遵守标准规范),同一个软件可能在某个固件上能正常运行,换一个固件可能就无法正常运行,专业术语把这种现象称为“系统碎片化”。

  • OpenWrt 官网固件:由 openwrt.org 官网提供文件服务器,还有很多院校或企业等提供镜像文件服务器,多用于学习研究。
  • OpenWrt-Life 固件:基本和官网固件类似,提供配套的在线文件服务器,主要针对日常应用环境。
  • 网上各种自编译固件:绝大多数都是直接集成多个软件,不提供在线文件服务器,只能通过重新刷机来更新软件。

注意事项

1、路由器安装软件通常会比较慢,因为路由器 CPU 性能较弱,路由器的闪存读写速度也较低,导致安装软件的效率远低于传统的桌面电脑,请耐心等待。由于软件包是通过网络在线下载安装,如果网速缓慢也会导致进一步拖慢安装软件的效率。

2、因为软件界面采用 JavaScript 脚本的缘故,如果出现中文不显示,或界面异常等,应强制刷新网页,或清空浏览器缓存,重新打开浏览器,一般都能解决。

注意:OpenWrt 的界面语言默认为自动,即通过识别浏览器语言来显示界面语言,如果你觉得不好用,请自行修改设置。

3、请按需安装软件,不要大量安装,有些软件会互有冲突,如果同时安装使用,可能会出现功能异常。

4、个别软件安装后需要重启系统后才能正常使用,比如 Dockerman、一些内核模块等。

5、一般情况下,点击 “保存并应用” 按钮即可让修改生效,但部分界面程序可能不太规范,需要重复点击一次“保存并应用”按钮才能生效。

6、如果遇到软件故障,多数情况下是配置不正确导致的,请先了解清楚各个软件的功能和正确的配置方法后再试。

7、要想正常使用各类软件功能,需要你具备一定程度的现代计算机相关基础知识,各类教程只是辅助你快速上手,并不能让真正零基础的人学会正确方法,只会“复制粘贴”的人即使看了教程也仍会遭遇失败。

8、如果你是一个毫无技术基础的爱好者,非要尝试使用,请自行想办法,不要完全寄希望于“热心网友”的帮助,大多数“热心网友”的技术水平并不严谨,很可能会教给你不太正确的方法,如果确实想要快速解决问题,请付费找专业人士协助。

人最值钱的是时间,人最不值钱的还是时间。

KGHX