开发板&PC&虚拟机之间的网络配置

来自百问网嵌入式Linux wiki
Zhouyuebiao讨论 | 贡献2020年1月7日 (二) 10:48的版本


目录

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

连接网线

如下图接线(开发板的网线,一定接到路由器,不要接到电脑):
如果你只想让Windows和Ubuntu互通,可以不接开发板的网线。
如果你只想让Ubuntu能上网,可以不接开发板的网线。
VMwareAndUbuntuNetworkSetupGuide 001.png

VMWare里选择WIFI网卡

如果你只想让Windows和开发板互通,可以不启动VMWare,当然也就不用去设置VMWare和Ubuntu。
很多电脑有多网卡,比如WIFI网卡、有线网卡。
在这种连接情况下,VMWare必须选择桥接模式、必须选择WIFI网卡。
VMWare选择桥接模式,方法如下:
VMwareAndUbuntuNetworkSetupGuide 002.png
在桥接模式中选择WIFI网卡,如下图操作:
VMwareAndUbuntuNetworkSetupGuide 003.png

设置IP

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

设置Windows IP

Windows的IP一般都是自动分配的,在命令行执行:ipconfig,查看它的IP,假设为192.168.1.10
如果想修改IP,可以手工修改,具体方法请自行百度搜:windows 修改 IP


设置Ubuntu IP

如果只是想让Windows、Ubuntu、开发板三者网络互通,只需要设置Ubuntu的IP。如果想让Ubuntu能上网,还需要设置它的网关、DNS。
一般来说无需手工设置Ubuntu的网络,如果、万一Ubuntu的网络不好使,就需要手工设置。
方法如下(下面第1个图是给root用户设置密码,只需做1次):
VMwareAndUbuntuNetworkSetupGuide 004.png
设置完毕后,可以在terminal中执行ifconfig命令,查看设置是否生效:
VMwareAndUbuntuNetworkSetupGuide 005.png

设置开发板IP

开发板运行UBOOT时、运行LINUX时,它们的IP需要分别设置,这两个阶段的IP没有联系。这两个阶段不会同时运行,所以它们的IP可以相同。
如果开发板正在运行UBOOT,执行以下命令设置IP:
set  ipaddr  192.168.1.123
save
如果开发板正在运行LINUX,一般来说也不需要设置IP。如果有问题,比如执行ifconfig命令后无法查看到网卡的IP,你可以执行以下命令设置手工IP:
echo  “ifconfig   eth0  192.168.1.123”  >> /etc/init.d/rcS
reboot

验证

① 验证Windows和Ubuntu互通:
在Windows命令行执行:
ping  192.168.1.100    // ping Ubuntu,如果有数据返回就表示通了
如下图:
VMwareAndUbuntuNetworkSetupGuide 006.png
② 验证Windows和“正在运行uboot的开发板”互通(第②③步,只要做一个就可以):
注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,
只能在UBOOT去PING别的电脑。
VMwareAndUbuntuNetworkSetupGuide 007.png
如果显示“alive”就表示通了。
有时候Windows有防火墙导致PING不通,可以尝试去PING ubuntu的IP。
③ 验证Windows和“正在运行Linux的开发板”互通(第②、③步,只要做一个就可以):
类似第①步,在Windows命令行下PING开发板的IP。
注意,开发板必须启动进入了Linux,它才能被Windows PING通。
④ 验证Ubuntu能否上网:打开terminal,执行命令“ping news.qq.com”,有数据返回就表示成功。注意:同时按住ctrl+c就可以退出当前命令。
VMwareAndUbuntuNetworkSetupGuide 008.png

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

连接网线

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

强烈建议买一个网络集线器,很便宜的,20块钱之内;土壕可以买一个路由器代替集线器。
如下图接线(开发板和电脑的网线,接到网络集线器,开发板和电脑不要用网线直连):
如果你只想让Windows和Ubuntu互通,请看上一章(第1章):不需要接开发板网线,不需要买集线器。
VMwareAndUbuntuNetworkSetupGuide 009.png

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

