Linux系统网络服务脚本解释和如何设置静态IP地址

一、Linux系统网络服务脚本解释

一般在/etc/init.d文件夹中,名为S40network。使用cat命令查看脚本文件。

#!/bin/sh
#
# Start the network....
#

# Debian ifupdown needs the /run/network lock directory
mkdir -p /run/network

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 $?

第1行:mkdir -p /run/network
创建 /run/network 目录。-p 参数表示如果父目录不存在就递归创建,如果目录已存在也不会报错。这个目录通常用来存放网络服务运行时的临时文件。

第3行:case "$1" in
开始一个case语句,根据脚本的第一个参数($1)来执行不同的操作。这是shell脚本中常用的多分支选择结构。

第4-7行:start分支
当参数是"start"时执行这个分支。printf "Starting network: " 输出提示信息但不换行。/sbin/ifup -a 启动所有在配置文件中定义的网络接口。[ $? = 0 ] 检查上一个命令的退出状态码,0表示成功。如果成功就输出"OK",否则输出"FAIL"。

第8-11行:stop分支
当参数是"stop"时执行。逻辑与start类似,但使用 /sbin/ifdown -a 来关闭所有网络接口。

第12-15行:restart/reload分支
当参数是"restart"或"reload"时执行。"$0" 表示脚本自身,这里先调用自己的stop功能,然后调用start功能,实现重启网络的效果。

第16-19行:默认分支
当参数不匹配前面任何选项时执行。输出使用说明,告诉用户正确的参数选项,然后以退出码1退出(表示错误)。

第21行:exit $?
脚本以最后一个命令的退出状态码退出。$? 保存了前一个命令的退出状态。

二、出场系统设置静态IP地址

1.关闭connman相关服务

在/etc/init.d/目录下创建一个自启动脚本文件S99z_ip,关闭连接管理进程和开启网络服务进程,并设置DNS。脚本代码为

source /etc/profile
case "$1" in
  start)
        echo "stop S45connman..."
        echo "restart network"
        echo "set dns"
        echo "nameserver 8.8.8.8">>/etc/resolv.conf
        ;;
  stop)
        echo "do nothing..."
        ;;
  *)
        echo "Usage: $0 {start|stop}"
esac
exit 0

编辑好代码之后,要设置这个文件为可执行文件

chmod a+x S99z_ip

编辑并设置完之后,查看权限

2.配置/etc/network/interfaces

interfaces文件代码解释:
auto lo
iface lo inet loopback

第1行:auto lo
这行指定 lo 接口应该在系统启动时自动启用。auto 关键字告诉系统在执行 ifup -a 命令时(比如系统启动或网络服务启动时),要自动配置这个接口。lo 是 loopback(回环)接口的标准名称。

第2行:iface lo inet loopback
这行定义了接口 lo 的具体配置。iface 是 interface 的缩写,表示开始定义一个网络接口。lo 是接口名称。inet 表示这是IPv4配置(相对于 inet6 表示IPv6)。loopback 指定这是一个回环接口类型。

回环接口是一个特殊的虚拟网络接口,它的作用是让计算机能够与自己通信。它通常分配IP地址 127.0.0.1(localhost),这个地址总是指向本机。当程序需要通过网络协议与同一台机器上的其他程序通信时,就会使用这个接口。

这个配置告诉系统在启动时自动配置回环接口,这对于许多网络服务和应用程序的正常运行是必需的。几乎所有的Linux系统都会有这样的配置。

修改interfaces文件:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.222
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.1.1

在设置之前,需要使用ifconfig检查自己设备所处的网段,我的设备处于192.168.1.223,可以按照这个修改,实际需要视自己情况而定。

注意:不能有多余的空格,不同接口之间需要空一行。

同步之后,执行/etc/init.d/S40network start,可以看到被修改。如果没有成功,使用reboot重启开发板

方法部分参考:第1.7讲 出厂系统设置静态IP地址(下)_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值