Linux实例中本地网卡的DHCP配置检查与修复

Linux实例中本地网卡的DHCP配置检查与修复

更新时间:2020-09-08 14:21:43

概述

ECS实例默认使用DHCP(动态主机设置协议,Dynamic Host Configuration Protocol)为弹性网卡自动分配IP地址,并获得IP地址租约到期时间。正常情况下,Linux实例的dhclient进程会定期向DHCP服务器更新租约到期时间,以确保实例IP地址的可用性。以下情况可能引发Linux实例的DHCP服务出现异常,导致实例网络不通:

  • 网卡配置文件存在错误
  • 网卡对应的dhclient进程未运行

本文主要介绍如何检查本地网卡的DHCP配置,以及出现异常时的修复方法。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 远程登录Linux实例。关于如何远程登录,请参见ECS连接方式概述
    说明:如果您无法通过SSH的方式登录Linux实例,请参见无法通过SSH远程登录Linux实例时的排查指引
  2. 为避免误操作产生数据安全风险,请您通过快照备份ECS实例。关于如何创建快照,请参见创建普通快照
  3. 在Linux实例中执行以下命令,检查并记录Linux实例已有的本地网卡。
    ls -al /sys/class/net/
    系统显示如下图,其中eth0为本地网卡。此处以一个本地网卡为例,如果您为ECS实例添加过辅助弹性网卡,则以实际情况为准。
  4. 如果Linux实例只有一个本地网卡,则继续以下步骤进行检查。如果Linux实例存在多个本地网卡,请参考步骤5至步骤8,依次对每个本地网卡进行检查和修复。
  5. 在Linux实例中执行以下命令,检查本地网卡的配置文件。
    cat /etc/sysconfig/network-scripts/ifcfg-[$Eth]
    说明:[$Eth]指本地网卡名称,现场需替换为需要检查的网卡名称,例如:eth0。
    系统显示如下,其中BOOTPROTO=dhcp表示本地网卡使用DHCP的方式获取IP地址。
    # Created by cloud-init on instance boot automatically, do not edit.
    # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg
    # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html
    #
    BOOTPROTO=dhcp
    DEVICE=[$Eth]
    ONBOOT=yes
    STARTMODE=auto
    TYPE=Ethernet
    USERCTL=no
    根据以下情况进行处理:
    • 本地网卡使用非DHCP的方式获取IP地址
      请您与服务器管理员确认修改IP地址获取方式的原因,如果不需要使用DHCP的方式获取IP地址,则无需参考本文进行排查。
    • 本地网卡使用DHCP的方式获取IP地址
      请参考上述网卡配置文件的示例,确认您Linux实例中的网卡配置文件不存在拼写错误,继续下一步操作。
  6. 在Linux实例中执行以下命令,检查对应网卡的dhclient进程运行状态。
    ps aux | grep dhclient | grep [$Eth]
    根据以下情况进行处理:
    • 系统返回本地网卡对应的dhclient进程,说明此网卡的DHCP服务正常。
      说明:此处以eth0网卡为例,现场以实际情况为准。
    • 系统无返回结果,说明dhclient进程未运行,请继续下一步操作。
  7. 在Linux实例中执行以下命令,重新启动对应网卡的dhclient进程。
    ifup [$Eth]
  8. 再次执行以下命令,确认对应网卡的dhclient进程处于运行状态。
    ps aux | grep dhclient | grep [$Eth]

如果您的问题仍未解决,您可以在阿里云社区免费咨询提交工单联系阿里云技术支持。

相关文档

适用于

  • 云服务器ECS