3

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

4

1 回答 1

4

dhclientDHCP 服务器请求 IP 地址(参考文献 1参考文献 2)。

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

  • 最初,您机器上的所有网络接口都没有分配 IP 地址。因此,您无法使用基于 IP 的协议连接到其他服务器。ip address您可以使用或验证没有分配 IP 地址ifconfig -a

  • 然后开始dhclient,它将使用 DHCP 请求 IP 地址。它通过向网络的广播地址发送 DHCP 发现消息来实现。

  • 有一个 DHCP 服务器在您的本地网络中运行(例如在您的路由器/网关上)。DHCP 服务器接收 DHCP 发现消息并为您的机器保留一个 IP 地址。DHCP 服务器将 DHCP 提供消息发送回您的机器(基于 DHCP 发现消息中包含的机器的链路层地址,即网络接口的 MAC 地址)。DHCP 提供消息告诉您的机器正在向它提供哪个 IP。

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

dhclient功能相似dhcpd,只是行为上有一些细微差别,例如,dhclient如果没有找到广播接口,将立即退出,而dhcpd将继续在后台运行,直到接口可用(参考)。

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

于 2020-09-24T11:14:28.370 回答