问题描述
我有一个服务器无法连接到任何网络,并且在与之争吵时发现运行此命令/etc/init.d/network restart && dhclient
的临时解决方案。但是,我不太了解dhclient
命令是如何解决此问题的?任何帮助表示赞赏。谢谢!
解决方法
dhclient
向DHCP服务器(reference 1,reference 2)请求IP地址。
根据您的描述,似乎正在发生以下情况:
-
最初,没有为计算机上的任何网络接口分配IP地址。因此,您无法使用基于IP的协议连接到其他服务器。您可以使用
ip address
或ifconfig -a
验证是否未分配IP地址。 -
然后启动
dhclient
,它将使用DHCP请求IP地址。通过将DHCP发现消息发送到网络的广播地址来实现。 -
在本地网络中的某个位置(例如,在路由器/网关上)运行着一个DHCP服务器。 DHCP服务器收到DHCP发现消息,并为您的计算机保留IP地址。 DHCP服务器将DHCP供应消息发送回您的计算机(基于DHCP发现消息中包含的计算机的链路层地址,即网络接口的MAC地址)。 DHCP供应消息会告诉您的计算机正在为其提供哪个IP。
-
您的机器接收到DHCP提供消息,并用DHCP请求消息答复提供的IP地址。 DHCP服务器回复DHCP确认消息,告诉您该IP现在可以由您的计算机使用。您的网络接口已配置为分配的IP地址。现在,您可以使用基于IP的协议连接到其他服务器。
dhclient
在功能上与dhcpd
类似,它们的行为仅存在一些细微的差异,例如如果找不到广播接口,dhclient
将立即退出,而dhcpd
将继续在后台运行,直到可用接口(reference)。
使用DHCP的替代方法是为计算机分配静态IP。