
# 设置Linux系统网卡属性为DHCP
#### 操作场景
通过弹性云服务器或者外部镜像文件创建私有镜像时，如果弹性云服务器或镜像文件所在虚拟机的网络配置是静态IP地址时，您需要修改网卡属性为DHCP，以使私有镜像发放的新弹性云服务器可以动态获取IP地址。
不同操作系统配置方法略有区别，请参考对应操作系统的相关资料进行操作。
![](https://support.huaweicloud.com/usermanual-ims/public_sys-resources/note_3.0-zh-cn.png)
使用外部镜像文件创建私有镜像时，设置网卡属性操作需要在虚拟机内部完成，建议您在原平台的虚拟机实施修改后，再导出镜像。
#### 前提条件
已登录创建Linux私有镜像所使用的弹性云服务器。
登录弹性云服务器的详细操作请参见"[Linux弹性云服务器登录方式概述](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0013771089.html)"。
#### Ubuntu 18及以后版本操作步骤
1. 在云服务器上执行**vi /etc/netplan/01-netcfg.yaml** 命令，使用vi编辑器打开"/etc/netplan/01-netcfg.yaml"文件，查看网卡是否为DHCP方式，即**dhcp4** 为**true** 。
   - 信息显示所有网卡的网络配置**dhcp4** 为**true** 时，输入:q退出编辑器，操作结束。
     ```
     network:
         version:2
         renderer:NetworkManager
         ethernets:
             eth0:
                 dhcp4: true
     ```
     
   
   - 信息显示网卡的网络配置的**dhcp4** 为**no** 并且配置了静态IP地址时，请执行下一步。
     ```
     network:
         version:2
         renderer:NetworkManager
         ethernets:
             eth0:
                 dhcp4: no
                addresses: [192.168.1.109/24]
                gateway4: 192.168.1.1
                nameservers:
                   addresses: [8.8.8.8,114.114.114.114]
     ```
     
    
2. 输入"i"进入编辑模式。 删除静态IP配置，然后设置dhcp4为true。您也可以使用"#"注释静态IP设置的相关内容。
   ```
   network:
       version:2
       renderer:NetworkManager
       ethernets:
           eth0：
             dhcp4: true   #设置dhcp4为true
             #dhcp4: no    #删除或使用“#”注释此部分静态IP设置
             #addresses: [192.168.1.109]
             #gateway4: 192.168.1.1
             #nameservers:
             # addresses: [8.8.8.8,114.114.114.114]
   ```
   
3. 如果您有多个网卡，请将剩余网卡按照上述方法设置dhcp4为true。
   ```
   network:
       version:2
       renderer:NetworkManager
       ethernets:
            eth0:
               dhcp4: true
            eth1:
                dhcp4: true
            eth2:
                dhcp4: true
            eth3:
                dhcp4: true
   ```
   
4. 按"ESC"后，输入:wq，按"Enter"回车键保存设置并退出编辑器。
5. 执行**netplan apply**命令，使配置生效。
 
#### Ubuntu 16.04操作步骤
1. 在弹性云服务器上执行以下命令，使用vi编辑器打开"/etc/network/interfaces"文件，查看网卡的网络配置。 **vi /etc/network/interfaces**
   - 信息显示所有网卡的网络配置为DHCP模式时，无需重复设置网卡属性，输入**:q** 退出编辑器。
     ```
     auto lo
     iface lo inet loopback
     auto eth0
     iface eth0 inet dhcp
     auto eth1
     iface eth1 inet dhcp
     ```
     
   
   - 信息显示网卡的网络配置为静态IP地址时，请执行[2]。
     ```
     auto lo
     iface lo inet loopback
     auto eth0
     #iface eth0 inet dhcp
     iface eth0 inet static
     address 192.168.1.109
     netmask 255.255.255.0
     gateway 192.168.1.1
     ```
     
    
2. 按"i"进入编辑模式。
3. 删除静态IP设置的相关内容，然后将对应的网卡设置为DHCP方式。 您也可以使用"#"注释掉静态IP设置的相关内容。
   ```
   auto lo
   iface lo inet loopback
   auto eth0
   iface eth0 inet dhcp
   ```
   如果您有多个网卡，请将剩余网卡按照上述方法设置为DHCP方式。
   ```
   auto lo
   iface lo inet loopback
   auto eth0
   iface eth0 inet dhcp
   auto eth1
   iface eth1 inet dhcp
   ```
   
4. 按"ESC"后，输入**:wq** ，按"Enter"。
   保存设置并退出编辑器。
   
 
#### 相关操作
您还可以配置DHCP持续获取IP地址能力，根据弹性云服务器操作系统选择对应的操作。
- CentOS系列/EulerOS系列：使用vi编辑器在"/etc/sysconfig/network-scripts/ifcfg-ethX"配置文件中添加PERSISTENT_DHCLIENT="y"。
- SUSE系列：使用vi编辑器将"/etc/sysconfig/network/dhcp"配置文件中的DHCLIENT_USE_LAST_LEASE设置为no。
- Ubuntu 12.04及以上版本：将dhclient升级为ISC dhclient 4.2.4以支持网卡持续DHCP获取IP地址能力。请自行安装isc-dhcp-server进行升级。
 
