第8章 OpenWrt-UCI的使用(一)
8.1 什么是UCI
UCI是Unified Configuration Interface的缩写,翻译成中文就是统一配置接口,用途就是为OpenWrt提供一个集中控制的接口。
本章将讲解UCI配置及配置接口。
8.2 UCI语法
配置文件由配置节(setion)组成,配置节由多个“name/values”选项组成。每个配置节点都需要有一个类型标识,但可以没有名字,没有名字的节点被称为匿名配置节点。
如下是OpenWrt中一个实际配置文件(/etc/config/system):
OpenWrt有很多独立的第三方应用程序,大多数应用程序的软件包维护者已经制作了UCI兼容的配置文件,启动时由UCI配置文件转换成软件包的原始配置文件。这是在运行初始化脚本/etc/init.d/中执行的。
一般来说,我们会设置配置文件修改后,由procd进程重启与配置文件关联的进程,重启的过程中会重新解析和应用配置修改后的配置文件。关于procd的使用,我们会在后续课程中就行讲解。
常用功能配置文件如下:
文件路径 | 作用 |
---|---|
/etc/config/dhcp | Dnsmasq软件包配置,包含DHCP和DNS设置 |
/etc/config/dropbear | SSH服务器选项 |
/etc/config/firewall | 防火墙配置,包括网络地址转换、包过滤和端口转发等 |
/etc/config/network | 网络配置,包括桥接、接口和路由配置 |
/etc/config/system | 系统设置,包括主机名称,网络时间同步等 |
/etc/config/luci | 基本的Luci配置 |
/etc/config/wireless | 无线设置和WIFI网络定义 |
/etc/config/uhttpd | web服务器选项配置 |
/etc/config/upnpd | miniupnpd UPNP配置设置 |
/etc/config/qos | 网络服务质量的配置文件定义 |
8.3 uci指令
uci指令可以用于修改配置文件,下面是该指令的选项含义和基本的使用方法。
下面通过具体的例子来讲解常用的命令:
- uci show:获取某个配置文件的内容
- uci set: 修改某个配置节选项的值或者新增加一个选项
- uci changes:查看对配置文件的修改,此时的修改指的是未使用“uci commit”进行提交
从上面的截图可以看出,此时uci show system是可以看到改动,此时读取的内容是从内存中读取的,没有保存到文件中。 - uci commit:将对配置文件的修改写入到文件中
- uci add_list:对已经存在的list选项增加字符串
- uci del_list:删除list中的一个配置项