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

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

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

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 6、CentOS 7

以添加3个IPv4地址和2个IPv6地址为例,网络适配器的名称为eth0。修改/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

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

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

iface eth0 inet static
address 192.0.2.0/24

Debian 9、Debian 10

以添加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

Fedora 29-32

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

# nmcli con add con-name public-net ifname ens3 type ethernet ipv4.method 'manual' ipv4.addresses '192.0.2.101/23' ipv4.gateway '192.0.2.1' ipv4.dns ''
# nmcli con mod public-net +ipv4.addresses '192.0.2.102'
# nmcli con mod public-net +ipv4.addresses '192.0.2.103'
# nmcli con mod public-net +ipv4.dns '192.0.2.200'

设置动态IPv6,并且添加一个IPv6地址,其他IPv6地址的添加方法类似。

# nmcli con mod public-net ipv6.method 'auto' ipv6.addresses ''
# nmcli con mod public-net +ipv6.addresses '2001:db8:1000::200/128'

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

# nmcli con up public-net

FreeBSD

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

static_routes="linklocal"
route_linklocal="-net 169.254.0.0/16 -interface vtnet0"
ifconfig_vtnet0="inet 192.0.2.101 netmask 255.255.254.0"
defaultrouter="192.0.2.1"
ifconfig_vtnet0_alias0="192.0.2.102 netmask 255.255.255.255"
ifconfig_vtnet0_alias1="192.0.2.103 netmask 255.255.255.255"

rtsold_enable="YES"
ipv6_activate_all_interfaces="YES"
rtsold_flags="-aF"
ifconfig_vtnet0_ipv6="inet6 2001:db8:1000::100 prefixlen 64"
ifconfig_vtnet0_alias0="inet6 2001:db8:1000::200 prefixlen 64" 

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

# service rtsold start
# reboot

【全文完】

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