概述
ECS实例默认使用DHCP(动态主机设置协议,Dynamic Host Configuration Protocol)为弹性网卡自动分配IP地址,并获得IP地址租约到期时间。正常情况下,Linux实例的dhclient
进程会定期向DHCP服务器更新租约到期时间,以确保实例IP地址的可用性。以下情况可能引发Linux实例的DHCP服务出现异常,导致实例网络不通:
网卡配置文件存在错误
网卡对应的
dhclient
进程未运行
本文主要介绍如何检查本地网卡的DHCP配置,以及出现异常时的修复方法。
详细信息
如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
远程登录Linux实例。关于如何远程登录,请参见ECS连接方式概述。
说明如果您无法通过SSH的方式登录Linux实例,请参见 无法通过SSH远程登录Linux实例时的排查指引。
为避免误操作产生数据安全风险,请您通过快照备份ECS实例。关于如何创建快照,请参见创建快照。
在Linux实例中执行以下命令,检查并记录Linux实例已有的本地网卡。
ls -al /sys/class/net/
系统显示如下图,其中eth0为本地网卡。此处以一个本地网卡为例,如果您为ECS实例添加过辅助弹性网卡,则以实际情况为准。
如果Linux实例只有一个本地网卡,则继续以下步骤进行检查。如果Linux实例存在多个本地网卡,请参考步骤5至步骤8,依次对每个本地网卡进行检查和修复。
在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实例中的网卡配置文件不存在拼写错误,继续下一步操作。
在Linux实例中执行以下命令,检查对应网卡的
dhclient
进程运行状态。ps aux | grep dhclient | grep [$Eth]
根据以下情况进行处理:
系统返回本地网卡对应的
dhclient
进程,说明此网卡的DHCP服务正常。说明此处以eth0网卡为例,现场以实际情况为准。
系统无返回结果,说明
dhclient
进程未运行,请继续下一步操作。
在Linux实例中执行以下命令,重新启动对应网卡的
dhclient
进程。ifup [$Eth]
再次执行以下命令,确认对应网卡的
dhclient
进程处于运行状态。ps aux | grep dhclient | grep [$Eth]
相关文档
适用于
云服务器ECS