如果你只想让Windows和Ubuntu互通,请看上一章(第1章):不需要接开发板网线,不需要买集线器。
实在不想再买网络集线器了(强烈建议不要这样做,否则使用过程中麻烦时不时发生),可以照下图接线:
VMwareAndUbuntuNetworkSetupGuide 010.png
电脑和开发板的网线直连时,
这是要特殊对待的情况!
如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡!
否则,Windows里看到的有线网卡就有一个红叉。
红叉表示"断开",
都"断开"了你别再问我为什么PING不通。
所以,
如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡:
a. 如果你要在开发板上玩UBOOT:
原生UBOOT是个奇葩,
它平时不使能网卡,
只有在使用网络命令那一小会,才使能网卡。
如果一定要直连,必须更换为"全程使能网卡的UBOOT",
我们提供的JZ2440的uboot,已经全程使能网卡了,
你可以在它的前2行打印信息里看到:enable Ethernet alltime。
对于其他开发板所用的uboot,它并没有全程使能网卡,
对于这种情况,强烈建议不要用网线直接连接开发板和电脑。
b. 如果你要在开发板上玩LINUX,
这个LINUX必须有网卡驱动,必须配置了网卡,
可以在开发板里执行类似这样的命令:
ifconfig eth0 192.168.1.123 

VMWare里选择有线网卡

如果你只想让Windows和开发板互通,可以不启动VMWare,当然也就不用去设置VMWare和Ubuntu。
很多电脑有多网卡,比如WIFI网卡、有线网卡。
在本章所描述的连接情况下,VMWare必须选择桥接模式、必须选择有线网卡。
VMWare选择桥接模式,方法如下:
VMwareAndUbuntuNetworkSetupGuide 011.png
在桥接模式中选择有线网卡,如下图操作:
VMwareAndUbuntuNetworkSetupGuide 012.png

设置IP

注意注意注意:Windows中的WIFI网卡、有线网卡,它们2个IP的网段绝不能相同
WIFI网卡的IP一般是自动分配的,一般都是192.168.1.xxx,
那么我们就把有线网卡IP设为 192.168.2.xxx,不能跟WIFI网卡在同一网段。
Windows的有线网卡IP、ubuntu的IP、开发板的IP,三个IP必须处于同一网段,所以需要有3个192.168.2.x的IP

设置Windows IP

在本章的连接情况中,Windows的有线网卡的IP一般都无法自动分配。
需要手工修改有线网卡的IP,具体方法请自行百度搜:“windows 修改 IP”。
假设你已经把它的IP改为192.168.2.10。

设置Ubuntu IP

在本章的网络连接中,Windows通过WIFI网卡上网,通过有线网卡跟Ubuntu和开发板互连。所以使用Ubuntu和开发板是无法上网的,请记住这点。
在本章的网络连接中,你需要手工设置Ubuntu的网卡IP。
注意,本例中把IP设置为192.168.2.100。
方法如下(下面第1个图是给root用户设置密码,只需做1次):
VMwareAndUbuntuNetworkSetupGuide 013.png
设置完毕后,可以在terminal中执行ifconfig命令,查看设置是否生效:
VMwareAndUbuntuNetworkSetupGuide 014.png

设置开发板IP

开发板运行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

验证

① 验证Windows和Ubuntu互通:
在Windows命令行执行:
ping  192.168.2.100    // ping Ubuntu,如果有数据返回就表示通了,如下图:
VMwareAndUbuntuNetworkSetupGuide 015.png
② 验证Windows和“正在运行uboot的开发板”互通(第②③步,只要做一个就可以):
注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,
只能在UBOOT去PING别的电脑。
VMwareAndUbuntuNetworkSetupGuide 016.png
如果显示“alive”就表示通了。
③ 验证Windows和“正在运行Linux的开发板”互通(第②③步,只要做一个就可以):
类似第①步,在Windows命令行下PING开发板的IP。
注意,开发板必须启动进入了Linux,它才能被Windows PING通。

Windows不使用WIFI网卡

