文章目录

  • 使用背景
  • 故障排查
  • 解决方法


使用背景

我们在之前介绍了如何动手搭建一个简单的网站,其中使用了虚拟机和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号网卡,两张网卡应该相互不影响,可是实际上是有影响,这是什么原因?如果有知道的朋友可以帮忙分析一下。