欢迎光临散文网 会员登陆 & 注册

ping问题解决方法_20190305

2019-03-08 18:15 作者:韦东山  | 我要投稿

文 : 韦东山

我们深受windows、ubuntu、开发板之间互PING问题的困扰,

特别为这个问题录了视频(https://v.qq.com/x/page/h0505eg7z0m.html)

无奈还是有很多很多同学不看视频直接发问,或者说看了视频也解决不了问题,所以我再试图用几页文档解决这个问题。

这是ping问题解决方法最新文档,遇到问题首先看这里,也希望这是最后一个文档。


根据网线不同的连接情况大致可以分为3种情况:

一、 Windows通过WIFI上网,开发板离无线路由器很近

二、 Windows通过WIFI上网,开发板离无线路由器很远

三、 Windows不使用WIFI网卡


每种情况都可以分为网线连接,VMWare里选择的网卡,设置IP和验证 四部分,下面我们分别来讲解,请大家根据自己的具体情况来选择。


 一. Windows通过WIFI上网,开发板离无线路由器很近


1.1 网线连接


如下图接线(开发板的网线,一定接到路由器,不要接到电脑):

如果你只想让Windows和Ubuntu互通,可以不接开发板的网线。


1.2  VMWare里选择WIFI网卡

如果你只想让Windows和开发板互通,可以不启动VMWare,当然也就不用去设置VMWare和Ubuntu。

很多电脑有多网卡,比如WIFI网卡、有线网卡。

在这种连接情况下,VMWare必须选择桥接模式、必须选择WIFI网卡。

如下图操作(VMware版本不同,菜单可能有所差别,请自行寻找;新版vmware player没有菜单项去选择网卡,请安装对应的pro版本):


1.3  设置IP

  Windows的WIFI网卡IP、ubuntu的IP、开发板的IP,三个IP必须处于同一网段(何为同一网段?就是前面的IP都一样,就最后面3位不同)。

a. Windows的IP一般都是自动分配的,在命令行执行:ipconfig,确定它的IP,

假设为192.168.1.10

b. Ubuntu的IP需要手工设置,在Ubuntu的终端执行:ifconfig ,确定网卡名,

可能是eth0、eth4、ens33,假设是ens33

再执行:sudo  ifconfig  ens33  192.168.1.100   // 配置网卡IP为192.168.1.100


c. 开发板运行UBOOT时、运行LINUX时,

它们的IP需要分别设置,这两个阶段的IP没有联系,

这两个阶段不会同时运行,所以它们的IP可以相同。


如果开发板正在运行UBOOT,执行以下命令设置IP:

set  ipaddr  192.168.1.123

save


如果开发板正在运行LINUX,执行以下命令设置IP:

echo  “ifconfig   eth0  192.168.1.123”  >> /etc/init.d/rcS

reboot


1.4  验证

① 验证Windows和Ubuntu互通:

在Windows命令行执行:

ping  192.168.1.100    // ping Ubuntu,如果有数据返回就表示通了,如下图:

注意:Windows ping Ubuntu 不通可以执行如下命令关闭Ubuntu防火墙在尝试(下同,不在重复):

sudo ufw disable // 输入密码123456再回车

反过来ping如果不通可以尝试关闭Windows防火墙(具体请百度,下同,不在重复) 


② 验证Windows和“正在运行uboot的开发板”互通(第②③步,只要做一个就可以):

注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,

只能在UBOOT去PING别的电脑。

如果显示“alive”就表示通了。

有时候Windows有防火墙导致PING不通,可以尝试去PING ubuntu的IP。


③ 验证Windows和“正在运行Linux的开发板”互通(第②、③步,只要做一个就可以):

类似第①步,在Windows命令行下PING开发板的IP。

注意,开发板必须启动进入了Linux,它才能被Windows PING通。


二.  Windows通过WIFI上网,开发板离无线路由器很远

2.1  连接网线

2.1.1 Windows电脑和开发板的网线,都接到另一个集线器或路由器

强烈建议买一个网络集线器,很便宜的,20块钱之内;土壕可以买一个路由器代替集线器。

如下图接线(开发板和电脑的网线,接到网络集线器,开发板和电脑不要用网线直连):

如果你只想让Windows和Ubuntu互通,请看上一章(第1章):不需要接开发板网线,不需要买集线器。

2.1.2 电脑和开发板用网线直连(不建议)

我不想再买网络集线器了(强烈建议不要这样做,否则使用过程中麻烦时不时发生):

如果你只想让Windows和Ubuntu互通,请看上一章(第1章):不需要接开发板网线,不需要买集线器。

电脑和开发板的网线直连时,


这是要特殊对待的情况!


如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡!


否则,Windows里看到的有线网卡就有一个红叉。


红叉表示"断开",


都"断开"了你别再问我为什么PING不通。


所以,

如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡:

a. 如果你要在开发板上玩UBOOT:

   原生UBOOT是个奇葩,

   它平时不使能网卡,

   只有在使用网络命令那一小会,才使能网卡。

   所以,必须更换为"全程使能网卡的UBOOT",

   我们提供的JZ2440的uboot,已经全程使能网卡了,

你可以在它的前2行打印信息里看到:enable Ethernet alltime

b. 如果你要在开发板上玩LINUX,

   这个LINUX必须有网卡驱动,必须配置了网卡,

   可以在开发板里执行类似这样的命令:

   ifconfig eth0 192.168.1.123 

2.2  VMWare里选择有线网卡

如果你只想让Windows和开发板互通,可以不启动VMWare,当然也就不用去设置VMWare和Ubuntu。

很多电脑有多网卡,比如WIFI网卡、有线网卡。

在这种连接情况下,VMWare必须选择桥接模式、必须选择有线网卡。

如下图操作(VMware版本不同,菜单可能有所差别,请自行寻找;新版vmware player没有菜单项去选择网卡,请安装对应的pro版本):

2.3  设置IP

注意注意注意:Windows中的WIFI网卡、有线网卡,它们2个IP的网段绝不能相同!

WIFI网卡的IP一般是自动分配的,一般都是192.168.1.xxx,

那么我们就把有线网卡IP设为 192.168.2.xxx,不能跟WIFI网卡在同一网段。

Windows的有线网卡IP、ubuntu的IP、开发板的IP,三个IP必须处于同一网段。


a. Windows的有线网卡IP怎么手工设置请自行百度,

假设为192.168.2.10

b. Ubuntu的IP需要手工设置,在Ubuntu的终端执行:ifconfig ,确定网卡名,

可能是eth0、eth4、ens33,假设是ens33

再执行:sudo  ifconfig  ens33  192.168.2.100   // 配置网卡IP为192.168.2.100

c. 开发板运行UBOOT时、运行LINUX时,

它们的IP需要分别设置,这两个阶段的IP没有联系,

这两个阶段不会同时运行,所以它们的IP可以相同。


如果开发板正在运行UBOOT,执行以下命令设置IP:

set  ipaddr  192.168.2.123

save


如果开发板正在运行LINUX,执行以下命令设置IP:

echo  “ifconfig   eth0  192.168.2.123”  >> /etc/init.d/rcS

reboot

2.4  验证

① 验证Windows和Ubuntu互通:

在Windows命令行执行:

ping  192.168.2.100    // ping Ubuntu,如果有数据返回就表示通了,如下图:


② 验证Windows和“正在运行uboot的开发板”互通(第②③步,只要做一个就可以):

注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,

只能在UBOOT去PING别的电脑。

③ 验证Windows和“正在运行Linux的开发板”互通(第②③步,只要做一个就可以):

类似第①步,在Windows命令行下PING开发板的IP。

注意,开发板必须启动进入了Linux,它才能被Windows PING通。


三.  Windows不使用WIFI网卡

3.1  连接网线

3.1.1 Windows通过有线网卡接路由器上网,开发板离路由器很近

如果你只想让Windows和Ubuntu互通:不需要接开发板网线。

3.1.2 Windows通过有线网卡接路由器上网,开发板离路由器很远

    强烈建议买一个网络集线器,很便宜的,20块钱之内;土壕可以买一个路由器代替集线器。

如果你只想让Windows和Ubuntu互通,请看3.1.1节:不需要接开发板网线,不需要买集线器,但是电脑的网线必须接到路由器(这样网卡才不是断开状态,才可使用)。

3.1.3 不上网,Windows电脑和开发板的网线,都接到集线器或路由器

开发板和电脑,使用网线连接,通过集线器或路由器互连:

如果你只想让Windows和Ubuntu互通:不需要接开发板网线,但是电脑的网线必须接到路由器或集线器(这样网卡才不是断开状态,才可使用)。

3.1.4 电脑和开发板用网线直连(不建议)

我不想再买网络集线器了(强烈建议不要这样做,否则使用过程中麻烦时不时发生):

如果你只想让Windows和Ubuntu互通,但是又没有集线器或路由器:仍需要用网线连接电脑和开发板(这样网卡才不是断开状态,才可使用)。


电脑和开发板的网线直连时,

这是要特殊对待的情况!

如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡!

否则,Windows里看到的有线网卡就有一个红叉。

红叉表示"断开",

都"断开"了你别再问我为什么PING不通。


所以,

如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡:

a. 如果你要在开发板上玩UBOOT:

   原生UBOOT是个奇葩,

   它平时不使能网卡,

   只有在使用网络命令那一小会,才使能网卡。

   所以,必须更换为"全程使能网卡的UBOOT",

   我们提供的JZ2440的uboot,已经全程使能网卡了,

你可以在它的前2行打印信息里看到:enable Ethernet alltime

b. 如果你要在开发板上玩LINUX,

   这个LINUX必须有网卡驱动,必须配置了网卡,

   可以在开发板里执行类似这样的命令:

   ifconfig eth0 192.168.1.123 

3.2  VMWare里选择有线网卡

如果你只想让Windows和开发板互通,可以不启动VMWare,当然也就不用去设置VMWare和Ubuntu。

很多电脑有多网卡,比如WIFI网卡、有线网卡。

在这种连接情况下,VMWare必须选择桥接模式、必须选择有线网卡。

如下图操作(VMware版本不同,菜单可能有所差别,请自行寻找;新版vmware player没有菜单项去选择网卡,请安装对应的pro版本):


3.3  设置IP

Windows的有线网卡IP、ubuntu的IP、开发板的IP,三个IP必须处于同一网段。

a. 设置Windows的有线网卡IP:

如果有线网卡接到路由器,那么它的IP一般会自动分配,

可以在Windows命令行下执行 ipconfig 查看,

假设为192.168.1.10;

如果有线网卡的IP没有自动分配,可以手工设置,方法请自行百度。

也假设为192.168.1.10


b. Ubuntu的IP需要手工设置,在Ubuntu的终端执行:ifconfig ,确定网卡名,

可能是eth0、eth4、ens33,假设是ens33

再执行:sudo  ifconfig  ens33  192.168.1.100   // 配置网卡IP为192.168.1.100

c. 开发板运行UBOOT时、运行LINUX时,

它们的IP需要分别设置,这两个阶段的IP没有联系,

这两个阶段不会同时运行,所以它们的IP可以相同。


如果开发板正在运行UBOOT,执行以下命令设置IP:

set  ipaddr  192.168.1.123

save


如果开发板正在运行LINUX,执行以下命令设置IP:

echo  “ifconfig   eth0  192.168.1.123”  >> /etc/init.d/rcS

reboot


3.4  验证

① 验证Windows和Ubuntu互通:

在Windows命令行执行:

ping  192.168.1.100    // ping Ubuntu,如果有数据返回就表示通了,如下图:

② 验证Windows和“运行uboot的开发板”互通(第②、③步,只要做一个就可以):

注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,

只能在UBOOT去PING别的电脑。

如果显示“alive”就表示通了。

有时候Windows有防火墙导致PING不通,可以尝试去PING ubuntu。


③ 验证Windows和“运行Linux的开发板”互通(第②③步,只要做一个就可以):

类似第①步,在Windows命令行下PING开发板的IP。

注意,开发板必须启动进入了Linux,它才能被Windows PING通。


总结:情况这么多,不知道你有没有看晕,还是不清楚的话还是看视频吧。我们已经尽力了。

欲第一时间获取嵌入式干货,请关注微信公众号baiwenkeji

技术交流请添加个人微信(13266630429),验证:B站

ping问题解决方法_20190305的评论 (共 条)

分享到微博请遵守国家法律