解决主机无法通过网络访问虚拟机的问题
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决主机无法通过网络访问虚拟机的问题相关的知识,希望对你有一定的参考价值。
文章目录
使用背景
我们在之前介绍了如何动手搭建一个简单的网站,其中使用了虚拟机和nginx
服务器,然后给虚拟机配置了桥接网络,这样就可以在主机上使用虚拟机的IP地址(192.168.1.xx)访问Nginx服务器上的内容。今天输入地址时却无法访服务器上的内容。看来服务器出问题了,本章回中将分享解决此问题的思路和方法。
故障排查
我猜想可能是服务器没有启动或者运行错误。于是打开浏览器并且输入127.0.1.1
(在此之前需要打开虚拟机并且启动虚拟机中的Ubuntu系统,系统启动后Nginx服务器会自动启动),此时可以访问我们自已创建的网站,说明服务器正常。那么可能是主机和虚拟机之间的网络连接有问题。
在主机上ping 192.168.1.xx
(虚拟机的ip地址),无法ping通。猜想正确,就是主机和虚拟机之间的桥接网络出问题了。
解决方法
- 1.在Ubuntu上使用固定ip,和自动获取ip两种方式来配置ip地址,然后ping ip,仍然无法ping通;
- 2.在Ubuntu上有两个网卡,一个用来访问外网,一个用来与虚拟机所在的主机进行通信,单独关闭其中一个网卡,保留一个网卡,然后ping ip,仍然无法ping通;
- 3.在虚拟机上的网络配置中把两个网卡都配置为NAT,然后ping ip,仍然无法ping通;
- 4.在虚拟机上的网络配置中把两个网卡都配置为桥接网络(Host Only),然后ping ip,仍然无法ping通;
通过这几种尝试排除了IP设置不当的原因,虚拟机网络连接方式(桥接或者NAT)设置不当的原因;那么问题可能出现在主机上,通过检查后发现主机也有两个网络连接,把其中一个网卡断开后就可以ping通虚拟机的ip.本地网卡的配置如下图所示
图中的2号网卡是主机的网卡,1和3号网卡是虚拟机的网卡,网卡的相关作用已经标注在图中了,这是我通过反复排查错误后得出的结论,有可能不正确。
总结:解决方法就是把3号网卡断开,只保留1号网卡。
我有个疑问:主机和虚拟机通信使用1号网卡,虚拟机访问外网使用3号网卡,两张网卡应该相互不影响,可是实际上是有影响,这是什么原因?如果有知道的朋友可以帮忙分析一下。
以上是关于解决主机无法通过网络访问虚拟机的问题的主要内容,如果未能解决你的问题,请参考以下文章