【硬创邦】跟hoowa学做智能路由(六):系统基础配置

简介:
  
   在这一章当中,我们将介绍在OpenWRT系统下的编辑和配置的基础指令和操作知识,因为后续的章节主要用于介绍如何配置路由的相关功能,在配置的操作时我们需要掌握编辑和处理的方法。 本章中,编辑和配置的基础方法我们分为三种,三种方式都可以操作成功。分别为:
  1. 使用VI编辑器: 适合教学时直接修改配置文件。
  2. 使用UCI进行编辑: 适合教学时使用,更适合用于自己开发的第三方程序修改配置文件。
  3. 使用SCP下载到本地编辑: 适合教学和系统的测试,文件通过SCP工具下载到本地修改,完成后再上传到服务器上(要注意使用Notepad++或editplus或ue这类支持unix格式文本文件编辑器)

 VI编辑器介绍

vi(Visual Interface)是Linux上最通用的标准编辑器,几乎99.99%的Linux发行版中都包含它。vi可以在不需要图形界面的情况下实现对文件的查看、修改、删除、查找、替换等众多功能。vi的操作,适用于通过串口直接修改文件,以及通过ssh远程登入系统修改文件。 在OpenWRT中,系统允许通过vi编辑器直接修改UCI配置文件,从而实现对系统的配置。

 VI的操作方法

在本节我们就简单的介绍下VI的基本操作方法。

vi指令语法: vi [文件名]

如果指定的文件名不存在,将会在内存中自动创建一个空文件,等待保存时保存到磁盘上。如果文件名存在则将打开该文件。vi在打开文件后有两种工作模式:

  • vi指令模式: 在这个模式下,不能对文件做修改,指令输入内容在屏幕的左下方显示。
  • vi编辑模式: 在编辑模式下,可以对文件内容进行修改,删减,或增加。在OpenWRT的系统下,我们可以输入键盘上的主键盘区内容,也可以使用上下左右箭头按键调整位置。

两种模式切换: 在指令模式下,按键盘上的字母"i"既进入编辑模式(insert方式),这个时候可对文件进行修改编辑。在编辑模式下按键盘的esc键,即可返回指令模式,可以输入指令。 vi支持的指令列表,所有指令都要输入":"作为指令开头,以回车作为指令结束:

退出vi编辑器指令,放弃对文件的修改: :q! 退出vi编辑器: :q 保存当前内容: :w 保存退出: :wq 强制保存退出: :wq! 搜索字符: :/[字符内容]

操作举例:

键盘输入 i 进入编辑模式,然后可以随便输入一些字符(这时已经可以写文字了)

保存退出:进入指令模式,输入保存退出指令:wq 该文件即保存。再次使用vi /tmp/test打开文件即可看到文件保存内容。

 认识UCI

众所周知,在Linux下各种软件包有各种不同的配置脚本,每个配置脚本的语法格式和操作方式不同,这样的设计虽然可以体现出各软件包自身的优势,同时也增加了智能路由产品开发的难度。在这一点上OpenWRT下的UCI技术无疑是一种创新。

UCI是(Unified Configuration Interface)集中式配置信息管理接口的缩写,他是OpenWRT引进的一套配置参数管理机制。UCI管理了OpenWRT下最主要的系统配置,并且提供了简单,容易,标准化的人机交互接口。UCI的管理包含了网络配置,无线配置,系统信息配置等作为路由器的系统主要配置参数。UCI可以帮助开发人员快速的开发出基于OpenWRT的智能路由产品的控制界面(诸如浏览器界面,手机界面等)。

在OpenWRT下有大量的软件包的配置实用了UCI兼容模式。大量的应用程序其实都有他们自己的配置文件,比如samba的配置文件默认是/etc/samba/samba.conf,但是在OpenWRT下samba软件包使用的配置方式也是UCI。当执行/etc/init.d/samba start的时候,启动脚本将通过UCI的shell解码器分析/etc/config/samba配置文件,并且生成需要的/etc/samba/samba.conf配置,来完成配置。

OpenWRT下服务软件加载流程(samba举例):

启动脚本--->/etc/config/samba(UCI解码器)--->/etc/samba/samba.conf--->启动samba服务

OpenWRT下配置处理流程(samba举例):

uci命令--->UCI编解码器--->/etc/config/samba

由于uci配置文件非常适合人机交互,因此如果你是需要人工修改配置,也可以简单的使用常见的vi编辑器直接修改配置:

vi /etc/config/samba

默认的OpenWRT系统拥有以下几个配置文件,随着软件包的增加系统配置文件数量也会增加:

dhcp 路由器的DHCP服务,面向LAN口下计算机提供IP地址分配服务 dropbear SSH服务 firewall 路由转发,端口转发,防火墙规则 fstab 外部存储器配置 network WAN / LAN 网络配置 system 时间服务器时区配置 wireless 无线网络配置

 UCI配置文件格式

