当我选择静态IP时,为什么dhclient仍在运行?

我在/ etc / network / interfaces中修改dhcp为static(如下所示)。

# The primary network interface auto eth0 iface eth0 inet static netmask 255.255.0.0 address 10.10.130.128 gateway 10.10.1.1 

然后重启界面。

 $ sudo ifdown eth0; sudo ifup eth0 ... $ ifconfig eth0 Link encap:Ethernet inet addr:10.10.130.128 Bcast:10.10.255.255 Mask:255.255.0.0 

所以新的地址开始了。

但DHCP还存在吗?

 $ ps aux | grep dhc root ... dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth0 

这是正常的吗? 如果没有,如何在同时停止DHCP的同时重启静态IP中的接口?

非常感谢。

  1. 首先必须关闭接口(在dhcp模式下) sudo ifdown eth0
  2. 然后编辑config nano /etc/network/interfaces

     # The primary network interface auto eth0 iface eth0 inet static netmask 255.255.0.0 address 10.10.130.128 gateway 10.10.1.1 
  3. 将接口备份为sudo ifup eth0

否则dhclient没有正确关闭,

我有同样的问题(Ubuntu 16.04),但这是一个云实例,我不能轻易地ifdown接口。

简短的回答:我删除了文件/etc/network/interface.d/50-cloud-init.cfg ifup是由该特定文件触发的。

答案很长:我使用带有静态IP地址的/etc/network/interfaces配置了接口,但我仍然在daemon.log中发现dhclient仍在从DHCP请求IP,而dhclient是通过systemd启动的。 具体来说,systemd称为networking.service单元,它调用ifup,它读取interfaces文件和50-cloud-init.cfg文件。 结果是一些冲突,但仍然是一个function网络。

我找到了我,这是因为gnome的NetworkManager仍在运行,并认为它负责设备。 事后看来,这应该是显而易见的,因为ps显示了NetworkManager正在启动dhclient。

一旦我重新启动系统,设备就会在NetworkManager中“无法管理”,并且它停止尝试配置它。 也许我只能通过停止/重启NetworkManager来实现同样的目的,我不确定。