dhclient 是做什么的?

What does dhclient do?

我有一台服务器无法连接到任何网络,在与它争吵时,我找到了 运行 这个命令的临时解决方案:/etc/init.d/network restart && dhclient。但是,我不太明白 dhclient 命令究竟做了什么来解决这个问题?任何帮助表示赞赏。谢谢!

dhclient 从 DHCP 服务器 (reference 1, reference 2) 请求 IP 地址。

根据您的描述,似乎发生了以下情况:

  • 最初,您计算机上的 none 个网络接口已分配了 IP 地址。因此,您无法使用 IP-based 协议连接到其他服务器。您可以使用 ip addressifconfig -a.

    验证没有分配 IP 地址
  • 然后启动 dhclient,它将使用 DHCP 请求 IP 地址。它通过向网络的广播地址发送 DHCP 发现消息来实现。

  • 在您的本地网络中某处有一个 DHCP 服务器 运行(例如在您的 router/gateway 上)。 DHCP 服务器接收 DHCP 发现消息并为您的机器保留一个 IP 地址。 DHCP 服务器向您的机器发回一条 DHCP 提议消息(基于 DHCP 发现消息中包含的您机器的 link-layer 地址,即您的网络接口的 MAC 地址)。 DHCP 提供消息告诉您的机器正在向其提供哪个 IP。

  • 您的机器接收到 DHCP 提供消息,并使用提供的 IP 地址的 DHCP 请求消息进行回复。 DHCP 服务器回复一条 DHCP 确认消息,告诉您该 IP 现在可以被您的机器使用。您的网络接口已配置为分配的 IP 地址。您现在可以使用 IP-based 协议连接到其他服务器。

dhclient 在功能上与 dhcpd 相似,它们只是在行为上有一些小的差异,例如如果找不到广播接口,dhclient 将立即退出,而 dhcpd 将在后台继续 运行,直到接口可用 (reference)。

使用 DHCP 的替代方法是为您的计算机分配一个静态 IP。