jjzjj

虚拟机ping不通的几种原因及解决办法

在键盘上弹钢琴的菜菜 2023-09-04 原文

目录

背景知识

一:虚拟机宿主机互ping不通

问题一:防火墙

问题二:网卡未生效

问题三:IP地址设置

二:虚拟机对宿主机ping不通,但能ping外网

问题一:虚拟网卡VMnet8

问题二:虚拟机开机期间切换网络(博主遇到的问题)

问题三:防火墙

三:虚拟机对宿主机ping通,不能ping外网

问题一:网关和DNS设置问题

问题二:网络模式为Host-only,或为Bridge但分配了不合法的IP


如果您还发现了其他问题和解决办法,欢迎私聊我或在评论区留言完善这篇文章

背景知识

同一网段:IP地址由网络号+主机号组成,网络号相同的IP地址在“同一网段”,可以通过“交换机”直接通信(设置好虚拟机网卡,关闭防火墙,虚拟机和宿主机可互相ping通)

虚拟网卡:VMware添加了 “虚拟网卡”VMnet8 和 “虚拟交换机”(不可见) ,虚拟机和宿主机位于同一网段,但虚拟机和路由器不在同一网段(此时虚拟机只能和宿主机通信)

 

VMWare的网络模式(Brige,NAT,Host-only):建议选NAT

  • Bridge: 虚拟机和宿主机相当于两台独立的计算机,但需给虚拟机分配IP(自缴费的寝室网才有)
  • NAT:虚拟机访问互联网时,NET转换技术使虚拟机冒用宿主机IP,但外界不能主动联系虚拟机
  • Host-only: 虚拟机和互联网不可能互相访问

网关:也称IP路由器(是一个IP地址),不在同一网段的IP必须通过网关通信。

DNS:记录域名和IP地址对应关系的路由器。先在DNS查到真实IP,再访问真实IP。

一:虚拟机宿主机互ping不通

问题一:防火墙

略去,建议主机和宿主机都关闭防火墙,并关闭seLinux(Linux的安全系统)

问题二:网卡未生效

表现

输入命令 ifcongig,若输出的网卡信息不含inet [ip地址],则说明网卡未生效

网卡生效后会变成

解决办法

这是由于网卡配置文件错误导致的。CentOS7系统网卡配置文件路径:

/etc/sysconfig/network-scripts/ifcfg-[网卡名]
网卡名为ifconfig命令输出信息最左列
eg:/etc/sysconfig/network-scripts/ifcfg-ens32

配置文件内容:

如果你还未修改过这个文件,那么你只需要加入与IP地址有关的IPADDR NETMASK GATEWAY DNS1,并最好将绿点配置修改,实现开机启动。

如果你有多个网卡,红点为各个网卡配置不同的项。如果UUID丢失,可通过uuidgen命令重新生成。笔者由于通过cp复制ens32网卡得到ens34网卡时误加了同步选项-s,导致ens32的UUID丢失,修改后网卡生效。

问题三:IP地址设置

Windows虚拟网卡VMnet8的IP地址  和  VMWare虚拟网卡VMnet8的子网IP地址  和  网卡设置文件的IPADDR在同一个局域网下

 宿主机设置: 

虚拟机设置方法为:编辑->虚拟网络编辑器

网卡配置文件位置:

/etc/sysconfig/network-scripts/ifcfg-ens32

二:虚拟机对宿主机ping不通,但能ping外网

虚拟网卡问题

问题一:虚拟网卡VMnet8

虚拟机和宿主机之间的通信是通过虚拟网卡VMware Network Adapter VMnet8实现的,它的功能可参见如下关闭虚拟网卡实验:

控制面板->网络和Internet->网络和共享中心->更改适配器设置

 VMnet8被禁用,则主机和虚拟机无法通信,但可以与外网通信(因为虚拟机和主机公用一个网卡)如下:

 若VMNet8未被禁用,也不能排除它的问题,可能是它的设置有问题,具体见上一条。

问题二:虚拟机开机期间切换网络(博主遇到的问题)

如挂梯子,切换WIFI。

正常情况下电脑通过DHCP自动分配机器IP和网关,DNS,但我们为了设置方便设置了固定的IP地址,如果中途网络变化,正好产生冲突,则虚拟网卡无法正常工作。

这种操作使网关发生了变化,实质还是虚拟网卡VMnet8的原因。

问题三:防火墙

建议关掉

三:虚拟机对宿主机ping通,不能ping外网

网络模式不允许访问外网,或没有配置网关和DNS(保障不在同一网段通信)

问题一:网关和DNS设置问题

具体如何设置网上教程很多。简单来说,就是

  • Windows虚拟网卡VMnet8的IP地址  和  VMWare虚拟网卡VMnet8的子网IP地址  和  网卡设置文件的IPADDR在同一个局域网下
  • Windows虚拟网卡VMnet8的网关和DNS地址  和  VMWare虚拟网卡的网关和DNS地址一致
  • 以上所有都在同一个局域网下(IP地址的第三个数,这里是80)

宿主机设置: 

虚拟机设置方法为:编辑->虚拟网络编辑器

问题二:网络模式为Host-only,或为Bridge但分配了不合法的IP

VMWare的网络模式(Brige,NAT,Host-only):建议选NAT

  • Bridge: 虚拟机和宿主机相当于两台独立的计算机,但需给虚拟机分配IP(自缴费的寝室网才有)
  • NAT:虚拟机访问互联网时,NET转换技术使虚拟机冒用宿主机IP,但外界不能主动联系虚拟机
  • Host-only: 虚拟机和互联网不可能互相访问

有关虚拟机ping不通的几种原因及解决办法的更多相关文章

  1. ruby - Ping ruby 网站? - 2

    在Ruby中可以使用哪些替代方法来ping一个ip地址?标准库“ping”库的功能似乎非常有限。我对在这里滚动我自己的代码不感兴趣。有没有好的gem?我应该接受它并忍受它吗?(我在Linux上使用Ruby1.8.6编写代码) 最佳答案 net-ping值得一看。它允许TCPping(如标准ruby​​ping),但也允许UDP、HTTP和ICMPping。ICMPping需要root权限,但其他则不需要。 关于ruby-Pingruby网站?,我们在StackOverflow上找到一个类

  2. ruby - 通过 RVM 安装 Ruby 1.9.2 永远行不通! - 2

    当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby​​-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece

  3. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  4. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

  5. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

  6. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  7. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  8. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  9. ruby - 有没有办法从 ruby​​ case 语句中访问表达式? - 2

    我想从then子句中访问c​​ase语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案

  10. ruby - 如何更快地解决 project euler #21? - 2

    原始问题Letd(n)bedefinedasthesumofproperdivisorsofn(numberslessthannwhichdivideevenlyinton).Ifd(a)=bandd(b)=a,whereab,thenaandbareanamicablepairandeachofaandbarecalledamicablenumbers.Forexample,theproperdivisorsof220are1,2,4,5,10,11,20,22,44,55and110;therefored(220)=284.Theproperdivisorsof284are1,2,

随机推荐