CentOS 8 永久批量添加 IP 地址

system

CentOS 8 永久批量添加 IP 地址

2023-10-26 06:18


                                            




在 CentOS 8 中,`NetworkManager` 是默认的网络管理工具,但您仍然可以使用静态网络配置文件来配置网络

 

首先,创建一个名为 `add_ips_centos8.sh` 的文件,并将以下内容复制到该文件中:

 

```bash

#!/bin/bash

 

# Network interface (Modify if different)

INTERFACE="ens33"

 

# Check if IP range start and end are provided

if [ "$#" -ne 2 ]; then

    echo "Usage: $0 <IP_START> <IP_END>"

    exit 1

fi

 

IP_START=$1

IP_END=$2

 

# Function to convert IP to number

ip_to_int()

{

    local a b c d

    IFS=. read -r a b c d <<< "$1"

    echo "$((a * 256 ** 3 + b * 256 ** 2 + c * 256 + d))"

}

 

# Function to convert number to IP

int_to_ip()

{

    echo "$(($1 >> 24 & 255)).$(($1 >> 16 & 255)).$(($1 >> 8 & 255)).$(($1 & 255))"

}

 

START_NUM=$(ip_to_int $IP_START)

END_NUM=$(ip_to_int $IP_END)

 

for NUM in $(seq $START_NUM $END_NUM); do

    IP=$(int_to_ip $NUM)

    CFG_FILE="/etc/sysconfig/network-scripts/ifcfg-$INTERFACE:$NUM"

    

    cat > $CFG_FILE <<EOL

DEVICE=$INTERFACE:$NUM

TYPE=Ethernet

ONBOOT=yes

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

IPADDR=$IP

PREFIX=24

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

NAME="$INTERFACE:$NUM"

EOL

 

    echo "Configured $IP on $INTERFACE:$NUM"

done

 

# Restarting network services to apply changes

systemctl restart NetworkManager

 

echo "All IPs added successfully!"

```

 

为脚本赋予执行权限:

 

```

chmod +x add_ips_centos8.sh

```

 

使用方法:

 

```

./add_ips_centos8.sh 192.168.1.10 192.168.1.20

```

 

这将在 `ens33` 网卡上配置从 `192.168.1.10` 到 `192.168.1.20` 的 IP 地址。

 

注意:

 

1. 在运行此脚本之前,请备份您的网络配置。

2. 该脚本假设您使用的是默认的 `ens33` 网卡名称。如果您的系统使用其他名称,请在脚本中相应修改。

3. 该脚本使用了一个常见的 `PREFIX=24`,这相当于 `255.255.255.0` 的子网掩码。如果您使用的是不同的子网掩码,请在脚本中修改。