小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题

原创 韦东山 百问科技 1周前

上周四我们预告了这周要发布环境搭建的终极解决方案,经过一周的努力,终于写好了文档,Ubuntu使用NAT方式, 彻底解决Ubuntu不能上网,开发板不能PING通Ubuntu的问题,同时还发布了占用资源更小,运行速度更快的Docker使用教程,

全文1万字,预计阅读时间30分钟,可以先收藏再阅读,这都是韦东山老师通宵多晚调试搞定的教程,到底是怎么做到的呢?一起来瞧瞧...

本文特点:图文并茂,基本上是鼠标一移动就截图,非常适合初学者,不夸张的说,小学生都能看懂。

第二章 嵌入式开发环境搭建

2.1 前言

2.1.1 那么多虚拟机,如何选择?

搭建开发环境的主要工作是:安装虚拟机、安装Windows开发工具。

学习嵌入式Linux时,各种程序比如Linux内核、你编写的驱动、应用,都需要在Linux机器下编译。但是很多人习惯在Windows下编写文档、编写程序、聊微信。

正所谓在Windows下生活,在Linux下工作。难道我们需要2台电脑,一台装Windows、另一台装Linux?不,我们可以用虚拟机。在Windows电脑上安装虚拟机,在虚拟机里安装Linux。

注意:

Ubuntu是一种Linux发行版,流行好用;还有red hat等发行版。

虚拟机软件有很多种:VMWare、Virtual Box、Docker。怎么选择?

VMWare和Virtual Box类似,都可以100%模拟一台电脑,可以在里面安装Ubuntu,可以登录Ubuntu桌面系统、可以在Ubuntu中使用U盘、USB串口等硬件。

Docker是一个容器,简单地说可以在Docker上安装一个简化版本的Ubuntu,它没有桌面系统只有命令行,它无法使用U盘、USB串口等硬件。但是占用资源小,运行速度快。

怎么选择?

① 不喜欢折腾的同学,请使用VMware,因为Docker的安装太挑机器了。

② 就Ubuntu的完整性而言:

如果你想使用完整的Ubuntu系统,比如想使用桌面;那么推荐使用VMWare。

如果你想快速使用Ubuntu系统来编译程序,不在乎桌面,建议使用Docker。

③ 就电脑性能而言:

如果你的电脑性能挺好,使用VMware。

如果你的电脑性能比较弱,那么推荐使用Docker。

④ Docker不是你想用就能用

Windows 10教育版、家庭版,都无法安装Docker。

即使你的Windows 10是专业版的,在使用Docker的过程中也可能碰到HyperV服务不能启动的问题,这时候就需要升级Windows,这耗时1、2小时。

无论是VMware还是Docker,都可以满足嵌入式Linux的学习与工作。

注意:

VMware和Docker不可同时运行,前者要把Windows的Hyper V服务关掉,而后者要把Hyper V服务打开。

决定使用VMware或是Docker后,请看后面的对应章节。你不需要同时看VMware和Docker的章节,选择其中一个就可以。

2.1.2, 安装Windows软件

选择、安装好虚拟机后,就要在Windows安装各种开发软件了。

软件名

说明

Source insight

阅读、编写源码的工具,即装即用;推荐初学者使用

Visual Studio Code

阅读、编写源码的工具,需要进行很多配置;不推荐初学者使用

MobaXterm

串口工具、远程登录工具

Filezilla

文件传输工具,在Windows和Ubuntu之间传输文件

Notepad++

文本编辑工具,比记事本好用

在“网盘BSP包\01_Tools (工具)\01_Tools.zip”中,解压可以得到一系列的安装软件,建议全部安装。

由于篇幅原因,这里不细讲Source insight,Visual Studio Code,Notepad++的安装,后面会讲MobaXterm,Filezilla。

2.2,安装VMware并运行我们提供的Ubuntu系统

2.2.1, 安装Wmware Workstation Player

Windows下有很多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费专业版Workstation Pro和非商用免费版Workstation Player,推荐使用Workstation Player。

首先从VMware官网(www.vmware.com)下载Workstation Player安装包,或者使用我们提供的安装包。

在“网盘BSP包\01_Tools (工具)\01_Tools.zip”中,VMWare安装软件是:VMware-workstation-full-15.1.0-13591040.exe。

安装方法见下图:

VMWare安装完成后,有两个软件,它们都可以使用,建议使用第2个:

① Vmware Workstation Pro:这是收费的,可以试用30天。

② Vmware Workstation 15 Player:这是免费的。

2.2.2,使用虚拟机打开Ubuntu

解压“网盘BSP包\01_Tools (工具)\100ask-vmware_Ubuntu18.04.7z”,它是Ubuntu映像文件。

注意:

  • 100ask-vmware_Ubuntu18.04不支持win7 32位和Windows xp电脑系统,有疑问请联系技术支持。

  • 100ask-vmware_Ubuntu18.04用到了Virtualization Technology(VT)技术

请提前把电脑的VT打开,不同的电脑打开VT的方法不一样,需要你自己去百度搜索,比如在百度搜“联想电脑 开启 Virtualization Technology”。

① 以管理员身份打开Vmware Workstation 15 player,如下图所示:

② 解压Ubuntu映像文件,然后点击“打开虚拟机”打开前面解压后的ubuntu文件“Ubuntu 18.04_x64.vmx”

如下图所示:

③  打开并点击“播放虚拟机”启动:

如下图所示:

④  第一次启动Ubuntu时,选择默认的“我已复制该虚拟机”,启动后输入密码“123456”回车即可登录:

注意:

虚拟机默认没有开启小键盘,如果使用小键盘输入,请先开启小键盘。

如下图所示:

2.2.3,打开终端

我们要输入各种命令,需要先打开终端。

点击Ubuntu桌面左上角图标进入搜索框,输入“term”可以弹出终端“Terminal”程序,运行它,如下图所示:

然后就可以在里面执行各种命令了。

2.2.4,配置网络

重点来了, 以前我们在VMware中使用桥接,这需要保证Windows、Ubuntu、开发板三者互通,而很多人的电脑有多个网卡,这涉及的网络设置太复杂了。

现在我们使用NAT方式,这样会简单很多。

  1. 设置Ubuntu使用NAT网络

先关闭VMware中的Ubuntu,在VMware界面设置Ubuntu使用NAT,如下图:

然后启动Ubuntu,打开终端,执行ifconfig命令,确定网卡IP,如下图所示,记住这个IP(192.168.75.128,也许你的跟它不一样),后面要用:

2. 设置NAT网络的端口映射

在NAT网络下,外面的设备无法看到Ubuntu,要想开发板能访问到Ubuntu,需要进行端口映射。

先关闭Ubuntu,再关闭VMware,才能设置。

我们需要映射这几个端口:22(ssh端口)、111(rpc端口)、2049(nfs端口)、9999(mountd端口)。这样,开发板访问Windows的这些端口时,才可以访问到Ubuntu。

先使用管理员身份运行“虚拟网络编辑器”,如下图所示:

注意:如果按上述方法找不到虚拟网络编辑器,请按如下方法打开:

然后,如下图设置端口映射:

注意:如果已经添加端口,请先移除再添加,不能重复添加。

设置好后,启动VMware、启动Ubuntu,可以再打开终端,测试网络,如下图所示:

3. 修改Ubuntu的mountd端口

在NAT网络下,要想开发板能通过NFS挂载Ubuntu,需要修改mountd端口为9999,

如果你还不会用vi命令,可以在Ubuntu桌面启动终端,执行以下命令,用GUI工具修改:

sudo  gedit  /etc/services

命令解释:

① 修改/etc/services:

添加2行:

mountd   9999/tcpmountd   9999/udp

如下图操作:

② NFS重启:

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

③ 查看端口:

sudo  rpcinfo  -p

如下图操作:

2.2.5 配置Ubuntu

确保Ubuntu能上网之后,使用下面命令一键配置/初始化开发环境,(此脚本只支持Ubuntu-16.04 /Ubuntu-18.04):

wget --no-check-certificate -O Configuring_ubuntu.sh https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh

然后输入book密码和选择对应的系统,如下图所示:

可能会出错:

执行命令sudo apt-get update(输入book密码123456后回车)解决报错继续安装,稍等10来分钟(具体安装时间与电脑网速有关)即可安装完成:

注意:如果Ubuntu无法上网,请参考后面《2.2.4 配置网络》进行设置。

2.2.6,默认不能使用root用户登录

我在开发过程中从没用过root用户,要使用root权限时可以在命令前加上“sudo”,比如

“sudo  ps -a”。

如果你就是喜欢用root用户,可以按下图操作,先给root用户设置密码,以后就可以用root用户登录了:

2.3 安装Docker并运行我们提供的Ubuntu系统

2.3.1 概念介绍

Docker是一种容器,什么叫容器?在软件开发中,我们经常碰到“这程序在我的电脑上明明没问题啊,怎么在客户的电脑上就有问题?”这是因为各个电脑的软件、硬件不一致。

有没有一种统一的、虚拟的软件硬件平台,在上面开发好软件后发给客户,客户就可以直接在这个平台上运行程序?有的,这就是容器。容器有很多种,Docker是其中比较好的。

跟VMware相比,Docker是一个轻量级的软件,运行速度快。

使用Docker前,需要了解2个概念:Image和container,即镜像、容器。镜像就是一个环境包,这个环境包可以移动到任意的Docker平台里运行。而容器就是镜像的实例,一个镜像可以启动多个容器。

简单地类比,映像就像一个Word软件,这是厂家发布的,你无法修改;容器就是你启动Word软件,可以启动多个Word软件,在每一个Word软件里编写不同的文档。

Docker的核心是“统一文件系统”(union file system),什么意思?

假设你有2个目录:lower和upper,它们可以合并成一个新目录merged,内容如下:

合并的原则是什么?upper目录优先级更高,可以覆盖lower目录,lower目录是只读的,upper目录是可读可写的。这个规则可以解析得更具体:

① 文件名及目录不相同,则 lower 及 upper 目录中的文件及目录按原结构都融入到 merged 目录中;

② 文件名相同,只显示 upper 层的文件:

如上图在 lower 和 upper 目录下及下层目录 dir_A 下都有 same.txt 文件,但在合并到 merged 目录时,则只显示 upper 的,而 lower 的隐藏。

③ 目录名相同, 对目录进行合并成一个目录:

如上图在 lower 及 upper 目录下都有 dir_A 目录,将目录及目录下的所有文件合并到 merged 的 dir_A 目录,目录内如有文件名相同,则同样只显示 upper 的,如上图中 dir_A 目录下的same.txt文件。

读文件时,upper目录中有该文件时就从upper目录读取;否则去lower目录读取。

新建、修改、删除文件时,只会影响到upper目录,lower目录是只读的不受影响。

在Docker中,镜像提供lower层的只读文件;容器提供upper层的可读可写文件,如下:

当我们启动一个容器时,就是在镜像提供的lower文件系统的基础上,创建一个可读可写的upper层文件系统。

我们可以启动多个容器,就是创建多个upper层文件系统,这些容器的upper层文件系统互不影响。

我们提供了镜像文件,里面安装好了各种软件;你需要做的是下载镜像、启动容器,在容器里下载你的程序、编译它们。

参考文章:

https://www.jianshu.com/p/ad19a76cac0chttps://www.cnblogs.com/bethal/p/5942369.html

2.3.2 安装Docker

安装Docker的前提条件:

  1. 在BIOS上启动虚拟化(virtualization )

大部分电脑的BIOS已经启动了虚拟化,可以打开设备管理器确认这点,如下图:

如果上图中虚拟化没有显示为“已启动”,需要重启电脑进入BIOS启动虚拟化。各个电脑的BIOS设置界面可能不一样,下面的步骤只是示例。

① 进入BIOS

开机或重启电脑过程中,在自检画面处反复按F2键(注:部分机型使用Fn+F2)进入BIOS Setup设置界面。

② 找到虚拟化菜单

用键盘的右方向键选中 “Configuration”菜单,然后使用下方向键选中“Intel Virtual Technology”选项并回车,如下图所示:

③ 使能虚拟化

在弹出的菜单中,选择“enable”并回车,如下图所示:

④ 保存

最后按键盘的F10热键(注:部分机型需要配合Fn+F10)调出保存对话框,选择“Yes”保存退出并自动重启电脑,如下图所示:

2. 启动Hyper-V

Hyper-V服务要启动,如果你看到了“适用于Linux的Windows子系统”,也需要把它取消掉。如下图设置,设置好后重启电脑:

3. 关闭防火墙

4. 安装Docker

在Windows上我们使用“Docker Desktop”,可以在官网找到并下载稳定版本(stable),地址如下:

