介绍
您是否知道可以为一个物理网络接口分配多个IP地址?例如,当使用Apache和虚拟主机时,此技术非常有用,因为它允许您使用两个不同的IP地址访问同一Apache服务器。
临时虚拟网络接口
在Linux中创建虚拟网络接口的过程非常简单。它涉及一次执行ifconfig命令。
ifconfig eth0:0 123.123.22.22
上面的命令将基于原始eth0物理接口创建一个新的虚拟网络接口。创建虚拟网络接口的唯一最重要条件是物理网络接口,在本例中,必须存在eth0。整个示例如下所示:
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 3c:97:0e:02:98:c8
inet addr:192.168.100.23 Bcast:192.168.100.255
Mask:255.255.255.0
# ping 192.168.100.23
PING 192.168.100.23 bytes of data.
64 bytes from 192.168.100.23 time=0.023 ms
64 bytes from 192.168.100.23 time=0.059 m
此时,我们可以基于eth0配置一个新的虚拟接口。一旦执行ifconfig命令,新的虚拟接口将立即可以使用。
# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 3c:97:0e:02:98:c8
UP BROADCAST MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:f1600000-f1620000
# ifconfig eth0:0 123.123.22.22
# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 3c:97:0e:02:98:c8
inet addr:123.123.22.22 Bcast:123.255.255.255 Mask:255.0.0.0
# ping 123.123.22.22
PING 123.123.22.22 (123.123.22.22) 56(84) bytes of data.
64 bytes from 123.123.22.22: icmp_req=1 ttl=64 time=0.060 ms
64 bytes from 123.123.22.22: icmp_req=2 ttl=64 time=0.057 ms
禁用虚拟网络接口
要禁用之前创建的临时网络接口,我们可以使用ifconfig再次命令,但带有向下标志。
# ifconfig eth0:0 down
虚拟地址永久分配
重新启动后,以上配置将不会持续。如果希望虚拟网络接口是永久性的,则需要修改与特定Linux发行版相关的配置文件。在下面,您可以找到描述主要Linux发行版此过程的信息:
Debian /Ubuntu
静态的
对于Debian或Ubuntu Linux,您需要进行编辑/etc /network /interfaces使用您喜欢的文本编辑器添加文件,并添加以下行:
iface eth0:0 inet static
address 123.123.22.22
netmask 255.0.0.0
broadcast 123.255.255.255
直流电
也可以将虚拟网络接口与DHCP一起使用。在这种情况下,您需要添加到/etc /network /interfaces下一行。
iface eth0:0 inet dhcp
要应用更改,请使用以下方法重新启动网络:
# /etc/init.d/networking restart
Redhat /Fedora /CentOS
静态的
对于Redhat,Fedora或CentOS Linux,负责永久IP地址分配的目录为/etc /sysconfig /network-scripts。在此目录中,您需要创建一个与新虚拟接口相对应的文件。在我们的例子中,它将是一个名为:ifcfg-eth0:0的文件。创建此新文件并插入以下几行,以使虚拟地址分配在重启后永久生效:
DEVICE=eth0:0
IPADDR=123.123.22.22
NETMASK=255.0.0.0
NETWORK=123.0.0.0
BROADCAST=123.255.255.255
ONBOOT=yes
直流电
DEVICE=eth0:0
BOOTPROTO=dhcp
ONBOOT=yes
准备就绪后,请使用以下命令重新启动界面:
# service network restart
结论
在过去,一台物理服务器为单个网站提供服务。如今,这已不再是托管网站的可行选择,因此,操作系统必须具有创建虚拟网络接口的能力。