香港高防服务器如何在CentOS上批量添加配置IP地址?

香港高防服务器(或其他多 IP 服务器)上运行 CentOS 系统时,可能需要批量添加多个 IP 地址(例如,站群服务器使用多个独立 IP 地址)。


1. 确认分配的 IP 地址

  1. 获取 IP 地址段

    • 高防服务器提供商(如香港机房)处获取分配的 IP 地址列表,例如:
       
      192.168.1.101 - 192.168.1.110
      
    • 确认子网掩码和网关地址,例如:
       
      子网掩码:255.255.255.0
      网关:192.168.1.1
      
  2. 确认网卡名称

    • 在 CentOS 7/8 中,运行以下命令查看网卡名称:
      bash
      ip addr
      
    • 示例输出:
      pf
      2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
          inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
      
    • 上述输出中,网卡名称为 ens33

2. 批量添加 IP 地址

2.1 编辑网卡配置文件

在 CentOS 中,网卡的配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,以 ifcfg-<网卡名称> 命名。

  1. 打开主网卡配置文件:

    bash
    sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
    
  2. 确保主配置文件的内容正确,例如:

    bash
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    
  3. 保存后退出。


2.2 创建别名配置文件

为每个附加的 IP 地址创建别名配置文件,文件名格式为:
ifcfg-<网卡名称>:<别名编号>

方法 1:手动添加

  1. 创建第一个别名文件

    bash
    sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:0
    
  2. 编辑别名文件

    bash
    sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
    

    修改内容如下:

    bash
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens33:0
    DEVICE=ens33:0
    ONBOOT=yes
    IPADDR=192.168.1.101
    NETMASK=255.255.255.0
    
  3. 重复步骤

    • 为其他 IP 创建类似的别名文件,例如 ifcfg-ens33:1ifcfg-ens33:2 等。

方法 2:批量生成脚本

如果需要添加大量 IP 地址,可使用脚本批量生成配置文件。

  1. 创建脚本文件:

    bash
    sudo vim /root/add_ips.sh
    
  2. 添加以下内容:

    bash
    #!/bin/bash
    NETWORK_SCRIPTS_DIR="/etc/sysconfig/network-scripts"
    INTERFACE="ens33"
    NETMASK="255.255.255.0"
    
    # 起始和结束 IP 地址
    START_IP=192.168.1.101
    END_IP=192.168.1.110
    
    # 转换 IP 地址为整数
    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))
    }
    
    # 转换整数为 IP 地址
    int_to_ip() {
        local num=$1
        echo "$((num >> 24 & 255)).$((num >> 16 & 255)).$((num >> 8 & 255)).$((num & 255))"
    }
    
    START=$(ip_to_int "$START_IP")
    END=$(ip_to_int "$END_IP")
    
    # 批量生成配置文件
    for ((i = START; i <= END; i++)); do
        IP=$(int_to_ip $i)
        ALIAS=$((i - START))
        CONFIG_FILE="$NETWORK_SCRIPTS_DIR/ifcfg-$INTERFACE:$ALIAS"
    
        cat > "$CONFIG_FILE" <<EOF
    

TYPE=Ethernet
BOOTPROTO=static
NAME=$INTERFACE:$ALIAS
DEVICE=$INTERFACE:$ALIAS
ONBOOT=yes
IPADDR=$IP
NETMASK=$NETMASK
EOF
echo "Created $CONFIG_FILE with IP $IP"
done

 

3. 保存并退出。

4. 赋予脚本执行权限:
```bash
chmod +x /root/add_ips.sh
  1. 执行脚本:
    bash
    sudo /root/add_ips.sh
    

2.3 重启网络服务

成功添加配置文件后,重启网络服务使变更生效:

bash
sudo systemctl restart network

3. 验证 IP 地址是否生效

3.1 使用 ip addr 查看

运行以下命令,检查是否成功添加新 IP:

bash
ip addr

输出示例:

plaintext
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33
    inet 192.168.1.101/24 brd 192.168.1.255 scope global secondary ens33:0
    inet 192.168.1.102/24 brd 192.168.1.255 scope global secondary ens33:1
    inet 192.168.1.103/24 brd 192.168.1.255 scope global secondary ens33:2

3.2 测试连接

从本地或其他服务器测试新 IP 是否可用:

bash
ping 192.168.1.101

4. 注意事项

  1. 网卡名称

    • CentOS 7 和 8 使用 ens33eth0 等命名,请根据实际网卡名称替换。
  2. 防火墙配置

    • 确保新添加的 IP 地址没有被防火墙规则阻止:
      bash
      firewall-cmd --permanent --add-source=192.168.1.0/24
      firewall-cmd --reload
      
  3. 路由冲突

    • 如果添加多个子网,请确保路由表没有冲突。
  4. 批量 IP 配置文件管理

    • 可以使用脚本快速添加或删除大量 IP,避免手动重复操作。
  5. 系统资源限制

    • 确保服务器的网络栈支持大量 IP 地址(如站群服务器可能需要优化内核参数)。

 

通过上述方法,您可以便捷地在 CentOS 系统上批量添加 IP 地址,适用于香港高防服务器或站群服务器的多 IP 配置需求。

超过 50,000 人的信任 网硕互联期待你加入我们的会员。