https://www.docker.com/products/docker-desktop

下载后双击安装即可。

5. 可能需要升级Windows

如果你的电脑提示因为Windows版本问题无法安装Docker,那就需要先级Windows,方法如下:

① 下载升级软件

去Windows官网下载:

https://www.microsoft.com/en-us/software-download/windows10

② 双击运行升级软件

升级过程比较久,如果不想升级,那可以放弃Docker转用VMWare。

3.1.1 使用Docker

使用Docker之前,请一定先看看前面的《概念介绍》,了解Docker的镜像、容器的概念。

  1. 运行“Docker Desktop”

双击桌面“Docker Desktop”图标运行,如果一切正常,可以在任务栏看到以下图标:

如果上图中的鲸鱼图标一直在喷水,表示它还在启动中。启动完毕后,鲸鱼图标就不再喷水,你就可以使用Docker了。

2. 设置Docker存储目录

3. 使用MobaXterm打开命令行

这不是必须的。

可以在Windows命令行、PowerShell下执行各种Docker命令,但是这2个工具都太难用了,MobaXterm比它们好用100倍。

启动MobaXterm后,照下图操作新建一个Session:

执行完上述操作后,可以在MobaXterm左侧看到名为“Powershell”的按钮,双击它就可以进入命令行:

4. 下载Ubuntu镜像

在MobaXterm中打开Powershell命令行,执行如下命令:

docker  pull   weidongshan/ubuntu-18.04:version1.0

以后可以执行以下命令查看这些镜像:

docker  image   ls

5. 创建volume

volume用来保存我们的数据,在MobaXterm中打开Powershell命令行,执行如下命令。本命令只需要执行一次:

docker volume create  homedate

6. 创建容器

这个命令只需要执行一次,在MobaXterm中打开Powershell命令行,执行如下命令。

注意:

为了方便大家复制,这些命令写成了多行,把它们复制到记事本,合并成一行,注意空格:

docker run -h 100ask   --name ubuntu-p 1234:1234  -p 22:22 -p 2049:2049  -p 9999:9999-it --privileged=true--mount source=homedate,target=/home/book  -w /home/book--user book  weidongshan/ubuntu-18.04:version1.0  bash

如下图所示:

这时,可以启动另一个Powershell命令行,执行以下命令查看容器:

docker   ps         // 查看“正在运行的容器”docker   ps   -a    // 查看“所有容器”

如下图:

7. 运行、进入、退出、停止容器

如果你重启电脑,或是重启Docker,里面的容器都是“Exited”状态,表示它已经不再运行了,可以执行以下命令启动它:

docker   start   ubuntu

如果容器的状态是“Up”,表示它正在运行,可以执行以下命令停止它:

docker   stop   ubuntu

一个容器启动后,可以执行它里面的命令,使用以下命令进入容器,它的意思是执行ubuntu容器里的bash命令,i表示interactive(交互)、t表示tty(会打开一个交互终端):

docker   exec   -it   ubuntu   bash

在Ubuntu命令行中执行exit即可退出容器。

8. 日常工作

假设你已经创建了容器,那么在日常工作中,你每天打开电脑后,你需要做的就是这个命令:

docker   start   ubuntu                  // 启动容器docker   exec   -it   ubuntu   bash      // 进入容器,开始工作,可以在多个命令行中执行这命令在Ubuntu下,要先执行start 命令,它会启动SSH、NFS等服务在Ubuntu下,执行exit退出容器docker   stop    ubuntu                  // 停止容器,下班回家

如下图所示:

3.1.2 常见问题

  1. 安装问题

Windows 10教育版、家庭版无法安装Docker,请使用VMware吧。

大部分安装问题都是Hyper-V服务无法启动,请参考《2.3.2 安装Docker》里的1、2、3进行设置;如果还是无法安装,可以参考《2.3.2 安装Docker》第6点升级Windows 10。

注意:我曾经在Hyper-V上折腾了一天,网上各种方法可能有用也可能无用,我是升级系统才解决的。

2. 网络问题

如果Windows无法远程登录Ubuntu,使用Filezilla无法连接Ubuntu、开发板无法通过NFS挂载Ubuntu,那么很可能是防火墙的问题,或是端口被占用了。

端口被占用时,很可能是VMware的NAT服务,可以如下关闭:

