一. 主机与虚拟机无法ping通问题
在嵌入式开发中,经过会涉及网络方面的问题。最常用到的是开发板在 虚拟机(ubuntu)通过NFS服务挂载到ubuntu中,这里就涉及网络是否可以ping通问题。
开发板 ping 通 ubuntu虚拟机系统的前提,首先保证主机可以 ping 通 ubuntu虚拟机系统。
本文主要来总结一下,造成主机与虚拟机之间的网络无法 ping通的可能因素。
二. 问题解决方法
1. 环境
物理连接:开发板需要上电,并且网线需要将 开发板的网口连接到笔记本电脑上。
主机设置了固定的 IP地址,ubuntu虚拟机系统也设置了固定的 IP地址。同时,主机与 ubuntu虚拟机的IP地址都属于同一网段(这里的IP地址包括:IP地址+子网掩码+网关)。
主机 ping不通 ubuntu虚拟机,ubuntu虚拟机也 ping 不通 主机。
主机 IP地址设置如下:
确认主机设置的 IP地址,操作如下:
搜索栏输入 cmd,调出Windows10的控制台,控制台输入 ipconfig命令,如下所示:
C:\Users\WangTian\ipconfigWindows IP 配置以太网适配器 以太网 2 连接特定的 DNS 后缀 . . . . . . . : 本地链接IPv6 地址 . . . . . . . . : fe80::2cf5:bfcd:8183:de88%44 IPv4 地址. . . . . . . . . . . . : 192.168.1.65 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关 . . . . . . . . . . . . : 192.168.1.1 . . .
ubuntu虚拟机的IP地址设置如下:
确认ubuntu设置好的 IP地址,操作如下:
软硬件的环境配置如上所述,但是,主机与 ubuntu虚拟机系统相互都 ping不通,即主机ping不通 ubuntu虚拟机,ubuntu虚拟机也无法 ping 通主机。
2. 主机与 ubuntu 无法 ping通
造成主机与 ubuntu虚拟机系统的网络无法 ping通的原因可能有以下几种。下面具体进行说明。
(1) 主机没有关闭防火墙
windows10 的 搜索栏(在电脑的左下角位置)输入 "防火墙"即可打开防火墙设置。这里我关闭了所有网络的防火墙开关。
(2) 虚拟机的网卡没有设置正确
打开虚拟机,即 Vmware-Workstation。首先,关闭 ubuntu系统。
关闭剪头所指的ubuntu系统,如下所示:
打开 "编译"--->"虚拟网络编辑器",点击 "更改设置"。
操作如下所示:
打开 "更改设置" 选项后,这时进入到一个新的网络配置界面,如果所选择的 "桥接模式"。
那么需要选择桥接模式下的网卡。网卡名称与主机所用的有线网卡名称一致。可以通过查看主机的有线网卡名来确认。
所以,这里选择与主机网卡名一致。如下所示:
如果虚拟机所用的到 "NAT模式",设置"NAT模式"下的 IP地址。
选中 "VMnet8 NAT模式",设置下图红色框中的 "子网IP "与 "子网掩码",子网IP的网段必须与 ubuntu系统(或主机)同一网段。
再设置 下图剪头方向的 "NAT设置"中的IP地址。
如下所示:
"NAT设置" 界面设置 "网关IP"。IP地址也需要与ubuntu同一网段。设置如下:
确定 ubuntu系统所用网络模式
打开虚拟机,打开最上面的菜单栏中的 "虚拟机"--->"设置"。
打开 "网络适配器" 选项,可以看到下图红色框中的网络连接模式。可以选择 "桥接模式"或 "NAT模式"。如下所示:
总结
Ubuntu的主要三种网络配置:
(1)桥接模式:Ubuntu和主机各有一个IP地址。(重点)
(2)NAT模式:Ubuntu和主机共享IP地址。
(3)主机模式:Ubuntu只能与主机进行通信。
ubuntu 虚拟机首选 "桥接模式",经过测试。在 ubuntu的"NAT模式"下,开发板在 ping ubuntu系统时有时会失败。