连接网线

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

如果你只想让Windows和Ubuntu互通:不需要接开发板网线。
如果你只想让Ubuntu能上网:不需要接开发板网线。
VMwareAndUbuntuNetworkSetupGuide 017.png

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

强烈建议买一个网络集线器,很便宜的,20块钱之内;土壕可以买一个路由器代替集线器。
如果你只想让Windows和Ubuntu互通,请看3.1.1节:不需要接开发板网线,不需要买集线器,但是电脑的网线必须接到路由器(这样网卡才不是断开状态,才可使用)。
VMwareAndUbuntuNetworkSetupGuide 018.png

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

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

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

如果你只想让Windows和Ubuntu互通,但是又没有集线器或路由器:仍需要用网线连接电脑和开发板(这样网卡才不是断开状态,才可使用)。
实在不想再买网络集线器了(强烈建议不要这样做,否则使用过程中麻烦时不时发生),可以照下图接线:
VMwareAndUbuntuNetworkSetupGuide 020.png
电脑和开发板的网线直连时,
这是要特殊对待的情况!
如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡!
否则,Windows里看到的有线网卡就有一个红叉。
红叉表示"断开",
都"断开"了你别再问我为什么PING不通。
所以,
如果电脑和开发板用网线直连,开发板上的程序,必须使能网卡:
a. 如果你要在开发板上玩UBOOT:
原生UBOOT是个奇葩,
它平时不使能网卡,
只有在使用网络命令那一小会,才使能网卡。
如果一定要直连,必须更换为"全程使能网卡的UBOOT",
我们提供的JZ2440的uboot,已经全程使能网卡了,
你可以在它的前2行打印信息里看到:enable Ethernet alltime。
对于其他开发板所用的uboot,它并没有全程使能网卡,
对于这种情况,强烈建议不要用网线直接连接开发板和电脑。
b. 如果你要在开发板上玩LINUX,
这个LINUX必须有网卡驱动,必须配置了网卡,
可以在开发板里执行类似这样的命令:
ifconfig eth0 192.168.1.123 

VMWare里选择有线网卡

如果你只想让Windows和开发板互通,可以不启动VMWare,当然也就不用去设置VMWare和Ubuntu。
很多电脑有多网卡,比如WIFI网卡、有线网卡。
在本章所描述的连接情况下,VMWare必须选择桥接模式、必须选择有线网卡。
VMWare选择桥接模式,方法如下:
VMwareAndUbuntuNetworkSetupGuide 021.png
在桥接模式中选择有线网卡,如下图操作:
VMwareAndUbuntuNetworkSetupGuide 022.png

设置IP

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

设置Windows IP

Windows的IP一般都是自动分配的,在命令行执行:ipconfig,查看它的IP,假设为192.168.1.10

如果想修改IP,可以手工修改,具体方法请自行百度搜:“windows 修改 IP”。

设置Ubuntu IP

如果只是想让Windows、Ubuntu、开发板三者网络互通,只需要设置Ubuntu的IP。如果想让Ubuntu能上网,还需要设置它的网关、DNS。
一般来说无需手工设置Ubuntu的网络,如果、万一Ubuntu的网络不好使,就需要手工设置。
方法如下(下面第1个图是给root用户设置密码,只需做1次):
VMwareAndUbuntuNetworkSetupGuide 023.png
设置完毕后,可以在terminal中执行ifconfig命令,查看设置是否生效:
VMwareAndUbuntuNetworkSetupGuide 024.png

设置开发板IP

开发板运行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

验证

① 验证Windows和Ubuntu互通:
在Windows命令行执行:
ping  192.168.2.100    // ping Ubuntu,如果有数据返回就表示通了,如下图:
VMwareAndUbuntuNetworkSetupGuide 025.png
② 验证Windows和“正在运行uboot的开发板”互通(第②③步,只要做一个就可以):
注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,
只能在UBOOT去PING别的电脑。
VMwareAndUbuntuNetworkSetupGuide 026.png
如果显示“alive”就表示通了。
③ 验证Windows和“正在运行Linux的开发板”互通(第②③步,只要做一个就可以):
类似第①步,在Windows命令行下PING开发板的IP。
注意,开发板必须启动进入了Linux,它才能被Windows PING通。

