OpenWrt之系统内核设置以及非UCI的配置的系统配置

本文深入探讨OpenWrt系统内核设置与非UCI配置,包括sysctl工具的使用,如修改内核参数、设置路由转发等。同时介绍了关键配置文件如/etc/rc.local、/etc/profile和/etc/fstab的作用及配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统内核设置以及非UCI的配置的系统配置
系统内核设置

OpenWrt与桌面系统的Ubuntu及Fedora等一样,都采用sysctl作为系统的内核配置工具。

sysctl

sysctl命令,用于修改运行中的内核参数,这些参数位于/proc/sys目录下。可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。

参数以key=value的形式进行设置。

-n :查询时输出配置项的值,但不输出配置项

-e : 当碰到不认识的配置项时,忽略错误。

-w:使用这个选项来修改系统设置。

-p:从指定的配置文件中加载配置,如果未指定则默认用/etc/sysctl.conf。

-a:显示当前所有可用的值。

例如:

/sbin/sysctl -a,显示所有的内核配置。

/sbin/sysctl -n kernel.hostname,查询kernel.hostname的值。

/sbin/sysctl -w kernel.hostname="xxxx",修改系统主机的名称为"xxxx"。

/sbin/sysctl -p /etc/sysctl.conf,加载配置。

内核的参数配置在启动时由sysctl工具加载,默认为/etc/sysctl.conf。启动之后均可在/proc/sys下查询,例如直接查询是否打开路由转发:cat /proc/sys/net/ipv4/ip_forward

内核参数也可以通过直接修改/proc/sys/下的文件来生效。例如打开路由转发设置:

echo "1" > /proc/sys/net/ipv4/ip_forward

非UCI的配置的系统配置

OpenWrt有一部分配置是大多linux系统都有的配置,因为用户很少修改,所以未提供UCI接口给用户修改。

/etc/rc.local // 想要在开机后就执行的命令可以写入该文件

这个文件是一个shell脚本,在系统每次启动时由/etc/rc.d/S95done调用。开机之后想要执行的命令写入这里。如启动时增加域名服务器地址为“8.8.8.8”:把echo "nameserver 8.8.8.8" >> /etc/resolv.conf写到/etc/rc.local文件中,默认内容如下。

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

exit 0

/etc/profile // 为系统的每个登陆用户设置环境变量

当用户第一次登录时该文件被执行,首先会输出“banner”文件的内容,紧接着为登录用户设置环境变量,并创建一些常用的命令链接,如more命令链到less,即执行more命令最终会调用less命令。

#!/bin/sh
[ -f /etc/banner ] && cat /etc/banner
[ -e /tmp/.failsafe ] && cat /etc/banner.failsafe

export PATH=/usr/sbin:/usr/bin:/sbin:/bin
export HOME=$(grep -e "^${USER:-root}:" /etc/passwd | cut -d ":" -f 6)
export HOME=${HOME:-/root}
export PS1='\u@\h:\w\$ '

[ -x /bin/more ] || alias more=less
[ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi

[ -z "$KSH_VERSION" -o \! -s /etc/mkshrc ] || . /etc/mkshrc

[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
[ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }

[ -n "$FAILSAFE" ] || {
        for FILE in /etc/profile.d/*.sh; do
                [ -e "$FILE" ] && . "$FILE"
        done
        unset FILE
}

其中:

  • PATH:决定了shell命令的查找位置及顺序。
  • HOME:登录用户主目录
  • PSI:用户命令提示符。

/etc/fstab // 各种文件系统的描述信息

Fstab, 或者叫 file systems table, 是一个集中的配置 。

定义了必要时(例如启动设备时,或者在物理上连接它时),文件系统(通过在块设备上)应该如何被挂载。这样,你不需要在你想要访问它们时,手动挂载设备。挂载配置不仅包括静态文件系统,也包括 swap 分区。

Fstab UCI 子系统是所有选项被定义的地方,包括需要被挂载的全部设备和文件系统,文件位于: /etc/config/fstab
默认情况下,这个子系统和它的配置文件都不存在,因为对大多数 LEDE 用例(网络设备)来说,不需要它。
所以如果你需要配置这个,你首先需要创建它。

创建 fstab
你需要使用 block 工具。安装软件包 block-mount:

root@lede:~# opkg update && opkg install block-mount

调用 block detect 来得到一个 fstab UCI 子系统配置文件的范例。

root@lede:~# block detect > /etc/config/fstab

现在,有 UCI 子系统了,你可以使用 UCI 命令行来改变它,或者直接编辑文件本身。

/etc/shells // openWrt采用的shell是 /bin/ash

/etc/services // 互联网网络服务类型列表
/etc/protocols // 协议定义描述文件

/etc/banner // 登录欢迎横幅。

其他见:官网介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值