您的位置:首页 > 运维架构 > Linux

关于linux的ping解决方案

2016-08-26 18:14 260 查看
关于linux的ping解决方案(更新中)

实验环境:

虚拟机:Ubantu 14.04

开发板:ZLG imx283A ARM9 开发套件

主机:WIN7 专业版

编写特点:

都会带有相应的关键词或参考案例链接,具体点击即可。

以下请按顺序阅读并跟踪操作,有不明白的地方,需要重新查看,尤其是涉及像“同一网段”这种不理解的知识点,。

学习这类知识,最紧要的是不要依赖于一篇博客或文章。所以,笔者在编写的过程中,提供了很多经过筛选的博客来帮助学习理解。

网络基础知识(入门补充)

高手请跳过,新手可以看《图解TCP/IP》前两章。

这里涉及到了IP地址、广播地址、子网掩码和DNS等网络参数的概念和他们的相互关系。

内网和外网:

内网:从路由或具备路由功能的设备开始,下层的IP都是内网的IP,毕竟外网IP是非常紧缺的,内网恰好可以解决这个问题。

例如,只有一个路由,多个设备连入internet上网。那么,这种情况是只有路由具备外网IP,其余连入该路由的设备所具备的IP都是内网的IP,设备就能够通过路由连入互联网。

再例如,网吧也同样一个道理。

外网:外网就是不经路由器或交换机就可以上网的网络,可以直接被外界所访问到。一般外网由公司、学校等机构使用。外网的IP是除内网之外的IP都是外网IP。

解决ping问题的一般检测思路:

你总得确定你的路由或具备路由功能的设备能正确联网。

网线类型:直通线、交叉线(相同设备之间使用交叉线,不同设备之间使用直通线)(笔者在实际中暂时未遇到线的问题)

主机和开发板入网:建议是使用有线连接。

虚拟机网络配置方式:建议选择桥接,详细看下文。

必须为同一网段:网络标识一样的,则在同一网段。各类IP的网络标识算法不一样,分为3种,ABC。A算仅第一段,B段前两段,C算前三段。IP地址与子网掩码想与得出网络标识,通过网络标识是否一致判断是否同一网段。当然,还可以计算主机标识,这里不详述。

防火墙(包括杀毒软件):必须关闭win、虚拟机linux、开发板的防火墙,不然网络受阻。

实在不行,检测开发板是否正常。



虚拟机linux网络配置

虚拟机网络配置:

虚拟机网络链接方式:

这里存在虚拟机、虚拟网卡、虚拟交换机三个概念,真实世界同样有对应的三个。

Bridge、nat、host-only三种(主要,其余不讲解)

笔者最简表述:不同的工作模式,选择不同(合适)的网络模式。

桥接:IP地址较多的情况下。虚拟机拥有独立IP,通过手动配置IP,允许与主机通信,允许连入互联网,允许被开发板ping通。主机作为桥梁,作为外部与虚拟机的通信桥梁。虚拟机像是真实世界中的一台独立的计算机,可以作为一个虚拟服务器。

NAT:该情况为IP地址有限,主机和虚拟机共用一个独立IP,虚拟机借助主机所在的网络访问互联网。虚拟机必然能够与互联网通信,允许与主机通信。因为虚拟机不能被外部发现,即开发板永远也不能ping通虚拟机,但虚拟机通过配置可以ping开发板。该模式可以非常简单地接入互联网。

主机:特殊网络功能调试下使用。主机不需联网(不能上网),主机和虚拟机可以互相ping通,但虚拟机不能与外界真实的网络联系。像是主机和虚拟机(两台计算机)使用网线相互连接。

这里提供三个博主对虚拟机网络链接的理解,笔者分别归纳他们的讲解内容:

简明地讲述三种方式的处理方式和使用场景 链接1

从虚拟机和虚拟机网卡的关系来讲解,并涉及到win,一个综合例子 链接2

极简模式讲解,适用情况 链接3

Linux网络配置:

笔者使用的虚拟机是Ubantu,网络配置文件在/etc/network/interfaces。需要修改并开机启动使用该网络配置的,必须将命令写到该文件。Ubuntu通过修改配置文件进行网络配置。文件中默认的两行,实际是启动本地环回。Ubantu的eth0是使用dhcp来动态获取IP(桥接),所以,笔者并没有修过IP配置文件。如果需要,也是可以更改的。同样,Ubantu的域名DNS服务器的配置文件在/etc/resolv.conf。下面提供两个关于Ubantu的IP配置文件和DNS配置文件:

简短版

详尽版:ubuntu网络配置初步/etc/network

主机和虚拟机:

通过上面的虚拟机网络配置,读者先确认win和虚拟机linux是否可以ping通自己的IP,也就是正确联网。如果是,则进入下一步阅读。

问题1:windows 向 虚拟机linux ping?

linux虚拟机的网络配置方式是否选择为桥接,是则无需理会;否则,进一步查看,可以设置为桥接;在已经理解虚拟机网络配置的情况下,也以设置为NAT方式,但遗憾地告诉你,如果设置为NAT方式,那么win和虚拟机linux ping通了,可此时开发板和虚拟机linux永远也不会ping通,具体复习上述的虚拟机网络配置。

在非用户设置的情况下,linux不会开机自启动防火墙的,所以windows向linux ping是较为简便的。

最后,windows需要启动cmd.exe程序来测试ping效果,菜单->运行->cmd,输入ipconfig命令即可。

如果操作上述ping失败,那么很可能是你的linux启动了防火墙。因为Ubantu不存在etc/init.d/iptables,所以不能启动etc/init.d/iptables stop。幸运的是,Ubantu上防火墙使用ufw命令设置。如果你的linux版本是其他,那么找到防火墙设置方式,linux系统防火墙一般设置

问题2:虚拟机linux 向 windows ping?

在非用户设置的情况下,windows开机自启动防火墙,进而阻挡了虚拟机向主机的通讯请求(ping)。修改win的防火墙设置,根据用户自己的网络位置(家庭或工作、公用网络)来修改。具体打开控制面板设置,详情百度。

linux ping win 7参考案例

问题3:是否在同一网段?

什么是同一网段?同一网段指的是:IP地址和子网掩码相与得到相同的网络地址(相与是指位运算那种)。例如IP192.168.1.0与mask255.255.255.0,那么匹配到IP为192.168.1.x(x为任意除0外的值)都将是同一网段。

同一网段的网络特性(为何要这么做)?是否在同一网段,决定着开发板、主机、虚拟机三者能否互相ping通,同时也是samba等服务启动的前提条件。

设置为同一网段:参照同一网段的意义来设置IP。参见,我的三个IP为:

开发板:192.168.199.112

虚拟机linux:192.168.199.146

主机win7:192.168.199.188

开发板设置

注意:开发板一般是把linux内核经过配置适合那个开发版后编译成内核镜像放到开发版上运行,没有一定要哪个版本。所以,以下命令需要根据实际来使用。当然,一般开发板都会安装BusyBox,使用集成命令包情况下,各个开发板基本一样设置。

注意:以下设置,不懂设置可以回到虚拟机网络配置的第1点查看。

1. lo本地环回:开发板需要启动本地回环lo网络,才可以ping通自己的IP。直接使用命令ifconfig lo up即启动本地回环。

2. 设置默认网关:IP配置文件,该文件可能被剪裁,根据开发板的uImage来定。

3. 设置DNS:DNS配置文件。如果不知道自己的本机DNS,可以在win上运行cmd.exe,然后使用ipconfig /all可以查看到自己主机win所在的DNS地址,然后直接在开发板上输入即可。通过经验可以知道,一般DNS地址都是x.x.x.1

IP配置:
ifconfig eth0 down
ifconfig eth0 192.168.199.112
ifconfig eth0 netmask 255.255.255.0
ifconfig eth0 broadcast 192.168.199.225
route add default gw 192.168.199.1
ifconfig lo up
ifconfig eth0 up

DNS配置:
nameserver 192.168.199.1


4.其实,还有一条语句search lan不明白,它是放在虚拟机的DNS配置文件中。如果明白的话,请信息我。

参考文章:

虚拟机的linux 系统ping不通主机windows 7

windows、虚拟机和ARM开发板3者互ping

三者互ping教程

此非参考,却是需要解决的情况之一

虚拟机ping通开发板个人经验
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: