首页 > 其他分享 >基于Busybox的ifup/ifdown网络配置

基于Busybox的ifup/ifdown网络配置

时间:2023-10-29 17:55:27浏览次数:37  
标签:Busybox network interfaces etc ifup static ifdown

 如何在基于Busybox的文件系统,自动进行网络配置?通过ifup/ifdown,从/etc/network/interfaces获取配置,是一种常见的方式。

下面从Buildroot配置ifupdown脚本、ifup/ifdown工作机制、/etc/network/interfaces分别简单记录。

1 Buildroot启动网络脚本

Buildroot配置ifupdown scripts,可以在系统启动时使能网络接口:

Target packages
    ->Networking applications
        ->ifupdown scripts

使能后会创建/etc/init.d/S40network:

#!/bin/sh
case "$1" in
  start)
    printf "Starting network: "
    /sbin/ifup -a
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    ;;
  stop)
    printf "Stopping network: "
    /sbin/ifdown -a
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    ;;
  restart|reload)
    "$0" stop
    "$0" start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit $?

 2 ifup/ifdown简析

ifup/ifdown是Busybox Applets,从/etc/network/interfaces解析参数进行网络配置。

 ifup/ifdown的入口函数为ifupdown_main():

ifupdown_main
    ->read_interfaces--根据/etc/network/interfaces参数,调用工具进行设置。
    ->run_mapping

其中主要iface设置如下,根据不同关键词调用不同函数:

            static const struct address_family_t *const addr_fams[] = {
                &addr_inet,
                &addr_inet6,
                &addr_link,
                NULL
            };
static const struct method_t methods[] = {
    { "manual"  , manual_up_down, manual_up_down, },
    { "wvdial"  , wvdial_up     , wvdial_down   , },
    { "ppp"     , ppp_up        , ppp_down      , },
    { "static"  , static_up     , static_down   , },
    { "bootp"   , bootp_up      , static_down   , },
    { "dhcp"    , dhcp_up       , dhcp_down     , },
    { "loopback", loopback_up   , loopback_down , },
};

static const struct address_family_t addr_inet = {
    "inet",
    ARRAY_SIZE(methods),
    methods
};

2.1 /etc/network/interfaces配置

查看当前系统中的网络接口:

ls /sys/class/net/
can0  eth0  lo

通过dhcp自动配置IP:

auto eth0                #自动启用并连接eth0网卡
iface eth0 inet dhcp     #使用DHCP服务器设置IP地址

使用静态IP:

auto eth0
iface eth0 inet static
address 192.168.1.101     #设置IP地址为192.168.1.101
netmask 255.255.255.0     #设置掩码为255.255.255.0
gateway 192.168.1.1       #设置默认网关为192.168.1.1

更多参考:

 

标签:Busybox,network,interfaces,etc,ifup,static,ifdown
From: https://www.cnblogs.com/arnoldlu/p/17796039.html

相关文章

  • 使用busybox自代chrt提升全部TID优先级
    背景嵌入式平台比较青睐busybox提高设备安全性其中内建了chrt可以方便的修改调度优先策略问题实际使用过程中发现chrt不能统一修改全部thread的优先级chrtchrt[OPTIONS][PRIO][PID|PROG[ARGS]]Manipulatereal-timeattributesofaprocessOpt......
  • kernel6.5.7+busybox1.36.1制作一个Mini Linux (没启动起来)
    目录前奏下载linux内核源码并编译下载busybox的源代码制作根文件系统镜像文件安装qemu...有兴趣的同学可参考该文档将其完善...前奏rambo@debian:~$cat/etc/issueDebianGNU/Linux12\n\lrambo@debian:~$free-htotalusedfree......
  • X710网卡LACP模式下ifdown网卡后交换机侧依然处于UP状态,导致网络通信异常
    以下配置属于临时配置,重启后失效,具体建议在bios或者固件中解决。主要包含两个配置:1、使用ifdown命令关闭网卡无法使linkdown,交换机侧依然认为端口UP进行流量转发,无法正常通信2、在某些环境中,LACP可能无法正常工作,这些环境要求将包含LCAP信息的LLDP帧转发到网络堆栈。#查看网卡......
  • ifdown
    ifdown禁用指定的网络接口补充说明ifdown命令用于禁用指定的网络接口。语法ifdown(参数)参数网络接口:要禁用的网络接口。实例ifdowneth0#禁用eth0......
  • Android之adb安装busybox使用wget、telnet等服务
    二、通过busybox安装使用wgetbusyboxwget1也可以直接输入wget,不用加busybox了三、通过busybox使用telnet服务(1)进入root权限su1(2)每次开启adbshell后都需要设置环境变量才能重启busybox服务(没有安装busybox可以看DHCPv6之GitHub项目Android侧验证)exportPATH=/data/busybox:......
  • busybox yaml file
    简单的busybox的yaml文件kind:DeploymentapiVersion:apps/v1metadata:name:clearlognamespace:defaultlabels:app:busyboxspec:replicas:3selector:matchLabels:app:clearlogtemplate:metadata:labels:app......
  • busybox是什么
    BusyBox是一个单一可执行文件的软件集合,旨在提供一个轻量级的Unix工具箱,包含了许多常用的命令和实用程序。它被设计为在嵌入式系统和资源受限的环境中运行,以提供基本的命令行功能。BusyBox的设计目标是通过将多个工具整合到一个可执行文件中,减少系统的空间占用和资源消耗。它......
  • Buildroot(2022.08-rc1)+busybox(1.35.0)启动流程
     关键词:busybox,inittab,syslogd,klogd,mdev,modprobe,watchdog,telnetd等等。 《busybox启动流程简单解析:从init到shelllogin》详细介绍了init对inittab的解析和执行。下面为buildroot(2022.08-rc1)的启动脚本:/etc/inittabsysinit->/bin/mount-tprocproc/proc......
  • 内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
    原文:https://blog.csdn.net/yyzsyx/article/details/129576582文章目录一、篇头二、内核部分2.1源码下载2.1.1官网2.1.2镜像站点2.1.3代码下载2.2编译2.2.1设置工具链2.2.2配置2.2.3make2.2.4编译成功三、busybox部分3.1源码下载3.2编译3.2.1配置3.2.3编译3.2.4查......
  • EasyARM i.MX283A 完整系统制作指南(Linux 4.13.2+U-Boot 2017.09+BusyBox 1.27.2+Qt5
    原文:https://www.taterli.com/3213/标题老长呢.反正什么都是新的,所有都是开源的,除了下载工具以外,所有源码都有(据说下载工具也有,我懒得找了.),编译器源码自己也能做,但是没必要了.代码下载地址:https://github.com/nickfox-taterli/imx283a-new/releases/tag/v0.1首先有一个U......