为什么我选择静态IP时dhclient还在运行?

use*_*851 15 networking dhcp

我将 /etc/network/interfaces 中的 dhcp 修改为静态(如下所示)。

# 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
Run Code Online (Sandbox Code Playgroud)

然后重启界面。

$ 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
Run Code Online (Sandbox Code Playgroud)

所以新地址开始生效。

但是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
Run Code Online (Sandbox Code Playgroud)

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

非常感谢。

pvc*_*pvc 23

  1. 您首先必须关闭接口(在 dhcp 模式下) sudo ifdown eth0
  2. 然后编辑配置 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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 恢复界面 sudo ifup eth0

否则dhclient不能正确关闭,

  • 我很困惑为什么它应该有所作为,但后来我的一个聪明的朋友很好地解释了它。问题是如果文件被编辑,然后`ifdown` 运行,网络管理器不知道它需要停止`dhclient`,因为它在`interfaces` 文件中看到的只是一个静态条目。之后,接口关闭,发出`ifup` 正确读取并应用静态设置,但它也不知道`dhclient` 已经启动。 (7认同)
  • @fostandy ["*ifupdown 不支持修改 /etc/network/interfaces 中的接口定义,而相关接口已启动*"](https://bugs.debian.org/cgi-bin/bugreport.cgi?错误 = 266175)。在这里,界面在**之前**文件被修改。 (2认同)
  • 我的意思是我必须手动“pkill”dhclient 和 dhclient3,因为按照上述步骤不会自动杀死它们 (2认同)