解决主机无法通过网络访问虚拟机的问题

使用背景

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值