UCI默认情况下只处理/etc/config中的配置文件,通过参数指定也可以让它来处理其它位置的配置文件。UCI的配置文件同XML不同(XML的设计更适应机器读取),而UCI配置文件的设计对于人读取非常友好。所以即使你手工修改这些配置也是没有任何问题的。

UCI文件内容格式举例:

config 'example' 'test'
option 'string' 'some value'
option 'boolean' '1'
list 'collection' 'first item'
list 'collection' 'second item'

从config开始一直到下一个config出现中间的内容表示一个段配置(以下均用Section表达),其作用类似编程语言中的{}作用,是表示一个区域数据。

Section开始语法: config '类型' '名字'

其中上面例子的example就是这个配置的类型,而test就是这个配置的名字。UCI允许"匿名"的配置存在所以可能存在只有"类型"而没有"名字"的配置。

参数定义语法: option '键' '值'

option表示当前的配置中的键/值定义语法。上面例子定义了一个键为'string',值为'some value'的配置参数。

列表定义语法: list '集合名字' '值'

list表示一种集合参数,UCI会根据相同集合名字生成一个数组(以上例子数据中包含'first item'和'second item'两个值)给予相应的软件包使用。 UCI允许的参数格式:

option example value
option 'example' value
option example "value"
option "example" 'value'
option 'example' "value"

当遇到上面错误的时候,UCI还是可以很好的工作,但是如果遇到下面的格式,UCI将出现问题:

option 'example" "value'
option example some value with space

还有一点非常重要:尽量使用常规字符去处理器UCI,特殊字符(ACSII标准之外)有可能会破坏数据结构的完整性。

 UCI文件读写方式

UCI文件的读写有两种方式:

  • UCI文件的读写可以通过OpenWRT附带的uci指令来完成,这种读写方式可以用于命令行也可以用于自己开发的WEB程序来操作。
  • 直接使用系统的vi编辑器直接修改UCI文件,所做的修改也可以被系统所识别。

 UCI指令读取配置

语法格式: uci [<options>] <command> [<arguments>] 查看类语法:

uci get <config>.<section>[.<option>] 取得一个键的值 或根据段的名字取得类型
uci show [<config>[.<section>[.<option>]]] 显示出全部 / 配置文件 / 段 / 键 的完整格式
uci changes [<config>] 显示出全部 / 配置文件 的未保存修改(经过commit语法保存后就不再有记录)

变更类语法:

uci add <config> <section-type> 增加一个匿名段配置到配置文件中
uci set <config>.<section>[.<option>]=<value> (增加/修改)一个有名字的段 / 增加一个段中的键和值
uci add_list <config>.<section>.<option>=<string> 增加一个列表集合数据到配置文件中
uci del_list <config>.<section>.<option>=<string> 删除一个指定值的列表集合数据
uci delete <config>[.<section>[[.<option>][=<id>]]] 删除一个 段 / 键 / 指定值的键
uci commit [<config>] 将变更保存在文件中,或保存全部变更到各自文件

UCI在读取的时候优先显示内存中的缓存,其次显示文件中的。UCI在进行变更的时候只变更内存的,如果要使变更生效需要执行commit将其写入文件。 来举个例子。首先产生一个用来做测试的样本测试:

root@OpenWrt:~# cp /etc/config/system /etc/config/mytest

查看当前状态:

取出mytest.ntp.server的值:

增加一个名为mytest类型为hello的段到mytest文件中:

root@OpenWrt:~# uci set mytest.mytest=hello

增加一个配置到这个段中:

root@OpenWrt:~# uci set mytest.mytest.enable=1

修改mytest.@system[0].hostname这个参数:

root@OpenWrt:~# uci set mytest.@system[0].hostname=hoowa

删除掉一个ntp.server的值:

root@OpenWrt:~# uci del_list mytest.ntp.server=2.openwrt.pool.ntp.org

查看都修改了啥:

保存修改:

root@OpenWrt:~# uci commit mytest

看看文件有啥变化:

举例,开启wifi功能:

root@OpenWrt:/# uci set wireless.radio0.disabled=0
root@OpenWrt:/# uci commit wireless

让wifi开启生效:

root@OpenWrt:/# wifi

 使用SCP进行文件传输

SCP(Secure copy)是OpenWRT中的SSH附带的文件传输功能,SCP在操作上类似FTP可以实现一个安全的数据文件传输。

SCP适用于调试阶段的程序文件上下载,从而进行快速测试,这是个非常不错的工具。

第一步:正式开放SSH

在默认的情况下由于没有密码,所以SSH无法登入。首先修改系统超级账户密码,在提示中填写两次新密码:

root@OpenWrt:/# passwd

完成后重启SSH的服务:

root@OpenWrt:/# /etc/init.d/dropbear restart

第二步: 安装WinSCP

大家可以使用一个winscp的工具实现这个操作。winscp工具已经放在了教学服务器上,下载地址为http://182.92.3.46/hoowa/openwrt/tools/winscp439setup.zip。安装这个工具软件,然后让你的电脑连接到开发板的wifi上(在上边案例中,你已经开启过wifi了,对吗?),同时打开软件。