只想让Ubuntu能上网、能跟Windows互联(校园网必看)

VMWare的3种网络模式简介

VMWare的网络有3种模式:
① 桥接模式:
在这种模式下,Windows主操作系统、VMWare上运行的Ubuntu操作系统,就相当于2台独立的电脑。
如果Windows需要拔号才能上网,那么Ubuntu也需要拔号才能上网。但是一般来说学校、单位没有Ubuntu下的拔号软件。这时,Ubuntu想上网就不能使用桥接模式。
② NAT模式:
VMWare上运行的Ubuntu操作系统,它对外访问时,会使用Windows的IP,这称为共享主机Windows的IP。
在这种模式下,只要Windows能上网,Ubuntu就可以上网,无需对Ubuntu进行复杂的设置。
但是这种模式下,开发板无法访问Ubuntu,所以不适合进行后续的学习、开发。
③ 仅主机模式:
不太了解,用不上。

NAT模式适用情况

有些校园网客户,或者在有些限制上网的公司里,想上网时必须申请,要拨号、要输入用户名密码。
有些学员,并不需要使用开发板,不需要三者互通:Windows、VMWare上的Ubuntu、开发板。他只需要两者互通:Windows、VMWare上的Ubuntu。
有些学员,三者互通的情况下Ubuntu是无法上网的,比如下图的连接方式中Ubuntu就无法上网。但是他需要临时使用Ubuntu上网,比如在Ubuntu中使用atp-get命令安装软件。
VMwareAndUbuntuNetworkSetupGuide 027.png
对于上述3种情况,都只要求Windows和Ubuntu能互通,不关心开发板。
那么可以设置VMWare使用NAT方式,设置Ubuntu自动获取IP

NAT模式的使用:VMWare和Ubuntu的设置

VMWare选择NAT模式,方法如下:
VMwareAndUbuntuNetworkSetupGuide 028.png
Ubuntu中设置为自动获取IP(下面第1个图是给root用户设置密码,只需做1次):
VMwareAndUbuntuNetworkSetupGuide 029.png

测试

如果Windows可以上网,那么可以按下图来测试:
1. 执行ifconfig命令确定已经自动获取了IP
2. 用ping命令连接外网
VMwareAndUbuntuNetworkSetupGuide 030.png
如果Windows不能上网,那只能测试Windows和Ubuntu的互通了,如下图:
1. 执行ifconfig命令确定已经自动获取了IP
2. 用ping命令连接Windows(本例中Windows IP为192.168.1.10)
VMwareAndUbuntuNetworkSetupGuide 031.png

Windows和Ubuntu之间远程操作

Windows和Ubuntu之间网络互通之后,就可以在Windows远程登录Ubuntu并执行各种Linux命令了,还可以使用FileZilla在两者之间传输文件。
能执行本文操作的前提是Ubuntu上已经安装好了ssh服务。
如果你使用的是我们提供的Ubuntu系统,ssh服务已经安装好了;
否则你需要确保Ubuntu能上网,然后执行下面命令来安装ssh服务:
sudo apt-get install openssh-server

使用MobaXterm登录Ubuntu

注意:本章假设Ubuntu的IP为192.168.1.100,你可以登录Ubuntu桌面系统后启动terminal,执行ifconfig命令查看该IP。
1)打开MobaXterm,点击左上角的Session(会话控制),在弹出的窗口中选择SSH,如下图所示。
VMwareAndUbuntuNetworkSetupGuide 032.png
2)在弹出操作框里输入Ubuntu的IP和端口号(默认是22),然后点击“OK”,如下图所示。
VMwareAndUbuntuNetworkSetupGuide 033.png
3)在新窗口中输入账号“book”和密码“123456”,再按下键盘“回车键”登陆Ubuntu。此时界面分为两块,左边的是主机的文件,右边是终端。勾选左下角的“Follow terminal folder”可以让它们的工作路径保持一致,如下图所示。
你可以把Windows下的文件直接拖到左边显示的Ubuntu目录中,也可以从里面把文件拖出来。
VMwareAndUbuntuNetworkSetupGuide 034.png

