如何在Linux云服务器上设置多个IP地址?

  • 发布时间:2021-11-18 08:18:47
  • 阅读次数:3863

云服务器开通时,默认会免费提供一个IP地址,朝暮数据提供的大部分国家和可用区的云服务器支持多个IP地址。由于底层架构的不同,有些可用区在购买多个IP地址后,还需要手工在操作系统中设置这些IP地址。本文以各类Linux操作系统为例,说明设置多个IPv4地址和IPv6地址的操作方法。

注意:V区云服务器设置多个IP后,需要在云服务器管理中执行重启(非reboot重启),增加的IP才能生效。

CentOS 8

以添加3个IPv4地址和2个IPv6地址为例,网络适配器的名称为ens3。修改/etc/sysconfig/network-scripts/ifcfg-ens3文件内容如下。

TYPE="Ethernet"
DEVICE="ens3"
ONBOOT="yes"
BOOTPROTO="none"
IPADDR=192.0.2.101
PREFIX=23
GATEWAY=192.0.2.1
DNS1=192.0.2.200
IPADDR1=192.0.2.102
PREFIX1=32
IPADDR2=192.0.2.103
PREFIX2=32
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6ADDR_SECONDARIES="2001:db8:1000::100 2001:db8:1000::200" 

重启网络或者重启操作系统。

# nmcli con load /etc/sysconfig/network-scripts/ifcfg-ens3
# nmcli con up 'System ens3'

CentOS 7

以添加3个IPv4地址和2个IPv6地址为例,网络适配器的名称为eth0。添加第1个IP地址,修改/etc/sysconfig/network-scripts/ifcfg-eth0文件内容如下。

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.0.2.101
NETMASK=255.255.254.0
GATEWAY=192.0.2.1
DNS1=192.0.2.200

IPV6INIT=yes
IPV6ADDR="2001:db8:1000::100/64"
IPV6_AUTOCONF="yes"
IPV6ADDR_SECONDARIES="2001:db8:1000::200/64" 
DNS2=2001:db8:1000::1

设置eth0的默认路由。修改/etc/sysconfig/network-scripts/route-eth0文件内容如下。

169.254.0.0/16 dev eth0

添加第2个IPv4地址,修改/etc/sysconfig/network-scripts/ifcfg-eth0:1文件内容如下。

DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.0.2.102
NETMASK=255.255.255.255
ONBOOT=yes

添加第3个IPv4地址,修改/etc/sysconfig/network-scripts/ifcfg-eth0:2文件内容如下。

DEVICE=eth0:2
BOOTPROTO=static
IPADDR=192.0.2.103
NETMASK=255.255.255.255
ONBOOT=yes

重启网络或者重启操作系统。

# service network restart

如果需要添加一段连续IP地址,可以采用更快捷的设置方法。以添加192.0.2.0-256这段IP地址为例,修改/etc/sysconfig/network-scripts/ifcfg-eth0-range0文件内容如下,然后重启网络或者重启操作系统即可。

IPADDR_START=192.0.2.0
IPADDR_END=192.0.2.256
CLONENUM_START=0
NETMASK=255.255.255.0

注意使用以上添加一段连续IP地址的方法,需要禁用NetworkManager。

systemctl stop NetworkManager
systemctl disable NetworkManager

Ubuntu 22

以添加3个IPv4地址和2个IPv6地址为例,网络适配器的名称为ens3。修改/etc/netplan/10-ens3.yaml文件内容如下。

network:
version: 2
renderer: networkd
ethernets:
    ens3:
    dhcp4: no
    addresses: [192.0.2.101/23,192.0.2.102/32,192.0.2.103/32,'2001:db8:1000::100/64','2001:db8:1000::200/64']
    gateway4: 192.0.2.1
    nameservers:
        addresses: [192.0.2.200]
        routes:
      - to: default
        via: 192.0.2.1
      - to: 169.254.0.0/16
        via: 192.0.2.1
        metric: 100

重启网络或者重启操作系统。

# netplan apply

Ubuntu 18-20

以添加3个IPv4地址和2个IPv6地址为例,网络适配器的名称为ens3。修改/etc/netplan/10-ens3.yaml文件内容如下。

network:
version: 2
renderer: networkd
ethernets:
    ens3:
    dhcp4: no
    addresses: [192.0.2.101/23,192.0.2.102/32,192.0.2.103/32,'2001:db8:1000::100/64','2001:db8:1000::200/64']
    gateway4: 192.0.2.1
    nameservers:
        addresses: [192.0.2.200]
    routes:
    - to: 169.254.0.0/16
        via: 192.0.2.1
        metric: 100

重启网络或者重启操作系统。

# netplan apply

Debian 9以上版本

以添加3个IPv4地址和2个IPv6地址为例,网络适配器的名称为ens3。修改/etc/network/interfaces文件内容如下。

auto lo
iface lo inet loopback

auto ens3
iface ens3 inet static
    address 192.0.2.101
    netmask 255.255.254.0
    gateway 192.0.2.1
    dns-nameservers 192.0.2.200
    post-up ip route add 169.254.0.0/16 dev ens3

iface ens3 inet6 static
    address 2001:db8:1000::100
    netmask 64
    up /sbin/ip -6 addr add dev ens3 2001:db8:1000::200
    dns-nameservers 2001:db8:1000::1

auto ens3:1
iface ens3:1 inet static
    address 192.0.2.102
    netmask 255.255.255.255

auto ens3:2
iface ens3:2 inet static
    address 192.0.2.103
    netmask 255.255.255.255

重启网络或者重启操作系统。

# systemctl restart networking.service

如果需要添加一段连续IP地址或者子网,可以采用更快捷的设置方法。以添加192.0.2.0/24这段IP地址为例,修改/etc/network/interfaces文件内容如下,然后重启网络或者重启操作系统即可。

iface eth0 inet static
address 192.0.2.0/24

【全文完】

< 上一篇:如何在Windows云服务器上设置多个IP地址? 下一篇:如何更换多IP云服务器的出口IP地址? >