第三步: 点击新建

主机名填写IP地址,默认的开发板是192.168.1.1
端口填写22
用户名填写root
密码就填写刚才设置的那个密码
文件协议选择SCP

点击连接, 连接过程中有提示找不到group指令,没关系直接确认就行了。

第四步:文件处理

登入后,操作起来就像FTP工具一样,左侧是你的电脑,右侧是开发板系统,你可以上载下载文件。

在本章,我们介绍了三种进行配置编辑的方法,请选择其中一种最为你进行后续操作所使用的方式即可。其他的用到了再回来学习也可以的。

到这里,我们在硬件部分的第一次操作基本完成,接下来将进入软件环节,来学习如何配置出一个具备完整功能的路由系统来。

最后,大家现在可以开始提问,在雷锋网(公众号:雷锋网)文章评论、公众号「宅客」:letshome、QQ群:196302618、邮箱:DIYRouter#163.com都可以提交,问题我将会在下章的时候统一解答。需要提醒下,我并不是高手,我回答问题有三个原则:1、我会的我直接回答 2、我不太会的我看着回答 3、我不会的我瞎忽悠 所以我给的答案是否正确需要大家自行判断。

  
 
  本文作者: 孙冰

本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
3月前
|
存储 监控 安全
全国产化十二导联心电图机
十二导联心电图机是医疗设备,通过十二个电极接触患者体表,同步采集心电信号,经滤波处理获得高质量心电图。广泛应用于医院、体检中心及家庭,支持心脏疾病诊断与监测。本机具备高保真ECG采样、强抗干扰能力及24小时连续监测等功能,支持蓝牙或USB实时传输数据,内置算法辅助医生快速判断病情,重要数据可云端存储。符合多项国际安全标准,确保设备稳定可靠。
|
5月前
|
网络协议 网络安全 数据安全/隐私保护
技术心得:极路由1s安装Adbyby广告屏蔽大师
技术心得:极路由1s安装Adbyby广告屏蔽大师
78 0
|
存储 运维 内存技术
vFW设备开局升级操作指北
vFW设备开局升级操作指北
vFW设备开局升级操作指北
|
人工智能 运维 负载均衡
国民级消消乐背后的网络技术支持:不畏巨“峰”,“运”筹帷幄 ——阿里云ALB助力乐元素构建用户体验更丝滑,运维管理更简单的网络
近日,阿里云网络携手乐元素共同部署建设了基于7层业务自动化调度的弹性网络架构,进一步提升乐元素在用户服务上的娱乐体验。提到乐元素相信大家都不陌生,作为从事移动网络游戏的研发、运营及广告平台,其代表作就是先前提到的国民级三消休闲游戏《开心消消乐》, 在中国消除类游戏排名连续多年领先。秉承将游戏和AI技术相结合,通过科技驱动体验的理念,乐元素通过出色的产品为世界各地的人们带来了无尽的欢乐。
911 0
国民级消消乐背后的网络技术支持:不畏巨“峰”,“运”筹帷幄 ——阿里云ALB助力乐元素构建用户体验更丝滑,运维管理更简单的网络
|
编解码 人工智能 算法
机器狗是怎么动起来的?这个up主花三个月自制硬核“机器人心脏”,可承载机械战甲
机器狗是怎么动起来的?这个up主花三个月自制硬核“机器人心脏”,可承载机械战甲
239 0
|
SQL 缓存 NoSQL
硬核技术干货 | 高性能短链设计
今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。
1156 0
硬核技术干货 | 高性能短链设计
|
监控 安全 物联网
智能隔离取代纸质封条 阿里云推出Link WAN防疫守门贴
疫情期间,居家隔离如何做到安全化和便捷化,是很多社区普遍关心的问题。阿里云宣布推出基于Link WAN网络基础设施开发的防疫守门贴,可以完全取代纸质隔离封条,该产品开放式的支持各类监控终端设备,为隔离医学观察提供智能化解决方案。
1109 0
智能隔离取代纸质封条 阿里云推出Link WAN防疫守门贴
|
监控 安全 物联网
智能隔离取代纸质封条,阿里云推出Link WAN防疫守门贴
疫情期间,居家隔离如何做到安全化和便捷化,是很多社区普遍关心的问题。2月19日,阿里云与宜创科技宣布推出基于Link WAN网络基础设施开发的防疫守门贴,可以完全取代纸质隔离封条,该产品开放式的支持各类监控终端设备,为隔离医学观察提供智能化解决方案。
智能隔离取代纸质封条,阿里云推出Link WAN防疫守门贴
|
安全 SoC
硬/软件接口:走向何方
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/85043202 硬件/软件接口(简称为"HSI")是一个术语,用来描述 SoC 外围设备的配置和功能,以及它们如何与CPU交互。
1228 0
下一篇
无影云桌面