Linux实例网卡配置文件IP与控制台不一致问题处理

当您修改Linux实例的网卡配置文件时,如果将其中的IP地址配置为静态获取,并且该IP地址与控制台显示的ECS实例IP地址不一致,可能会导致网络连接失败、安全组规则失效以及管理困难等问题。您可以按照本文提供的步骤进行修复。

问题现象

ECS实例的网卡配置文件配置了静态获取IP地址,且与控制台上显示的ECS实例IP地址不一致。

image

image

处理步骤

步骤一:获取控制台上显示的IP信息

您需要先从控制台上获取ECS实例的私网IP地址,具体操作,请参见查看实例IP地址

步骤二:修改网卡配置文件

RHEL系列

说明
  • 适用的操作系统:Alibaba Cloud Linux 2/3、CentOS 6/7/8、Red Hat 6/7/8/9、Anolis 7/8、Fedora 33/34/35。

  • 示例操作系统:Alibaba Cloud Linux 3.2。

  • 示例网卡:以主网卡eth0为例演示操作,您需要根据实际情况修改网络接口标识。

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 查看子网掩码

    执行以下命令,查看路由信息:

    route -n

    通过返回信息,可以看到:

    • 子网掩码(Genmask):255.255.255.0

    • 默认网关(Geteway):192.168.1.253

    image

  3. 执行如下命令,修改或创建网卡配置文件。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

    设置获取IP为静态获取方式并且配置网卡的主私网IPv4地址、子网掩码信息。

    示例配置如下:

    DEVICE=eth0
    TYPE=Ethernet
    #静态IP
    BOOTPROTO=static 
    
    #手动配置IPv4地址和子网掩码
    IPADDR=<替换为实际的IPv4地址>
    NETMASK=<替换为实际的子网掩码>

    示例配置如下:

    DEVICE=eth0
    TYPE=Ethernet
    #静态IP
    BOOTPROTO=static 
    
    #手动配置IPv4地址和子网掩码
    IPADDR=192.168.1.201
    NETMASK=255.255.255.0

Ubuntu 22/24、Debian 12

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 查看子网掩码

    执行以下命令,查看路由信息:

    route -n

    通过返回信息,可以看到:

    • 子网掩码(Genmask):255.255.255.0

    • 默认网关(Geteway):192.168.1.253

    image

  3. 执行以下命令,禁用cloud-init的网络配置功能。

    重要

    网络配置文件(/etc/netplan/50-cloud-init.yaml)由cloud-init在实例启动时候自动生成,如果要编辑,需要先禁用cloud-init的网络配置功能。具体信息,请参见cloud-init自动初始化网络配置

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    添加如下配置项:

    network: {config: disabled}
  4. 执行如下命令,编辑网络配置文件,配置网络接口配置信息。

    sudo vim /etc/netplan/50-cloud-init.yaml

    示例配置如下:

    network:
        version: 2
        ethernets:
            eth0: #网络接口名称
                dhcp4: false #默认为dhcp自动配置,false需要手动配置IP
                match:
                    macaddress: 00:16:3e:16:43:xx #您实际的网卡的mac地址
                set-name: eth0
                addresses:
                        - 192.168.1.201/24 #网卡主私网IP地址,需要替换为您实际的地址
                routes:
                  - to: default
                    via: 192.168.1.253 #默认网关,需要替换为您实际的地址

Ubuntu 18/20

  1. 远程连接Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 查看子网掩码

    执行以下命令,查看路由信息:

    route -n

    通过返回信息,可以看到:

    • 子网掩码(Genmask):255.255.255.0

    • 默认网关(Geteway):192.168.1.253

    image

  3. 执行以下命令,禁用cloud-init的网络配置功能。

    重要

    网络配置文件(/etc/netplan/50-cloud-init.yaml)由cloud-init在实例启动时候自动生成,如果要编辑,需要先禁用cloud-init的网络配置功能。具体信息,请参见cloud-init自动初始化网络配置

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    添加如下配置项:

    network: {config: disabled}
  4. 执行如下命令,编辑网络配置文件,配置网络接口配置信息。

    sudo vim /etc/netplan/50-cloud-init.yaml

    示例配置如下:

    network:
        version: 2
        ethernets:
            eth0: #网络接口名称
                dhcp4: false #默认为dhcp自动配置,false需要手动配置IP
                match:
                    macaddress: 00:16:3e:16:43:xx #您实际的网卡的mac地址
                set-name: eth0
                addresses:
                        - 192.168.1.201/24 #网卡主私网IP地址,需要替换为您实际的地址
                gateway4: 192.168.1.253 #默认网关,需要替换为您实际的地址

步骤三:重启网络服务

重启网络服务,使配置生效。

重要

以下命令涉及重启网络服务,部分命令涉及重启实例,可能导致业务中断,建议您在非业务高峰期时执行该操作。

操作系统

重启服务命令

  • Alibaba Cloud Linux 2

  • CentOS 7

  • Red Hat 7

  • Anolis 7

  • SUSE Linux 11/12/15

  • OpenSUSE 15/42

sudo service network restart

sudo systemctl restart network

  • CentOS 6

  • Red Hat 6

sudo service network restart

  • Alibaba Cloud Linux 3

  • CentOS 8

  • Red Hat 8

  • Anolis 8

  • Fedora 33/34/35

sudo systemctl restart NetworkManagersudo reboot

  • Ubuntu 18/20/22

  • Debian 12

sudo netplan apply

  • Ubuntu 14/16

  • Debian 8/9/10/11

sudo systemctl restart networkingsudo reboot