在nat模式下,虚拟机可以访问外网,但是ping不通主机这是为啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在nat模式下,虚拟机可以访问外网,但是ping不通主机这是为啥相关的知识,希望对你有一定的参考价值。

虚拟机centos,可以访问外网,可以ping通网关,但是ping不通主机。主机可以ping通虚拟机

本篇没有抓包,只是简单一个实施.需要的童鞋可以拿走这个方法.

虚拟机与真机通信三种模式, 桥接模式,NAT 模式 ,HOST 模式.

  桥接就是在真机的网络上模拟一个网卡,给虚拟机申请一个和真机在同一个网段的ip地址.一般网卡做了ip绑定(mac地址粘)的话,一个mac只对应一个ip,此时,虚拟机内的mac 可以修改,但是这个该了之后还是要向dhcp服务器申请,在dhcp服务器可能申请不到地址是第一方面,第二方面在交换机上的mac-address table 里面也可能造成mac地址翻滚.(如果限制了mac-address 数目为1 的话),总之桥接模式只适用于比较宽松的网络管理的环境下.

  NAT模式 使用虚拟机的一个虚拟网卡做NAT网关,在nat网关上配dhcp ,或者直接用静态地址.就相当于形成了一个虚拟的局域网VLAN,这时候,虚拟机对外的通信是没问题的,我们都知道nat对外隐藏了内网.(原理请自行百度).但是外网访问虚拟机的时候就会遇到问题,比如ping ,ssh 的时候就无法通信,这时候的解决方案就是在NAT的网卡上配置转发规则,做PAT转发.

  贴图如下

  

添加端口转发规则

配置转发规则

主机端口是指本地计算机的端口(真机);TCP,UDP自选;虚拟机ip地址是你虚拟机的网卡ip地址,不知道的可以自己ifconfig 查看一下.虚拟机端口就是虚拟机里面服务的端口ssh 是22,http是80 ;描述自己写一个能看懂的名字.

PAT 配置完毕. 此时访问本机的18880端口就一个访问到虚拟机内网,注意是本机回环127.0.0.1 的端口,而不是真实网卡获取到的ip地址,也不是虚拟机网卡的ip地址,

HOST模式.

  这个模式就相当于一个stub模式,stub区域完全封闭与虚拟机的网上,跟现实里面双网卡机器的一个网卡网线直连到另一台机器原理一样.虚拟机可以跟主机进行通信但是不能上网.但是通过设置也是可以上网的,想象我们的笔记本上有线网卡连接局域网,无线网卡也可以上网,并且可以把有线网共享给无线网卡,更牛逼一点可以在无线网卡上开一个WLAN提供wifi 给更多的机器.所以如果hostonly模式的虚拟机要上网的话,放心大胆的把你的有线网络共享给虚拟机的网卡吧.

done!! 本站内容皆为原创,转帖请表明出处.小三爷在此谢过了!~~~
参考技术A 遇到同样的问题。。请问您怎么解决的?

虚拟机nat能ping通内外,无法访问外网

环境:

centos ip 192.168.188.3
VMnet 8 网卡ip 192.168.188.1
虚拟网络网卡 网关 192.168.188.1


ping 192.168.188.1 可以ping通,ping外网不通;


解决方案

VMnet 8 只是相当于 网络中的一个邻居,而不是网关;

所以:
修改虚拟网络网关为 192.168.188.254
在centos 中修改 网关指向 192.168.188.254

以上是关于在nat模式下,虚拟机可以访问外网,但是ping不通主机这是为啥的主要内容,如果未能解决你的问题,请参考以下文章

centos设置NAT模式连接外网连不通,ping主机ping不通,主机ping虚拟机可以通,为啥,附带配置如下

公司内虚拟机装Linux系统且以NAT模式访问外网

虚拟机中的centos在nat模式下连不上外网

NAT模式下为啥我的虚拟机可以PING通主机而主机PING 不通虚拟机?防火墙关了,ip也是在同一网段!

Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机

vm虚拟机NAT模式下无法ping通主机&putty连接问题