2.4 使用Ubuntu:远程登录、传文件、NFS

无论你是使用VMware里的Ubuntu,还是使用Docker里的Ubuntu,操作都是一样的。

对于VMware,不需要什么特别的操作。

对于Docker,启动容器并且进入容器后,要执行start命令后,Ubuntu才能提供了SSH、NFS服务。

注意:对于Docker,每次启动容器后,都要进去执行start命令,只需要执行一次start命令。

注意:对于Docker,如果照着本节操作不成功,请确认:

① Ubuntu中是否执行了start命令,可以再执行一次;

② 如果你曾经安装过VMware,请参考上一小节关闭“VMware NAT Service”。

③ 开发板能否PING通Windows,或是Windows能否PING通开发板,只要有一边通就可以。

注意:

对于VMware,如果照着本节操作不成功,请确认:

① 在VMware里是否设置Ubuntu使用了NAT网络;

② 是否使用“虚拟网络编辑器”设置了端口映射。

③ 开发板能否PING通Windows,或是Windows能否PING通开发板,只要有一边通就可以。

2.4.1 验证网络

1.几个概念

IP地址127.0.0.1表示的是“本机”,在Windows上使用127.0.0.1表示的是Windows机器;在开发板上使用127.0.0.1表示的是开发板;在Ubuntu里使用127.0.0.1表示的是Ubuntu。ping 127.0.0.1是永远成功的,它不涉及具体网卡。

在本文中,在Windows上安装VMware或docker,在VMware或Dcoker里运行Ubuntu,Ubuntu的网络都是使用NAT(Network Address Translation,网络地址转换)。

NAT是什么意思?

举个例子,在NAT里,Windows就是一个爱护孩子的父亲,Ubuntu就是受保护的小孩。小孩要买东西,都由他父亲代劳,别人根本不知道这小孩的存在;亲戚想跟小孩谈话,也要经过父亲中转,亲戚不能直接跟小孩接触。

在NAT里,Ubuntu要主动发起网络访问,需要经过Windows代劳,外面的设备只看到Windows发出的网络数据;Windows收到数据的再转发给Ubuntu。

在NAT里,外面的设备比如开发板要访问Ubuntu,也只能通过Windows代劳:开发板是看不到Ubuntu的,开发板是ping不通Ubuntu的。

问题来了,开发板有时候是想访问Windows,有时候是想让Windows代劳去访问Ubuntu,Windows怎么区分?通过端口映射!

比如把Windows的22端口映射到Ubuntu的22端口,当开发板通过端口22(这是SSH端口)访问Windows的IP时,Windows就知道:哦,这22端口数据不是发给我的,是要我转发给Ubuntu的。于是Windows就把数据转发给Ubuntu。这样开发板就可以通过22端口访问Ubuntu了。

再举一个例子,在Windows里通过22端口访问127.0.0.1,就是通过22端口访问Windows自己。但是22端口被映射到Ubuntu去了,所以实际上访问Ubuntu的22端口。

2. 验证Ubuntu的网络

使用NAT时,不需要我们去设置Ubuntu的网络,它会自动获得IP。只要你的Windows电脑可以上网,Ubuntu就可以访问外网。

你可以在Ubuntu中执行“ping news.qq.com”,肯定可以看到有数据返回,同时按键盘“ctrl+c”退出ping命令,如下图:

3. 验证Windows和Ubuntu之间的网络

使用VMware时,在Windows命令行可以ping通Ubuntu的IP;Ubuntu也可以ping通Windows的IP。

使用Docker时,在Windows命令行不可以ping通Ubuntu的IP;Ubuntu可以ping通Windows的IP。

只要有一个方向能ping通,那证明Windows和Ubuntu之间的网络是通的。

① Ubuntu ping Windows:

以Ubuntu ping Windows为例,先确定Windows IP,再在Ubuntu中ping Windows(如果Windows开了防火墙,可以无法ping通Windows,这没关系):

怎么确定Windows的IP?在Powershell命令行或Windows命令行中执行ipconfig,如下图:

这时就可以在Ubuntu命令行中ping windows了,如下:

②  Windows ping Ubuntu:

注意:

使用Docker时,Windows是无法ping通Ubuntu的。如果Windows开了防火墙,Ubuntu也无法ping通Windows,但是没关系,只要Ubuntu能ping通外网就表示网络没问题。

