解决VMware 7虚拟机用无线网卡虚拟机ping不通主机的问题

我用的是VMware v7.1.2 build-301548

主机win7通过wifi上网,vmware装了Linux系统,Vmware网络接入模式是:Bridge,主机能ping通虚拟机,但虚拟机无法ping通主机。
但如果主机先ping下虚拟机,虚拟机就能ping通主机了,但过一会又不行。解决方案有3个:

1、起初在网上搜索,有网友说是无线的问题,我换成有线上网,果然解决这个问题了。

2、这是VM7的问题,重新安装VM v8.0.1 build-528992就不会出现这个问题了。真郁闷,原来是VM7的bug

3、另一种解决方法。

近来在看《计算机网络》,终于知道了这个问题发生的原因:虚拟机在尝试将主机的ip地址转换成MAC地址时出错了,故ARP缓存映射表里没有对的主机的MAC地址,解决方法:对主机绑定静态的MAC地址。

[root@localhost test1]# ping 192.168.1.102
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
From 192.168.1.104 icmp_seq=2 Destination Host Unreachable
From 192.168.1.104 icmp_seq=3 Destination Host Unreachable
From 192.168.1.104 icmp_seq=4 Destination Host Unreachable
^C
##查看arp缓存表
[root@localhost test1]# arp -a  
? (192.168.1.102) at <incomplete> on eth0

可以看到,查看arp缓存表,出现了“incomplete”,发生这种情况一般是因为linux系统尝试请求将主机

的ip地址192.168.1.102转换成物理地址时出错了。

然后,我在主机里面ping虚拟机
C:\Users\Administrator>ping 192.168.1.104

正在 Ping 192.168.1.104 具有 32 字节的数据:
来自 192.168.1.104 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.104 的回复: 字节=32 时间<1ms TTL=64

再回到虚拟机里面
[root@localhost test1]# arp -a
? (192.168.1.102) at 48:5d:60:e4:86:ae [ether] on eth0
? (192.168.1.1) at d8:5d:4c:1e:bb:a0 [ether] on eth0

#这时可以看到,虚拟机的arp缓存表里面有主机的MAC地址了,故这时能ping通主机了,但过了一会,ARP

缓存映射表项失效了,故这时再ping主机就ping不通了。
[root@localhost test1]# arp -a
? (192.168.1.102) at <incomplete> on eth0
? (192.168.1.1) at d8:5d:4c:1e:bb:a0 [ether] on eth0

解决方法:先在主机里面查看主机的MAC地址
C:\Users\Administrator>ipconfig /all
Adapter
   物理地址. . . . . . . . . . . . . : 48-5D-60-E4-86-AE
也可以直接在主机里ping虚拟机,然后去虚拟里查看arp缓存表
[root@localhost test1]# arp -a
? (192.168.1.102) at 48:5d:60:e4:86:ae [ether] on eth0
#得到主机的MAC地址
#然后在虚拟机里面手动在ARP表中指定IP地址与MAC地址的对应,类型为static(静态)。静态ARP缓存除

非手动清除,否则不会丢失。
[root@localhost test1]# arp -s 192.168.1.102 48:5d:60:e4:86:ae
[root@localhost test1]# arp -a
? (192.168.1.102) at 48:5d:60:e4:86:ae [ether] PERM on eth0
? (192.168.1.1) at d8:5d:4c:1e:bb:a0 [ether] on eth0

#这时候就能ping通主机了
[root@localhost test1]# ping 192.168.1.102
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_req=1 ttl=64 time=0.377 ms
64 bytes from 192.168.1.102: icmp_req=2 ttl=64 time=0.307 ms

#无论是静态还是动态ARP缓存,重启启动计算机后都会丢失,故可以在Linux的/etc/rc.local 文件里加

入这条命令,以后开机都会绑定主机IP地址跟它的MAC地址。

@@@@@@@@@@@

参考资料:Guest can't ping host

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

ARP(Address Resolution Protocol),即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网

络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地

址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物

理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位

IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组

协议就是ARP协议。

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的

MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP

协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要

一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析

(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
  另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直

接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC

地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所

有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。

 

作者:e3399 (CSDN专栏)

 

 

注:搞了一上午,终于解决了,其实只要搞懂了桥接,NAT的原理,在前进中摸索,就会柳暗花明的。。。在此感谢原文作者解惑。。。。

已标记关键词 清除标记
相关推荐
<p> 课程演示环境:Windows10  </p> <p> 需要学习<span>Ubuntus</span>系统<span>YOLOv4-tiny</span>的同学请前往《<span>YOLOv4-tiny</span>目标检测实战:训练自己的数据集》 <span></span> </p> <p> <span> </span> </p> <p> <span style="color:#E53333;">YOLOv4-tiny</span><span style="color:#E53333;">来了!速度大幅提升!</span><span></span> </p> <p> <span> </span> </p> <p> <span>YOLOv4-tiny</span>在<span>COCO</span>上的性能可达到:<span>40.2% AP50, 371 FPS (GTX 1080 Ti)</span>。相较于<span>YOLOv3-tiny</span>,<span>AP</span>和<span>FPS</span>的性能有巨大提升。并且,<span>YOLOv4-tiny</span>的权重文件只有<span>23MB</span>,适合在移动端、嵌入式设备、边缘计算设备上部署。<span></span> </p> <p> <span> </span> </p> <p> 本课程将手把手地教大家使用<span>labelImg</span>标注和使用<span>YOLOv4-tiny</span>训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。<span></span> </p> <p> <span> </span> </p> <p> 本课程的<span>YOLOv4-tiny</span>使用<span>AlexAB/darknet</span>,在<span>Windows10</span>系统上做项目演示。包括:<span>YOLOv4-tiny</span>的网络结构、安装<span>YOLOv4-tiny</span>、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计<span>(mAP</span>计算<span>)</span>和先验框聚类分析。 <span> </span> </p> <p> <span> </span> </p> <p> 除本课程《<span>Windows</span>版<span>YOLOv4-tiny</span>目标检测实战:训练自己的数据集》外,本人推出了有关<span>YOLOv4</span>目标检测的系列课程。请持续关注该系列的其它视频课程,包括:<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:训练自己的数据集》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:人脸口罩佩戴识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:中国交通标志识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测:原理与源码解析》<span></span> </p> <p> <span> <img alt="" src="https://img-bss.csdnimg.cn/202007061503586145.jpg" /></span> </p> <p> <span><img alt="" src="https://img-bss.csdnimg.cn/202007061504169339.jpg" /><br /> </span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页