概述
阿里云ECS实例默认采用DHCP动态网卡获取IP地址,若您的DHCP动态网卡配置无法满足业务需求,可参考本文在云服务器ECS实例或弹性裸金属服务器中为网卡配置静态IP地址。
详细信息
配置静态IP地址之前,需要获取Linux实例的IP地址、子网掩码、网关信息,请参考以下步骤操作:
查看并记录Linux实例的网卡信息
登录Linux系统的ECS实例,执行以下命令,查看实例的IP地址、子网掩码、网关信息。
ifconfig
系统显示类似如下。
执行以下命令,查看实例的路由表和网关信息。
route -n
系统显示类似如下。
或者您也可以参考以下方式,通过阿里云的MetaServer获取相关信息。
依次执行以下命令,获取实例的子网掩码、网关信息、IP地址。
curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_ID]/netmask curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_ID]/gateway curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_ID]/private-ipv4s
系统显示类似如下。
说明说明:[$MAC_ID]为实例的MAC地址。
Linux系统存在不同的发行版本,不同发行版本中自定义配置网卡静态IP地址的方法不同,请根据现场环境匹配下列发行版本的操作命令:
Alibaba Cloud Linux
Ubuntu
CentOS
Debian
SUSE Linux
OPENSUSE
Anolis OS
Fedora
Alibaba Cloud Linux 2
Alibaba Cloud Linux 2实例的网络服务类型为network-scripts,配置网卡的静态IP地址只需要将实例的IP地址、子网掩码、网关信息等信息,添加到网卡配置文件中然后重启网络服务即可,以下为Alibaba Cloud Linux 2配置静态IP地址的操作步骤:
执行以下命令,编辑
/etc/cloud/cloud.cfg
配置文件。vim /etc/cloud/cloud.cfg
按
i
键切换至编辑模式,在# Example datasource config
内容上增加以下配置,关闭cloud-init中的自动配置网络的参数,避免网卡配置文件内容被覆盖。network: config: disabled
系统显示类似如下。
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
配置文件。vim /etc/sysconfig/network-scripts/ifcfg-eth0
按
i
键切换至编辑模式,将BOOTPROTO的值修改为static,并将以上步骤中记录的IP地址、网关信息、子网掩码填写到该配置文件中,修改之后的内容如下所示。DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.X.68 NETMASK=255.255.255.0 GATEWAY=192.168.X.253 DNS1=[$DNS1] DNS2=[$DNS2]
说明说明:
BOOTPROTO:网卡的模式阿里云ECS实例默认采用DHCP,需要将其修改为static。
eth0:配置的网卡名称,本文以eth0网卡为例,现场以实际环境为准。
IPADDR:配置的IP地址,本文以192.168.X.68为例,现场以实际环境为准。
NETMASK:配置的子网掩码,本文以255.255.255.0为例,现场以实际环境为准。
GATEWAY:配置的网关地址,本文以192.168.X.253为例,现场以实际环境为准。
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,重启网络服务使配置生效。
systemctl restart network
Ubuntu18/20
目前常见的发行版大多使用的是NetworkManager服务进行网络管理,但是从Ubuntu 18系统开始网络服务类型为systemd-networkd,以下是在Ubuntu 18、Ubuntu 20系统中自定义配置静态IP的操作步骤:
请参见Alibaba Cloud Linux 2章节的步骤1,关闭cloud-init中的自动配置网络的参数,避免网卡配置文件内容被覆盖。
执行以下命令,编辑
/etc/netplan/50-cloud-init.yaml
配置文件。vim /etc/netplan/50-cloud-init.yaml
按
i
键切换至编辑模式,在文件底部添加以下配置,自定义配置DNS信息,将dhcp4的值修改为no,并将以上步骤中记录的IP地址、网关信息、子网掩码填写到该配置文件中。nameservers: addresses:[$DNS1, $DNS2]
修改之后的内容如下所示。
network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.X.68/24] gateway4: 192.168.X.253 match: macaddress: 00:16:3e:18:d1:61 set-name: eth0 nameservers: addresses: [$DNS1,$DNS2]
说明说明:
eth0:配置的网卡名称,本文以eth0网卡为例,现场以实际环境为准。
dhcp4:ECS实例的网络配置默认为DHCP模式,需要将其修改为no,关闭网卡的DHCP模式。
addresses:配置的IP地址,本文以192.168.X.68/24为例,现场以实际环境为准。
gateway4:配置的网关地址,本文以192.168.X.253为例,现场以实际环境为准。
match:配置的MAC地址,本文以
00:16:3e:18:d1:61
为例,现场以实际环境为准。nameservers:自定义配置的DNS信息,请按照实际情况填写您自定义的DNS IP地址。
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,应用网卡配置。
netplan apply
执行以下命令,建立
/run/systemd/resolve/resolv.conf
文件的软连接,避免因为/etc/resolv.conf
配置文件内容更新而导致配置还原。sudo ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf
CentOS 6/7/8/Alibaba Cloud Linux 3/Anolis OS 7/8/Fedora 33/34
网络服务
CentOS 6和CentOS 7系统中的网络服务为Network。
CentOS 8和Alibaba Cloud Linux 3中的网络服务为NetworkManager。
Anolis OS 7操作系统的网络服务类型为Network。
Anolis OS 8/Fedora 33/34操作系统的网络服务类型为NetworkManager。
DNS服务 为了便于维护,您可以参考下列步骤,统一通过网络服务来管理网络和DNS配置,即DNS也配置在网卡配置文件中。
请参见Alibaba Cloud Linux 2章节的步骤1,关闭cloud-init中的自动配置网络的参数,避免网卡配置文件内容被覆盖。
执行以下命令,编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
配置文件。vim /etc/sysconfig/network-scripts/ifcfg-eth0
按
i
键切换至编辑模式,将BOOTPROTO的值修改为static,并将以上步骤中记录的IP地址、网关信息、子网掩码填写到该配置文件中,并填写DNS1和DNS2地址,修改之后的内容如下所示。BOOTPROTO=static DEVICE=eth0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet USERCTL=no IPADDR=192.168.X.68 NETMASK=255.255.255.0 GATEWAY=192.168.X.253 PEERDNS=no DNS1=[$DNS1] DNS2=[$DNS2]
说明说明:
BOOTPROTO:网卡的模式阿里云ECS实例默认采用DHCP,需要将其修改为static。
eth0:配置的网卡名称,本文以eth0网卡为例,现场以实际环境为准。
IPADDR:配置的IP地址,本文以192.168.X.68为例,现场以实际环境为准。
NETMASK:配置的子网掩码,本文以255.255.255.0为例,现场以实际环境为准。
GATEWAY:配置的网关地址,本文以192.168.X.253为例,现场以实际环境为准。
DNS1和DNS2:自定义配置的DNS信息,请按照实际情况填写您自定义的DNS IP地址。
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
相关操作系统中重启网络服务的操作命令不同,请根据现场情况,选择以下对应的步骤,重启网络服务:
CentOS 6:
service network restart
CentOS 7/Anolis OS 7:
systemctl restart network
以下操作系统,请重新加载所有网卡配置
nmcli c reload
,然后激活网卡nmcli d connect eth0
CentOS 8
Alibaba Cloud Linux 3
Anolis OS 7/8
Fedora 33/34
Debian 9/Debian 10/Ubuntu 16
Debian 9、Debian 10和Ubuntu 16系统使用的网络服务相同为networking,以下是在Debian 9、Debian 10和Ubuntu 16系统中配静态IP地址的操作步骤:
执行以下命令,编辑
/etc/network/interfaces
配置文件。vim /etc/network/interfaces
按
i
键切换至编辑模式,将iface eth0 inet的值修改为static,并将以上步骤中记录的IP地址、网关信息、子网掩码填写到该配置文件中,修改之后的内容如下所示。auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.X.68 netmask 255.255.255.0 gateway 192.168.X.253 dns-nameservers [$DNS1] [$DNS]
说明说明:
iface eth0 inet:网卡的模式阿里云ECS实例默认采用DHCP,需要将其修改为static。
eth0:配置的网卡名称,本文以eth0网卡为例,现场以实际环境为准。
address:配置的IP地址,本文以192.168.X.68为例,现场以实际环境为准。
netmask:配置的子网掩码,本文以255.255.255.0为例,现场以实际环境为准。
gateway:配置的网关地址,本文以192.168.X.253为例,现场以实际环境为准。
dns-nameservers:自定义配置的DNS信息,请按照实际情况填写您自定义的DNS IP地址。
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,重启网络服务使配置生效。
systemctl restart network
SUSE Linux 12/SUSE Linux 15/OPENSUSE 15
SUSE Linux操作系统使用了Wicked网络管理工具进行网络管理。以下是在SUSE Linux 12、SUSE Linux 15、OPENSUSE 15系统中配置静态IP与自定义DNS的操作步骤:
执行以下命令,编辑
/etc/sysconfig/network/ifcfg-eth0
配置文件。vim /etc/sysconfig/network/ifcfg-eth0
按
i
键切换至编辑模式,将BOOTPROTO的值修改为static,并将以上步骤中记录的IP地址、网关信息、子网掩码填写到该配置文件中,修改之后的内容如下所示。BOOTPROTO='static' STARTMODE='auto' IPADDR='192.168.X.68' NETMASK='255.255.255.0'
说明说明:
BOOTPROTO:网卡的模式阿里云ECS实例默认采用DHCP,需要将其修改为static。
IPADDR:配置的IP地址,本文以192.168.X.68为例,现场以实际环境为准。
NETMASK:配置的子网掩码,本文以255.255.255.0为例,现场以实际环境为准。
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,编辑
/etc/sysconfig/network/routes
网关配置文件。vim /etc/sysconfig/network/routes
按
i
键切换至编辑模式,将default 192.168.X.253内容,添加到文件中。修改完成之后,按下
Esc
键之后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,编辑
/etc/resolv.conf
配置文件。vim /etc/resolv.conf
按
i
键切换至编辑模式,将nameserver
参数的值修改为您自定义的DNS IP地址。nameserver [$DNS1] nameserver [$DNS2]
说明说明:两个
nameserver
参数的值都要修改为您自定义的DNS IP地址。修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,编辑
/etc/sysconfig/network/config
配置文件。vim /etc/sysconfig/network/config
按
i
键切换至编辑模式,将NETCONFIG_MODULES_ORDER
参数的值删除,保留双引号符号(""),如下所示。NETCONFIG_MODULES_ORDER=""
修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件。
执行以下命令,重启网络服务。
service network restart
自定义DNS
在不同版本的Linux实例中配置静态IP地址的方法不同,部分Linux实例在配置静态IP地址之后重启服务器后,DNS服务会重置或者消失,导致网络不通。所以部分Linux实例在配置完成静态IP地址之后需配置自定义的DNS服务。不同Linux实例系统中提供的配置自定义DNS的方法不同,具体方法请参见自定义配置DNS。如果重启服务器后配置的DNS信息被覆盖或者消失,则配置失败,可使用以下方式再次进行配置。
执行以下命令,删除DNS服务的
/etc/resolv.conf
配置文件。rm -rf /etc/resolv.conf
执行以下命令,创建一个新的
/etc/resolv.conf
文件,并向新的/etc/resolv.conf
文件中写入DNS配置内容。echo "nameserver 114.114.114.114" > /etc/resolv.conf
适用于
云服务器ECS