有几种不同的方式可以在CentOS / Redhat 7.x上启用IP地址。在本指南中,我们将为您提供配置少量附加IP地址,整个CIDR网络前缀(块/范围)以及删除它们的方法的说明和示例。
确定网络设备名称
在我们配置或删除任何其他IP地址之前,我们将要确定我们的主要网络接口的设备名称,这可以通过在我们的终端中运行以下命令来发现:

  1. [root@localhost ]# ip link | awk 'NR%2==1' | awk '{print $2,$8,$9}' | tr -d ':'

其输出应类似如下:

  1. lo state UNKNOWN
  2. enp3s0 state UP
  3. enp4s0 state DOWN

上面示例中的第一个设备被命名lo,这表示它是您的回送接口。第二行输出通常是您的主要网络接口,在这个例子中。它的状态是目前唯一的UP(主动/在线)状态,所以我们可以假定这是正确的接口来配置为另一个DOWN(断开/不活动)。应该配置另一个接口(例如:enp4s0)UP,然后您将需要决定在哪个接口上配置附加的IP空间。
查找网络配置文件
使用ip link早期命令的输出,我们现在可以在我们的目录中找到适当的网络配置文件network-scripts。接口配置文件以ifcfg-接口的设备名称开头。所以,我们来看看我们界面上当前配置的一切enp3s0如何(用你的界面的名字替换):

  1. [root@localhost ]# cat /etc/sysconfig/network-scripts/ifcfg-enp3s0

您的输出应类似于以下内容:

  1. TYPE=Ethernet
  2. BOOTPROTO=none
  3. DEFROUTE=yes
  4. IPV4_FAILURE_FATAL=no
  5. IPV6INIT=yes
  6. IPV6_AUTOCONF=yes
  7. IPV6_DEFROUTE=yes
  8. IPV6_FAILURE_FATAL=no
  9. NAME=enp3s0
  10. UUID=a007fd6d-4cc5-45b6-9a38-991a8e820eaf
  11. DEVICE=enp3s0
  12. ONBOOT=yes
  13. IPADDR=10.0.0.2
  14. PREFIX=29
  15. GATEWAY=10.0.0.1
  16. DNS1=8.8.8.8
  17. DNS2=8.8.4.4
  18. IPV6_PEERDNS=yes
  19. IPV6_PEERROUTES=yes

在上面的示例中,当前配置的唯一IP地址为10.0.0.2。它是/ 29 prefix(PREFIX=29)的一部分,其中也可以配置IP 10.0.0.3,10.0.0.4,10.0.0.5和10.0.0.6。

如果您打算在网络接口上配置多个IP地址,那么您可能需要使用范围文件进行配置。范围文件允许您配置整个CIDR网络前缀(/ 29,/ 24等),因此您不必单独配置每个IP地址。继续到范围文件部分或跳到部分手动添加的IP地址,如果你只需要启用少量的IP地址的。
范围文件
首先,我们更新我们的主要网络接口的配置文件(用你的接口名称替换):

  1. [root@localhost ]# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

现在,将以下文本附加到文件的末尾并保存: NM_CONTROLLED=NO

对于启用范围文件,Redhat / CentOS 7.x需要进行此配置更改。它简单地允许我们通过使界面不再被Network Manager系统控制来利用范围文件。完成上述更改并保存文件后,我们可以继续创建我们的范围文件:

  1. [root@localhost ]# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0-range

将以下文本行添加到新的配置文件(ifcfg-enp3s0-range)中。用您自己的唯一网络配置(IP,前缀等)替换每个参数的设置:

IPADDR_START=192.168.1.2 - 范围内第一个可用的IP地址。

IPADDR_END=192.168.1.254 - 范围内的最后一个可用IP地址。

PREFIX=24 - 块/范围的IP的CIDR前缀。(请参阅下面的CIDR前缀表,以确定您的IP范围的正确前缀号码。)

CLONENUM_START=0 - 接口别名起始号码,它将为绑定到接口的每个附加IP地址自动增加一个IP地址,为其创建一个别名(例如:enp3s0:0,enp3s0:1等)。如果您有多个范围文件,那么您需要确保将此号码设置为下一个可用号码(例如:如果您已按照此处所述配置了/ 24)。

它应该看起来类似于以下范围文件:

  1. IPADDR_START=192.168.1.2
  2. IPADDR_END=192.168.1.254
  3. PREFIX=24
  4. CLONENUM_START=0
  1. / 32 192.168.1.90/32 1
  2. / 31 192.168.1.90/31 2
  3. / 30 192.168.1.92/30 4
  4. / 29 192.168.1.200/29 8
  5. / 28 192.168.1.16/28 16
  6. / 27 192.168.1.64/27 32
  7. / 26 192.168.1.192/26 64
  8. / 25 192.168.1.128/25 128
  9. / 24 192.168.1.0/24 256

在上面的例子范围文件,我们配置/ 24前缀,其中,所述第一IP地址(192.168.1.0)是Network地址,第二个是Gateway地址(192.168.1.1),和最后一个IP地址为Broadcast( 192.168.1.255)地址。这三个IP地址在这种意义上是“不可用”的,因为它们需要以这种方式配置,以便其余的IP地址正常工作。或者,您可以配置不同的Gateway,如果您需要使用不同的默认值。如果是这样,那么也可以简单地追加GATEWAY=YOURGATEWAYADDRESS到文件中。当前的默认Gateway地址可以通过运行以下命令来确定:

  1. [root@localhost ~]# ip route | grep default
  2. default via 192.168.1.1 dev enp3s0

我们仔细检查一下输入正确的信息,我们的范围文件中没有错误。这很重要,因为下一步可能会导致您的服务器无法访问。确认一切顺序后,请重新启动网络服务以使更改生效:

  1. [root@localhost ]# systemctl restart network

删除IP地址
现在我们知道如何添加额外的IP地址,让我们快速了解如何删除它们。要删除单个IP地址,您可以发出以下命令:

  1. [root@localhost ]# ip addr del [ipaddress] dev [network_device_name]

例如:

  1. [root@localhost ]# ip addr del 192.168.1.72/32 dev enp3s0

如果要删除整个范围,可以使用以下命令刷新IP:

  1. [root@localhost ]# ip -s a f to [CIDRPrefix]

例如:

  1. [root@localhost ]# ip -s a f to 192.168.1.0/24