十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
linux 管理员应该意识到这一点,因为这是一项例行任务。很多人想知道为什么我们需要在服务器中添加多个 IP 地址,以及为什么我们需要将它添加到单块网卡中?我说的对吗?

成都创新互联公司是一家专注于成都做网站、成都网站设计与策划设计,宝坻网站建设哪家好?成都创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:宝坻等地区。宝坻做网站价格咨询:18980820575
你可能也会有类似的问题:在 Linux 中如何为单块网卡分配多个 IP 地址?在本文中,你可以得到答案。
当我们对一个新服务器进行设置时,理想情况下它将有一个 IP 地址,即服务器主 IP 地址,它与服务器主机名对应。
我们不应在服务器主 IP 地址上托管任何应用程序,这是不可取的。如果要在服务器上托管任何应用程序,我们应该为此添加辅助 IP。
这是业界的最佳实践,它允许用户安装 SSL 证书。大多数系统都配有单块网卡,这足以添加额外的 IP 地址。
我们可以在同一个接口上添加 IP 地址,或者在同一设备上创建子接口,然后在其中添加 IP。默认情况下,一直到 Ubuntu 14.04 LTS,接口给名称为 ethX (eth0),但是从 Ubuntu 15.10 之后网络接口名称已从 ethX 更改为 enXXXXX(对于服务器是 ens33,桌面版是 enp0s3)。
在本文中,我们将教你如何在 Ubuntu 上执行此操作,并且衍生到其它发行版(to 校正:这句自己加的)。
注意:别在 DNS 详细信息后添加 IP 地址。如果是这样,DNS 将无法正常工作。
在系统中添加 IP 地址之前,运行以下任一命令即可验证服务器主 IP 地址:
#ifconfig或#ip addr#ip addreth0 Link encap:EthernetHWaddr08:00:27:98:b7:36inet addr:192.168.56.150Bcast:192.168.56.255Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fe98:b736/64Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500Metric:1RX packets:4 errors:0 dropped:0 overruns:0 frame:0TX packets:105 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:902(902.0 B) TX bytes:16423(16.4 KB)eth1 Link encap:EthernetHWaddr08:00:27:6a:cf:d3 inet addr:10.0.3.15Bcast:10.0.3.255Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fe6a:cfd3/64Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500Metric:1RX packets:80 errors:0 dropped:0 overruns:0 frame:0TX packets:146 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:8698(8.6 KB) TX bytes:17047(17.0 KB)lo Link encap:LocalLoopbackinet addr:127.0.0.1Mask:255.0.0.0inet6 addr:::1/128Scope:HostUP LOOPBACK RUNNING MTU:65536Metric:1RX packets:25 errors:0 dropped:0 overruns:0 frame:0TX packets:25 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1RX bytes:1730(1.7 KB) TX bytes:1730(1.7 KB)如我所见,服务器主 IP 地址是 192.168.56.150,我将下一个 IP 192.168.56.151 作为辅助 IP,使用以下方法��成:
#ip addr add 192.168.56.151/24 broadcast 192.168.56.255 dev eth0 label eth0:1输入以下命令以检查新添加的 IP 地址。如果你重新启动服务器,那么新添加的 IP 地址会消失,因为我们的 IP 是临时添加的。
#ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:98:b7:36 brd ff:ff:ff:ff:ff:ffinet 192.168.56.150/24 brd 192.168.56.255 scope global eth0valid_lft forever preferred_lft foreverinet 192.168.56.151/24 brd 192.168.56.255 scope global secondary eth0:1valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe98:b736/64 scope linkvalid_lft forever preferred_lft forever3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:6a:cf:d3 brd ff:ff:ff:ff:ff:ffinet 10.0.3.15/24 brd 10.0.3.255 scope global eth1valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe6a:cfd3/64 scope linkvalid_lft forever preferred_lft forever
要在 Ubuntu 系统上添加永久辅助 IP 地址,只需编辑 /etc/network/interfaces 文件并添加所需的 IP 详细信息。
#vi/etc/network/interfaces#vi/etc/network/interfaces#The loopback network interfaceauto loiface lo inet loopback#The primary network interfaceauto eth0iface eth0 inet staticaddress 192.168.56.150netmask 255.255.255.0network 192.168.56.0broadcast 192.168.56.255gateway 192.168.56.1auto eth0:1iface eth0:1 inet staticaddress 192.168.56.151netmask 255.255.255.0保存并关闭文件,然后重启网络接口服务。
# service networking restart或# ifdown eth0:1&& ifup eth0:1验证新添加的 IP 地址:
#ifconfigeth0 Link encap:EthernetHWaddr08:00:27:98:b7:36inet addr:192.168.56.150Bcast:192.168.56.255Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fe98:b736/64Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500Metric:1RX packets:5 errors:0 dropped:0 overruns:0 frame:0TX packets:84 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:962(962.0 B) TX bytes:11905(11.9 KB)eth0:1Link encap:EthernetHWaddr08:00:27:98:b7:36inet addr:192.168.56.151Bcast:192.168.56.255Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1eth1 Link encap:EthernetHWaddr08:00:27:6a:cf:d3 inet addr:10.0.3.15Bcast:10.0.3.255Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fe6a:cfd3/64Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500Metric:1RX packets:4924 errors:0 dropped:0 overruns:0 frame:0TX packets:3185 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:4037636(4.0 MB) TX bytes:422516(422.5 KB)lo Link encap:LocalLoopbackinet addr:127.0.0.1Mask:255.0.0.0inet6 addr:::1/128Scope:HostUP LOOPBACK RUNNING MTU:65536Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1RX bytes:0(0.0 B) TX bytes:0(0.0 B)
正如本文开头所述,网络接口名称从 Ubuntu 15.10 就开始从 ‘ethX’ 更改为 ‘enXXXX’ (enp0s3),所以,替换你的接口名称。
在执行此操作之前,先检查系统上的 IP 信息:
#ifconfig或#ip addrenp0s3: flags=4163 mtu 1500inet 192.168.56.201 netmask 255.255.255.0 broadcast 192.168.56.255inet6 fe80::a00:27ff:fe97:132e prefixlen 64 scopeid 0x20ether 08:00:27:97:13:2e txqueuelen 1000(Ethernet)RX packets 7 bytes 420(420.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 294 bytes 24747(24.7 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0enp0s8: flags=4163 mtu 1500inet 10.0.3.15 netmask 255.255.255.0 broadcast 10.0.3.255inet6 fe80::344b:6259:4dbe:eabb prefixlen 64 scopeid 0x20ether 08:00:27:12:e8:c1 txqueuelen 1000(Ethernet)RX packets 1 bytes 590(590.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 97 bytes 10209(10.2 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73 mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10loop txqueuelen 1000(LocalLoopback)RX packets 325 bytes 24046(24.0 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 325 bytes 24046(24.0 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0如我所见,服务器主 IP 地址是 192.168.56.201,所以,我将下一个 IP 192.168.56.202 作为辅助 IP,使用以下命令完成。
#ip addr add 192.168.56.202/24 broadcast 192.168.56.255 dev enp0s3运行以下命令来检查是否已分配了新的 IP。当你重启机器时,它会消失。
#ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:97:13:2e brd ff:ff:ff:ff:ff:ffinet 192.168.56.201/24 brd 192.168.56.255 scope global enp0s3valid_lft forever preferred_lft foreverinet 192.168.56.202/24 brd 192.168.56.255 scope global secondary enp0s3valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe97:132e/64 scope linkvalid_lft forever preferred_lft forever3: enp0s8: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:12:e8:c1 brd ff:ff:ff:ff:ff:ffinet 10.0.3.15/24 brd 10.0.3.255 scope global dynamic enp0s8valid_lft 86353sec preferred_lft 86353secinet6 fe80::344b:6259:4dbe:eabb/64 scope linkvalid_lft forever preferred_lft forever
要在 Ubuntu 系统上添加永久辅助 IP 地址,只需编辑 /etc/network/interfaces 文件并添加所需 IP 的详细信息。
我们不应该在 dns-nameservers 行之后添加辅助 IP 地址,因为它不会起作用,应该以下面的格式添加 IP 详情。
此外,我们不需要添加子接口(我们之前在 Ubuntu 14.04 LTS 中的做法):
#vi/etc/network/interfaces# interfaces(5)file used by ifup(8)and ifdown(8)auto loiface lo inet loopback#The primary network interfaceauto enp0s3iface enp0s3 inet staticaddress 192.168.56.201netmask 255.255.255.0iface enp0s3 inet staticaddress 192.168.56.202netmask 255.255.255.0gateway 192.168.56.1network 192.168.56.0broadcast 192.168.56.255dns-nameservers 8.8.8.88.8.4.4dns-search 2daygeek.local保存并关闭文件,然后重启网络接口服务:
#systemctl restart networking或# ifdown enp0s3 && ifup enp0s3运行以下命令来检查是否已经分配了新的 IP:
#ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:97:13:2e brd ff:ff:ff:ff:ff:ffinet 192.168.56.201/24 brd 192.168.56.255 scope global enp0s3valid_lft forever preferred_lft foreverinet 192.168.56.202/24 brd 192.168.56.255 scope global secondary enp0s3valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe97:132e/64 scope linkvalid_lft forever preferred_lft forever3: enp0s8: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:12:e8:c1 brd ff:ff:ff:ff:ff:ffinet 10.0.3.15/24 brd 10.0.3.255 scope global dynamic enp0s8valid_lft 86353sec preferred_lft 86353secinet6 fe80::344b:6259:4dbe:eabb/64 scope linkvalid_lft forever preferred_lft forever让我来 ping 一下新 IP 地址:
#ping192.168.56.202-c 4PING 192.168.56.202(192.168.56.202)56(84) bytes of data.64 bytes from192.168.56.202: icmp_seq=1 ttl=64time=0.019 ms64 bytes from192.168.56.202: icmp_seq=2 ttl=64time=0.087 ms64 bytes from192.168.56.202: icmp_seq=3 ttl=64time=0.034 ms64 bytes from192.168.56.202: icmp_seq=4 ttl=64time=0.042 ms---192.168.56.202ping statistics ---4 packets transmitted,4 received,0% packet loss,time3068msrtt min/avg/max/mdev =0.019/0.045/0.087/0.026 msvia: https://www.2daygeek.com/how-to-add-additional-ip-secondary-ip-in-ubuntu-debian-system/
作者:Prakash Subramanian 选题:lujun9972 译者:MjSeven 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出