分享最新优惠信息
购买主机更加划算

Linux系统将多个IP地址分配给单个网络接口简单教程

在单个网络接口上创建或配置多个IP地址的概念称为IP别名,这对于使用单个子网上具有不同IP地址的单个网络接口在Web服务器上设置多个虚拟站点非常有用。使用此IP别名的主要优点是你不需要为每个IP连接物理适配器。相反,你可以为单个物理卡创建多个或多个虚拟接口(别名)。

本文接下来给出的说明适用于所有基于RHEL的发行版,例如Fedora、CentOS、Rocky Linux和​​Alma Linux。实际上,创建多个接口并手动为其分配IP地址是一项艰巨的任务。在这里,小编将介绍如何通过定义一组IP范围来分配IP地址。

此外,小编还将介绍如何创建虚拟接口并同时为其分配不同范围的IP地址。另外,这里使用的是LAN IP地址,因此请将其替换为你自己将使用的IP地址。

Linux将多个IP分配给单个网络接口

为单个网络接口创建多个IP地址

在这里,有一个名为“ ifcfg-eth0 ”的网络接口,它是以太网设备的默认网络接口卡。如果你连接了第二个以太网设备,它将显示为“ ifcfg-eth1 ”,对于每个附加设备,依此类推。

这些设备的网络文件位于“ /etc/sysconfig/network-scripts/ ”目录中,你可以使用以下ls命令列出所有设备。

ls -l /etc/sysconfig/network-scripts/

示例输出如下:

ifcfg-eth0   ifdown-isdn    ifup-aliases  ifup-plusb     init.ipv6-global
ifcfg-lo     ifdown-post    ifup-bnep     ifup-post      net.hotplug
ifdown       ifdown-ppp     ifup-eth      ifup-ppp       network-functions
ifdown-bnep  ifdown-routes  ifup-ippp     ifup-routes    network-functions-ipv6
ifdown-eth   ifdown-sit     ifup-ipv6     ifup-sit
ifdown-ippp  ifdown-tunnel  ifup-isdn     ifup-tunnel
ifdown-ipv6  ifup           ifup-plip     ifup-wireless

假设我们要创建三个额外的虚拟接口以将三个IP地址(分别是172.16.16.126、172.16.16.127和172.16.16.128)绑定到NIC。所以,需要创建三个额外的别名文件,而“ ifcfg-eth0 ”保留相同的主IP地址。以下是我们继续设置三个别名来绑定的IP地址。

Adapter            IP Address                Type
-------------------------------------------------
eth0              172.16.16.125            Primary
eth0:0            172.16.16.126            Alias 1
eth0:1            172.16.16.127            Alias 2
eth0:2            172.16.16.128            Alias 3

其中":X"表示为接口eth0创建别名的设备(接口)编号。对于每个别名,你必须按顺序分配一个编号。例如,小编将现有参数从接口“ ifcfg-eth0 ”复制到名为ifcfg-eth0:0、ifcfg-eth0:1和ifcfg-eth0:2的虚拟接口。

导航到网络配置目录并创建文件,如下所示。

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:0
cp ifcfg-eth0 ifcfg-eth0:1
cp ifcfg-eth0 ifcfg-eth0:2

打开文件“ ifcfg-eth0 ”并查看内容,命令如下:

vi ifcfg-eth0

示例输出如下:

DEVICE="eth0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.125
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

在这里,我们只需要两个参数(DEVICE和IPADDR)。因此,使用你喜欢的编辑器打开每个文件,将设备名称重命名为其相应的别名,然后更改IPADDR地址即可。

例如,使用VI编辑器打开“ ifcfg-eth0:0 ”、“ ifcfg-eth0:1 ”和“ ifcfg-eth0:2 ”文件,并更新这两个参数。最后,它看起来与下面的示例类似:

对于ifcfg-eth0:0

DEVICE="eth0:0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.126
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

对于ifcfg-eth0:1

DEVICE="eth0:1"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.127
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

对于ifcfg-eth0:2

DEVICE="eth0:2"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.128
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

完成所有更改后,保存所有更改并重新启动/启动网络服务以使更改生效。

systemctl restart network

要验证所有别名(虚拟接口)是否已启动并正在运行,可以使用“ ifconfig ”或“ ip ”命令,如下所示:

ifconfig

示例输出:

eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.125  Bcast:172.16.16.100  Mask:255.255.255.224
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:198 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:25429 (24.8 KiB)  TX bytes:26910 (26.2 KiB)
          Interrupt:18 Base address:0x2000

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.126  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.127  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.128  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

现在尝试从不同的机器对每个设备执行ping操作。如果一切设置正确,你将收到来自每个设备的ping响应。

ping 172.16.16.126
ping 172.16.16.127
ping 172.16.16.128

示例输出如下:

ping 172.16.16.126
PING 172.16.16.126 (172.16.16.126) 56(84) bytes of data.
64 bytes from 172.16.16.126: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.126: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.126: icmp_seq=3 ttl=64 time=0.159 ms

ping 172.16.16.127
PING 172.16.16.127 (172.16.16.127) 56(84) bytes of data.
64 bytes from 172.16.16.127: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.127: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.127: icmp_seq=3 ttl=64 time=0.159 ms

ping 172.16.16.128
PING 172.16.16.128 (172.16.16.128) 56(84) bytes of data.
64 bytes from 172.16.16.128: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.128: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.128: icmp_seq=3 ttl=64 time=0.159 ms

这样设置就成功了。使用这些新的IP地址,你可以在Apache中设置虚拟站点、FTP帐户以及许多其它内容。

分配多个IP地址范围

如果你想为名为“ ifcfg-eth0 ”的特定接口创建一系列多个IP地址,可以使用“ ifcfg-eth0-range0 ”并复制ifcfg-eth0的内容,具体如下所示:

cd /etc/sysconfig/network-scripts/
cp -p ifcfg-eth0 ifcfg-eth0-range0

现在打开“ ifcfg-eth0-range0 ”文件。

vi ifcfg-eth0-range0

然后添加“ IPADDR_START ”和“ IPADDR_END ” IP地址范围(可以根据你自身实际情况进行添加),如下所示:

#DEVICE="eth0"
#BOOTPROTO=none
#NM_CONTROLLED="yes"
#ONBOOT=yes
TYPE="Ethernet"
IPADDR_START=172.16.16.126
IPADDR_END=172.16.16.130
IPV6INIT=no
#GATEWAY=172.16.16.100

保存并重新启动/启动网络服务

systemctl restart network

验证虚拟接口已创建并分配了IP地址:

ifconfig

示例输出如下:

eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.125  Bcast:172.16.16.100  Mask:255.255.255.224
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1249 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:127317 (124.3 KiB)  TX bytes:200787 (196.0 KiB)
          Interrupt:18 Base address:0x2000

eth0:0     Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.126  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.127  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.128  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:3    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.129  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:4    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.130  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

总结

通过遵循以上简单设置过程,现在你可以在Red Hat Enterprise Linux系统中的单个网络接口上有效地创建和管理多个IP地址,这种灵活性使你能够根据你的具体要求优化网络通信和连接。如果你有这方面的使用需求,那么不妨按照上面的教程进行设置吧。

未经允许不得转载:惠主机 » Linux系统将多个IP地址分配给单个网络接口简单教程