最近毕设搞得差不多了,今天专门来进行总结,我用的主要软硬件是:GEC6818开发板,windows10电脑、虚拟机安装的ubuntu16.04,如何使三者进行网络ping通,来实现三者通信。
我实现三网ping通的材料都有:
笔记本电脑、gec6818开发板、串口线(实现在电脑上用终端软件访问开发板)、一根网线(RJ45口)。
原理讲解:
这是我自己理解的,我也不知道对不对,我是按这样理解的,所以我ping出来了,可能对,可能也不对,可能是运气好,但我自己好了,我就按我这样写。
1:笔记本有无线网卡、虚拟机内部有虚拟网卡、将网线插入开发板电脑上会有以太网卡
2:禁用无线网卡,找到虚拟机对应的网卡,一般显示是“VMware Network Adapter VMnet*”等,记住它的显示名称。
3:在ubuntu中设置好对应网卡(是那根网线对应的网卡),并设置好网络的IP地址,假设地址为‘192.168.1.123’,则开发板地 址、PC端地址碧必须是‘192.168.1.*’,前面几位必须一样,也就是到达 1 那里,必须一样,后面那位必须在(0~255)之 间,而且三个IP地址最后这位不能一样。
4:设置各个IP地址:开发板IP地址、windowsPC端IP地址,ubuntuIp地址
总体的要求就是这样,具体操作我会一步步截图如下:
如下的A是设置自己的电脑端的ip地址。
Windows+R ,输入cmd,输入ipconfig,
现在我想把地址设置在192.168.2.* 这个网段下,第一步
右键点击网络:如下在此图标上点击右键。
会出现如下窗口,然后点击打开“网络和Internet“设置
之后弹出一个窗口,然后点击如下’更改适配器选项’
会弹出一个界面,具体看下图介绍:右键禁用无线网卡,其实也可以不必禁用,只是担心到时候会出现手动选取网络编辑器的时候会找不到对应的网卡
同一个页面具体操作看下图:
会弹出如下界面:具体操作看下图。
会弹出如下窗口:具体操作如下:
我自己现将它设置为我想要的网段。自己确认想设定自己的
网段。但同时记住该网段,也就是现在的包括 37 以及前面的所有数字。这就是整个设置自己的电脑ip的过程。
图下是我自己重新按照以上步骤设置自己的WindowsPC端的IP地址。
我使用的是Gec6818开发板,操作使用SecureCRT打开自己开发
板的文件系统,注意事项:找对串口的端口号,
用ifconfig查看当前的地址。
我之前设置的开发板的Ip地址是该图所示的那个ip,现在进行修改IP地址,我想永久修
改ip地址,注意,三者ping通必须要把ip设置在同一个网段下。
如下操作:vi /etc/profile
添加 :ifconfig eth0 up 192.168.2.3(这个 3 可以任意指定,但不能和WindwosPC
端以及ubuntu一样,其他的保证前面的一样就可以了)
截图如下:
标箭头的那里是我之前设置的,所以主体上的修改,直接改IP参数即可。对照自己WindowsPC端修改到一个网段就可以,之后 开发板输入命令,reboot,重启开发板,就可以看到自己修改后的IP。注意每个人的开发板都是不一样的,修改开发板的IP地址,自己要查看自己的开发板的修改环境是什么。
我现在已经把自己对的开发板地址修改好了。现在我们来试一下。WindowsPC端和开发板能不能ping通。
在开发板上ping WindwosPC端:输入命令:ping 192.168.2.12
出现箭头所指向的数据,就说明ping成功了,
也可以用Windows来ping下开发板,其实前者操作ping通了,本身就说明这两者可以互相ping通,为了某些强迫症的人的习惯,我们还是再进行试验。
在windowsPC端的cmd的窗口中输入命令:ping 192.168.2.189
如上表现:说明已经ping通了。
注意:在讲该内容之前需要大家了解虚拟机中三种网络模式的特点,参考https://blog.csdn.net/zkuncn/article/details/78452098
先说桥接模式,这是我的理解,我也是看以上网址自己去想和理解的,如果你觉得我理解
的对的话,可以继续往下看,否则可以省略这个问题。
就是说: 有一个我们想象出来的一个交换机,主机也就是我们的WindwosPC端,桥接网卡
指我们的ubuntu,主机和桥接网卡都插在这个交换机上如果交换机上连的外网,主机直接
插在上面可以联网,桥接网卡也可以直接上网。
我现在是在学校我是通过wifi连接校网
等于说我要上网,我必须要登陆这个页面,我现在使用该页面上网之后,我想让我的虚拟机ubuntu也上网,则在同样的条件下,我也需要登陆这个页面
但首先在虚拟机中的操作选择网卡,因为我最开始的时候说了有虚拟网卡,有wifi网卡,
还有我们插入的那个网线对应的产生的网卡,此时我要进行对桥接模式说明,我是通过wifi
上网的例子来表现。
如下所示:
点击更改设置,按图例操作。
选择网卡,对应的网卡介绍如下图,
所谓的wifi无线网卡相当与一个外网,同时也类比于一个主机(这是我自己理解的,也可
理解成主机充当交换机,自己联网又充当插在该交换机的借口设备),主机插在该交换机上,
那么现在网卡选择之后,我们ubuntu使用的网卡也插在该交换机上。(真实的情况其实是
虚拟网卡会收到网卡主机发送到的信息,获取动态的ip,但同时它又和主机是一样的,同
时作为两个平行的设备插在交换机上)
设置虚拟机中和外界连接的模式:桥接模式。
点击“虚拟机”之后会弹出如下窗口,点击‘设置’
之后会跳出另外一个窗口,点击”网络适配器”,会出现下图
的右半部分的的界面,点击‘桥接模式’,底下的‘复制物理网
络连接状态’勾选框不影响什么,(我自己试过),具体原我也不
知道。点击确定。
此时用ubuntu上网,也会弹出对应的网页登录页面。
一般情况下,我们是外网直接就可以上网,桥接模式勾选之后,也可以直接上网。而本教程因为上网必须要进行注册登录账号,这点在这里把 桥接模式 表现的比较明显。下来我们可以注意几个问题,看一下WindowsPC端关于无线网卡,主机上的IP地址。
在看一下ubuntu上的IP地址:看了一清楚的看到它和WindowsPC端的ip地址在无线网卡的同一个网段下,那么也证明他们是可以ping通的,任意一个ping另一个
看到两个同一网段下是可以ping通的,到这里,你有没有想到,我们要实现的是三网ping通,共同依靠的网卡就是那根网线所对应生成的网卡,我们必须基于这根网线来设定在同一网段的地址实现三网ping通。
我们不妨去改一下虚拟机ubuntu所依托的网卡,具体操作参考之上的操作。主要的步骤内容是,通过虚拟机中菜单栏的 ‘编辑’选项修改所依托的网卡,之后我发现我的ip地址不见了。
使用命令 ifconfig ens33 up 192.168.2.189。可是出现
上网自己可以百度去静态修改设置自己的ip地址。
信任我的话,具体可以看我的:
第一步先看一下自己的网卡名称,而执行命令如下图所示:
打开一个配置文件,在其中输入下方红框所圈出来的那些 命令
之后保存退出,执行命令:
sudo vi /etc/init.d/networking restart,用ifconfig查看自己的ip地址,看还是没变,reboot,重启ubuntu。
此时已经有地址了,但是我们的ip地址网段不是以上IP地址中的192.168.37.*,而是192.168.2.*,所以请再重复上面的操作,修改地址到同一网段之下。(抱歉,我刚才顾着做笔记,忘了修改。)
现在我参考上面的已经改好了IP地址
现在可以开始我们的表演:看能否和windowsPC ping通,能否和开发板 ping 通。ubuntu执行命令,具体如下图所示:
现在可以开始我们的表演:看能否和windowsPC ping通,能否和开发板 ping 通。ubuntu执行命令,具体如下图所示:
有强迫症的也可以各种ping ,各种去试,绝对没有问题
开发板 ping ubuntu
开发板ping WIndowsPC 端
至此我们实现了三网 ping 通。
我将刚才设置的静态IP地址把它屏蔽了,并且修改网络网卡设置为无线网卡,根据网络来改变,并且将其ubuntu设置为NAT模式,看会有什么效果。
我ping的是百度的网址,发现可以ping通,说明直接就可以上网,现在打开查看我们的windosPC端的IP地址,发现我们的图中描述的IP是192.168.37.*网段上的,对应的网卡是那个VMare NetWork VMate8网卡,而我们的ubuntu上的网段也是一样。
现在我们可以试一下是否能ping通
发现WIndowsPC端是可以ping通ubuntu的。
这是我找的官方一些大佬的说法
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上。
我的理解是这样的外界的联网的网卡和虚拟NAT设备连接,然后改虚拟设备和虚拟的DHCP服务器连载Vmnet8交换机上来提供给ubutu上网,现而之前的虚拟网卡对上网是不起作用,只作为在主机和虚拟机的通信,那么同时,也就解释了为什么两者是在一个网段中,可以互相 ping 通进行通信。
那么能不能实现三网ping 通,这是不可能的。
我们首先需要的是那根网线所产生的网卡,整体是以它为依托的,在NAT模式下使ubuntu和Windows通信使用的是VMare NetWork VMate8,这一点就决定了是不可能的。
其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
到这里就该结束了,桥接和NAT模式搞清楚了,可是仅主机模式还是有点晕晕的,自己想着去使用仅主机模式上网,最终还是没有实现据此就讲到这里了。