我是靠谱客的博主 疯狂香烟,最近开发中收集的这篇文章主要介绍【Ubuntu】虚拟机和主机可以相互ping通,但在主机访问虚拟机网址失败,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

情景

在Ubuntu上开启了RabbitMQ消息队列服务。为了方便,想在本机(localhost)上访问RabbitMQ的图形化管理界面。


首先在Ubuntu查看一下虚拟机IP:

ifconfig -a 
# 10.211.55.4

接着在本机浏览器上访问:

http://10.211.55.4:15672

显示无法连接到服务器。

 
 

排查


ping!ping!ping!

在主机上ping一下虚拟机

ping 10.211.55.4

在虚拟机上ping一下主机

ping 172.20.10.7

资源是否真的存在?服务是否正确开启?

这是个极其容易被忽视的低级问题,即ip正确(端口也正确),但其实所访问的资源其实压根不存在。

对于一些浏览器,从报错信息上容易混淆两种错误原因。

另外,如果连相关服务都没有正确开启,那就更别提资源是否存在了。至于服务是否开启,通常在虚拟机上检查。


虚拟机防火墙问题

不关闭防火墙虽然可以ping通,但主机无法访问虚拟机网页(这可以解决99.99%的问题)。

# 查看防火墙状态
sudo ufw status verbose

# 关闭防火墙
sudo ufw disable

# 开启防火墙
sudo ufw enable

 
 
 
 

补充

检查主机和虚拟机能否相互ping通时,使用的是哪种IP呢?


先看虚拟机。会ifconfig出两种IP:

enp0s5 = en0(Wi-Fi)
lo = local

用的自然是第一个。


再看主机。如果你使用的是mac,那么在主机ifconfig出的一系列IP信息会让你眼花缭乱,我简单查了一下:

lo0 = loopback
gif0 = Software Network Interface
stf0 = 6to4 tunnel interface
en0 = Ethernet 0
fw0 = Firewire
en1 = Ethernet 1
vmnet1 = Virtual Interface

我们用的是en0:

Hardware Port: Wi-Fi
Device: en0
Ethernet Address: c4:b3:01:bd:ad:1d

Hardware Port: Bluetooth PAN
Device: en3
Ethernet Address: c4:b3:01:bd:ad:1e

Hardware Port: Thunderbolt 1
Device: en1
Ethernet Address: 4a:00:07:4d:b2:b0

Hardware Port: Thunderbolt 2
Device: en2
Ethernet Address: 4a:00:07:4d:b2:b1

Hardware Port: Thunderbolt Bridge
Device: bridge0
Ethernet Address: 4a:00:07:4d:b2:b0

最后

以上就是疯狂香烟为你收集整理的【Ubuntu】虚拟机和主机可以相互ping通,但在主机访问虚拟机网址失败的全部内容,希望文章能够帮你解决【Ubuntu】虚拟机和主机可以相互ping通,但在主机访问虚拟机网址失败所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部