先确定Ubuntu的IP,打开终端,执行ifconfig命令,确定网卡IP,如下图所示,记住这个IP(192.168.75.128,也许你的跟它不一样),后面要用:

启动Windows命令行,ping Ubuntu的IP即可,如下图:

4. 开发板网络验证

以前VMware使用桥接网络时,Windows和Ubuntu是同等的地位,要保证Windows、Ubuntu、开发板三者互通,设置比较复杂。

现在VMware使用NAT,或是使用Docker,只需要保证Windows和开发板二者互通。复杂的情况在于有些Windows电脑有多个网卡,开发板要跟哪一个网卡互PING?列图如下:

① 开发板网线直接连接Windows的有线网卡,或是通过路由器连接到Windows的有线网卡:

注意

非常不建议开发板网线直连Windows。

在上图的连接中,开发板的IP、Windows有线网卡的IP,要处于同一网段。如果开发板、Windows有线网卡无法自动获得IP,需要自己去设置。

② 不使用电脑的有线网卡:在下图的连接中,开发板IP、Windows WIFI网卡的IP,要处于同一网段

验证开发板的网络时:

① 首先根据上面2个图确定开发板要跟Windows的哪一个网卡互通,这个Windows网卡称为网卡A。

② 然后确认一下开发板IP、Windows网卡A IP是否自动获得。如果没有自动获得IP,就需要手工设置IP。

③ 最后再执行ping命令验证:只要有一方能PING通另一方就可以了,不需要两个方向都通。

如果Windows、开发板没有自动获得IP,需要手工设置IP。

怎么手工设置Windows、开发板的IP?

① Windows有多网卡时IP设置原则:

Windows的多个网卡,不能设置为同一网段。

Windows下可能有多个网卡:有线网卡、WIFI网卡。Windows使用WIFI网卡上网时,它的IP一般是自动获得的,我们不能去设置。

如果我们的开发板要跟Windows有线网卡互通,这时要注意:手工设置Windows有线网卡IP时,它不能跟WIFI网卡处于同一网段。比如WIFI网卡是192.168.1.xxx,有线网卡的IP就应该设置为192.168.2.yy。

② 手工设置Windows IP:

如果在Windows命令行下执行ipconfig,发现网卡A没有IP,如下图手工设置:

③ 手工设置开发板IP:

开发板的IP设置方法很简单,打开串口连接开发板,启动开发板进入Linux,执行如下命令即可:

ifconfig   eth0   192.168.1.123

// 假设设置开发板IP为192.168.1.123

注意:这样手工设置的开发板IP在下次重启后无效,又需要再次设置。

设置好后,就可以在Windows命令行ping开发板的IP;或是在开发板串口里ping Windows网卡A的IP。只有有一个方向通,就表示没问题了。如下图所示:

2.4.2 远程登录Ubuntu

安装、运行MobaXterm,如下建立Session:

按上图操作后,在MobaXterm左侧就可以看到这项,双击它就可以登录Ubuntu,然后就可以执行各种Linux命令了:

2.4.3 Windows和Ubuntu传文件

在Filezilla中,左边是Windows文件,右边是Ubuntu的文件,如下图:

2.4.4 ,开发板挂载Ubuntu目录

首先要找出Windows的IP,假设是192.168.1.17(确定IP的方法见后面);然后还要确保开发板能ping通Windows,最后在开发板上就可以执行以下命令挂载NFS了:

mount -t nfs -o nolock,vers=3,port=2049,mountport=9999 192.168.1.17:/home/book/nfs_rootfs /mnt

注意:必须指定port为2049,mountport为9999。

注意:作为初学者,可能你连串口怎么接都还不会,所以这个命令可以先不测试。

怎么确定Windows的IP?在Powershell命令行Window命令行中执行ipconfig,如下图:

全文完,欢迎体验反馈建议,下周将把本教程合并到《完全手册第2版》并开放word版。

欢迎加群与韦老师一对一讨论:

关注公众号了解更多:

文章已于2020-05-22修改

微信扫一扫
关注该公众号

小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题相关推荐

  1. 小学生都能看懂的FFT!!!

    小学生都能看懂的FFT!!! 前言 在创新实践中心偷偷看了一天FFT资料后,我终于看懂了一点.为了给大家提供一份简单易懂的学习资料,同时也方便自己以后复习,我决定动手写这份学习笔记. 食用指南: 本篇 ...

  2. 《小学生都能看懂的生成函数从入门到升天教程》《生成函数全家桶》

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 小学生都能看懂系列 目录 0x00 生成函数 0x10 例题引入 0x11 ExampleA\tt E ...

  3. 《小学生都能看懂的三类斯特林数从入门到升天教程 》(含性质完整证明、斯特林反演、拉赫数)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 真的特别简单,我尽量讲的详细一些,本文包含了几乎所有性质定理证明,老少皆宜 ~ 内容过多,质量过硬,建 ...

  4. 《小学生都能看懂的群论从入门到升天教程》 《群论全家桶》

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 小学生都能看懂系列,小学生:我太难了   群论.置换.Bunrnside引理.Pόlya定理等概念是群 ...

  5. 《小学生都能看懂的快速沃尔什变换从入门到升天教程》(FWT / FMT / FMI)(最最严谨清晰的证明!零基础也能得学会!)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 0x00 卷积 0x01 多项式 0x02 卷积的定义 0x03 卷积的基本性质 0x04 位运 ...

  6. 什么是分布式数据库?小学生都能看懂。

    自从互联网进入了 web2.0 时代以来,数据库作为核心的底层基础设施软件也经历了蓬勃的发展期,从早期的单机关系型数据库到NoSQL 再到如今的 NewSQL,数据库领域不管是技术还是场景都发生了巨大 ...

  7. nxn次方求和函数_算法|小学生都能看懂的生成函数入门教程

    作者:自为风月马前卒 链接:https://ac.nowcoder.com/discuss/179728 来源:牛客网 前言 第一次当标题党真是有点不适应 现在网上讲生成函数的教程大多都是从 开始,但 ...

  8. TCP 的 3 次握手 4 次挥手,小学生都能看懂

    前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻夜未眠!想着妹子是不是对我有感觉呢?不然怎么会突然给我点赞呢?要不趁机表个白? 于是第二天我在心中模拟了多次表白的话语,连呼 ...

  9. 大白话解释:到底什么是人工智能(AI),小学生都能看懂

    现在人工智能(AI)一词满天飞,上到国家和地方ZF的科技创新扶持政策,下到大小公司的各种智能XXX.智慧XXX产品或解决方案,似乎不加上人工智能,就显得没有技术含量.不够高端.反正人工智能一词有点泛滥 ...

最新文章

  1. 网易伏羲论文入选 CVPR:AI 感知表情能力或实现巨大突破!
  2. tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率 损失率,便于判断模型的训练效果:是过拟合还是欠拟合(过拟合)
  3. DAY2-python基础1
  4. Django 框架14: 缓存
  5. libcurl linux 静态链接库_Linux学习:Makefile 模板(动态库、静态库、可执行程序)...
  6. Angular应用里的@Input和@Output注解使用方法介绍
  7. 4thweek.P_problemB .poj1505copy books.二分法
  8. deepin linux 命令行_5 个面向新手的 Linux 发行版
  9. 计算机硬件英语单词有哪些,计算机硬件英语词汇
  10. E-prime主要常见问题及matlab、python打marker方式
  11. grads插值_Grads画等值线(一)-----心得感言
  12. 用python暴力破解rar加密文件(经过测试)
  13. echarts配置及专业k线作图工具
  14. Linux防火墙入门:简介(转)
  15. 防疫新装备友倍康血氧仪
  16. Python:读文件和写文件
  17. android vitamio 函数,如何在Android Studio中集成Vitamio?
  18. python机器人编程与操作_机器人Python极客编程入门与实战 PDF 完整目录版
  19. java枚举报错_java枚举类
  20. 什么是长连接和短连接?

热门文章

  1. 我的Crystal xcelsius之旅
  2. Arcgis使用教程(十)ARCGIS地图制图之经纬网格添加
  3. U-Boot启动过程完全分析(转)
  4. CloudFlare的Worker免费部署服务
  5. mongoose简单了解
  6. adminLTE框架chart图表的使用
  7. idea java: 错误: 不支持发行版本 17
  8. 它来了它来了!2020深度学习硬核技术干货集锦!
  9. 【高中数学】频率分布表和频率分布直方图
  10. 用U盘做系统安装盘的极简方法