CentOS 8 永久批量添加 IP 地址
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` 的子网掩码。如果您使用的是不同的子网掩码,请在脚本中修改。