使用FileZilla与Ubuntu传输文件

安装、运行FileZilla后,如下图依次输入Ubuntu的IP(192.168.1.100)、用户名(book)、端口号(22),单击“快速链接”即可。
注意:必须输入端口号22,这对应SFTP。
VMwareAndUbuntuNetworkSetupGuide 035.png

开发板和Ubuntu之间传文件

开发板和Ubuntu之间网络互通之后,就可以在两者之间传输文件了。

开发板通过NFS挂载Ubuntu的目录

开发板上不一定安装有FTP服务、SSH等服务,所以不一定能使用FTP等工具登录开发板。
但是开发板的系统一般都自带mount命令,并且支持NFS文件系统。所以可以在开发板上执行mount命令挂载ubuntu的某个目录。这样就可以在开发板和Ubuntu之间传文件了。
开发板使用NFS挂载Ubuntu的前提是:Ubuntu中已经安装了NFS服务,并且在/etc/exports中配置了某个目录供挂载。

在Ubuntu上安装、配置NFS服务

如果你使用的是我们提供的Ubuntu,那么已经安装好了NFS服务。
如果你的Ubuntu未安装NFS服务,那么在确保Ubuntu可以上网的前提下,执行以下命令:
sudo apt-get install nfs-kernel-server
然后,还得修改/etc/exports,添加类似以下的内容,下面的例子里允许开发板通过NFS访问Ubuntu的/home/book、/work两个目录:
/home/book   *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
/work         *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
最后,重启NFS服务,在Ubuntu上执行以下命令:
sudo /etc/init.d/nfs-kernel-server restart
可以在Ubuntu上通过NFS挂载自己,验证一下NFS可用:
sudo  mount  -t  nfs  -o  nolock,vers=3  127.0.0.1:/home/book   /mnt
ls  /mnt

在开发板上挂载Ubuntu的NFS文件系统

确保开发板可以ping通Ubuntu后,就可以通过NFS挂载Ubuntu中的某个目录。
哪些目录呢?请查看Ubutnu的/etc/exports文件。
假设Ubuntu的IP为:192.168.1.100,在开发板上可以执行下面的命令挂载Ubuntu的/home/book目录到开发板的/mnt目录:
 mount  -t  nfs  -o  nolock,vers=2  192.168.1.100:/home/book   /mnt
 // 如果不成功,就把vers=2改为vers=3或vers=4
 mount  -t  nfs  -o  nolock,vers=3  192.168.1.100:/home/book   /mnt
如果一切正常,你可以在Ubuntu上把文件放到/home/book目录中,在开发板上可以从/mnt目录中访问该文件。

常见问题

1. Windows上有多个网卡时,三者(Windows/Ubuntu/开发板)无法互通:
答:可能原因有两个。
① VMWare中要选择桥接模式,并且桥接模式下要选择正确的网卡。选择哪一个网卡,请看第1、2、3章中的各种情况。
② Windows上安装了杀毒软件,或是启用了防火墙。在这种情况下,只要Windows能ping通Ubuntu、ping通开发板就可以了。不必强求Ubuntu和开发板都能ping通Windows,这不影响使用。
2. vmnetcfg中没有桥接模式,如下图:
VMwareAndUbuntuNetworkSetupGuide 036.png
答:运行vmnetcfg时,没有使用“管理员权限”
3. VMWare中无法选择NAT模式:
VMwareAndUbuntuNetworkSetupGuide 037.png
答:在开始菜单运行services.msc,启动下图所列的VMWare服务(右键点击选择“启动”):
VMwareAndUbuntuNetworkSetupGuide 038.png
4. 开发板和电脑用网线直连,问题多
答:不要直连,中间接一个HUB或路由器