我有 2 个虚拟机。一个充当客户端,另一个充当服务器。对于服务器虚拟机,我设置了如下 IP 地址:
sudo ifconfig enp0s8 192.168.0.73/24 up
对于客户端虚拟机,我设置 IP 地址如下:
sudo ifconfig enp0s8 192.168.0.77/24 up
我试图确保客户端和服务器都位于内部网络的同一子网中。
然后我尝试从客户端虚拟机 ping 服务器的 IP,如下所示:
ping 192.168.0.73
然而,我不断得到目标主机不可达错误
两个虚拟机都有 2 个网络适配器。第一个网络适配器是仅主机适配器(两个虚拟机具有相同的 MAC 地址),第二个网络适配器是内部网络适配器(两个虚拟机具有相同的网络名称和 MAC 地址)。
我究竟做错了什么?
答案1
你做错的是两台机器的MAC相同。不要那样做。在同一网络上的不同系统上使用相同的 MAC-ID 会产生各种令人惊讶和不可预测的结果。
所以,我猜正在发生的事情是这样的:
- 平 192.168.0.73
- 192.168.0.73 是什么 MAC-ID?执行 ARP 请求
- 啊! MAC-ID是我自己的适配器;所以不需要在网络上发送
- 在我自己的适配器上,我收到一个发往 192.168.0.73 的 ICMP 回显请求,但我的是 192.168.0.77。所以我不会回答这个请求(没有乒乓球)。
因为 Linux(像我所知道的所有操作系统一样)保留了 ARP 缓存,所以您可以使用以下命令查看该机器的 IP 地址到 MAC-id 的转换:
arp -a