共计 1010 个字符,预计需要花费 3 分钟才能阅读完成。
自己在 VMware 虚拟机中开启一台主机的时候,发现比以往的开机速度慢了好多,起初不以为然,直到用 Xshell 通过 ssh 远程连接 eth1 的 ip 地址才发现连接失败(这个 ip 是之前 eth1 正常的时候获取的 ip 地址),后来用 ifconfig 命令发现 eth1 这个网卡并没有获取 IP 地址,eth1 这个网卡设置的仅主机模式,并通过宿主机的 VMware dhcp 服务获取 ip 地址。
发现了 eth1 网卡异常之后,重启 network 服务,发现 eth1 还是获取不到 ip,效果图如下。
随后重温了一下 dhcp 的工作原理,大致流程如下:
第一步:客户端发送 DHCPdiscovery 包,请求 DHCP 服务器,就是查找网络上的 DHCP 服务器;
第二步:服务器向回应客户端的 DHCPoffer 包,目的告诉客户端,我能为你提供 IP 地址;
第三步:DHCPrequest 包,客户端向服务器请求 IP 地址;
第四步:DHCPack 包,确认包,服务器向客户端分配 IP 地址。
其中在 dhcp 的整个工作流程中,服务端开启 67 号端口处于监听状态,客户端开启 68 号端口处于监听状态。
出错应该想到的是查看日志,所以我利用 tail 命令分析 /var/log/messages 日志文件,如下图所示:
分析发现 dhcp 的第一步发送 DHCPdiscovery 广播包持续发送,最后报了 No DHCPOFFERS received,说明客户端寻找 DHCP 服务器未果,没有收到服务端发来的 DHCPOffer 回应包。并且检查后确定 eth1 网卡的配置文件 ifcfg-eth1 没有错误,由此我初步判定是 DHCP 服务端出现了错误。但是在我的环境下并没有专门地配置一台机器来提供 DHCP 服务,而是直接使用的是 VMware 的本地的 DHCP 服务。
后来我上网查询资料,了解到 VMware 之所以能够为虚拟机提供动态获取 ip 的服务,都是因为在安装了 VMware 后,会在 windows 上配置一个名为 VMware DHCP server 的服务。
在 windows 中按 win+ R 打开运行,输入 services.msc,可以查看 windows 的服务状态结果,找到 VMware DHCP server 服务,发现正处于关闭状态。
尝试着开启 windows 的 VMware DHCP server 服务,并将该服务设置为开机自动启动。
最后在虚拟机中重启 network 服务,发现这一次 eth1 能够顺利的获取到 IP 地址。并且 Xshell 也能顺利通过 eth1 连接成功。
: