云服务器开通时,默认会免费提供一个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