【求助】PC上的虚拟机Liunx能和主机互ping,其他主机不能ping通Linux但能ping主机.求解答!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【求助】PC上的虚拟机Liunx能和主机互ping,其他主机不能ping通Linux但能ping主机.求解答!!相关的知识,希望对你有一定的参考价值。

虚拟机网络设置了NAT模式,设定静态IP地址,Linux能上网且能和主机互ping,请问为什么其他主机不能ping通Linux?还有要怎么解决? 急!!

需要把网络设置成桥接,然后再把虚拟机的IP改成和你物理机一个网段,就可以互ping了
比如你的物理机IP是192.168.1.2 255.255.255.0,把虚拟机里的IP改成192.168.1.3 255.255.255.0,再把网卡改成桥接,就可以了
你用的是NAT模式,效果就是把内网的IP转换成外网的IP,改成桥接,效果就是虚拟机和物理机共用一块网卡,这样其它物理机就可以找到你的虚拟机了
你要是不会设置,可以hi我追问


但问题是我这里的网络是校园网,IP地址和网关那些我也没看懂.
请问对于我这种情况桥接模式也会设置吗?!

追答

如果是校园网的话,网络可能有特殊的设置,如果没有做限制,是可以的。

参考资料:http://baike.baidu.com/view/197495.htm

参考技术A 就是这样的 没法改变

WM虚拟机的联网方式就是这样 虚拟机只能连接到主系统 所有的包都是通过主系统发送的
你给你的虚拟机设置的IP只是相对你运行虚拟机的那个系统有效
对于其他的机器 你虚拟机的那个IP是不存在的

如果你想用其他机器给你的虚拟机传东西 就只能先传到你运行虚拟机的系统
再由那个系统传到虚拟机上面

总之就是 其他的机器是连不上虚拟机的
参考技术B 楼上是正解

三者互ping,PC,虚拟机,uboot

要想实现三者互ping,韦老师虽然专门出了视频说明,但是在自己配置过程还是出现了问题,这里记录一下解决办法,虽然我也不知道原因,但是解决了出现的问题也实现了三者互ping。

首先,我的硬件设备是PC通过无线连接wifi路由器,单板通过网线直接和电脑连接。

要实现互相ping,需要把PC主机上的两个网卡设置成不同的网段,比如这里我的无线网卡,和有线网卡分配如下:

可以看到网段是不同的,这样之后,使用新版本的uboot,上电就会使能网卡,

现在还要做一件事,要实现三者互ping,必须让三者处于同一网段。

注意,你可能发现上面两个网卡要处于不同网段,这里三者又要处于同一网段,是不是有点混淆。

这里做出说明:

上面的两个网卡,必须要处于不同网段,是针对于一个PC主机(Windows)的无线网卡和有线网卡而言的,比如我此时电脑上的:

三者互ping:在我上面所说的链接方式下,三者指的是,开发板,虚拟机,PC上的有线网卡。

所以,在虚拟机设置上,桥接的时候,选择网卡一定要选择PC机上的有线网卡,如下图:

这样设置之后,需要使这三者位于同一网段。

但是,问题就来了,选择这样桥接的网卡之后,我进入虚拟机内部,虚拟机不能自动识别出网络,表现形式就是ifconfig没有ip地址:

在这样的模式下,哪怕我强行设置ip,系统会报错,说

Network is unreachable

这样一来,肯定ping不同,搜索了一圈之后,也没解决我的问题。但是我试着去解决了一下,反而成功了:

首先,重启网络:

sudo /etc/init.d/networking restart

可以看到,重启之后也没用,ifconfig还是不行,但是执行了这个命令之后可以看到虚拟机的网络图标在重启,那证明应该有某种作用,我们知道ubuntu虚拟机中的网络图标,在没有网络识别的时候,是一个扇形的图形,而有网络的时候是一个上一个下的箭头:

如果有这个上下箭头,那么一定会有ip地址了,我现在的情况就是扇形图标,所以ifconfig没有ip。

紧接着,我在重启网卡之后,设置网卡的ip:

  sudo ifconfig ens33 192.168.30.3

果然,这样之后,我ifconfig有ip了,而且网络图标也变成了上下箭头,此时我的pc有线网卡ip是:192.168.30.1

虚拟机的ip是:192.168.30.3 那么现在只用把uboot的ip设置成同一网段比如:192.168.30.2,就应该可以三者互ping了。

果然,现在uboot可以ping通pc了,试试ping虚拟机呢?

也可以ping通了。再看看pc ping虚拟机呢?

也ping通了,最后看看虚拟机ping PC呢?

果然,也还是ping通了,这样就实现了三者互ping。解决的过程很难受,但是结果总是让人开心。

最后说明的是:为什么不用虚拟机和pc机ping uboot,因为uboot不回ping包,只能uboot去ping别人。

 

实现了三者互ping,那么实现一个nfs网络文件系统也是容易的。

之前在跟文件系统那节说了网络共享的方式很方便调试,所以琢磨着弄好三者互ping之后,构建一个开发调试平台。

首先是实现三者互ping,然后,让虚拟机先允许某个文件夹被挂载,例如我这里的:

打开这个插入文件,然后输入:

方框部分是插入内容,指定的挂载目录为: /work/nfs_root/first_fs

然后重启服务器:

sudo /etc/init.d/nfs-kernel-server restart

然后挂接自身测试一下:

 sudo mount -t nfs 192.168.30.3:/work/nfs_root/first_fs /mnt/

没有错误消息证明ok。在开发板上设置ip为同一网段,并且创建 /mnt 目录,然后挂接虚拟机的服务器,之后虚拟机中创建文件,在开发板的文件系统中也可以开到并且进行读写执行操作了。

开发板的文件系统:

 

这样机搭建好了调试开发平台。

当然,还有一种直接修改uboot参数的方式,自动挂载,但是现在我还没有这个需求,当有这个需求的时候,再来不全这个随笔文档。

补全更改uboot参数方式:

uboot中输入:

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.30.3:/work/nfs_root/first_fs ip=192.168.30.4:192.168.30.3:192.168.30.5:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0

然后save

这样启动之后,自动挂载了first_fs目录,在这种方式下,insmod速度更快

以上是关于【求助】PC上的虚拟机Liunx能和主机互ping,其他主机不能ping通Linux但能ping主机.求解答!!的主要内容,如果未能解决你的问题,请参考以下文章

如何让两台虚拟机实现互ping

为什么VM虚拟机ping得通主机,但主机ping不通虚拟机?

关于虚拟机与宿主机同网段主机互ping的一点疑问

windows 7虚拟机与主机不能互ping通,但是都能与网关ping通

两台虚拟机不能互ping这是啥原因?

vmware虚拟机怎么和主机之间互传文件?