使用 NAT 配置 Ubuntu 网络

使用 NAT 配置 Ubuntu 网络

一、配置网络

配置网络是为了方便后续调试开发板系统或者应用程序时使用 tftp 协议、 nfs 协议等拷贝文件或者设置文件系统启动方式为 nfs 挂载启动。
以前我们在 VMware 中使用桥接,这需要保证 Windows、 Ubuntu、开发板三者互通,而很多人的电脑有多个网卡,这涉及的网络设置太复杂了。
现在我们使用 NAT 方式,这样会简单很多。

1.1 设置 Ubuntu 使用 NAT 网络

NAT 是什么意思? Network Address Translation,网络地址转换。
在 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 了。
先关闭 VMware 中的 Ubuntu,在 VMware 界面设置 Ubuntu 使用 NAT,如下图:
在这里插入图片描述
然后启动 Ubuntu,打开终端,执行 ifconfig 命令,确定网卡 IP。

1.2 设置 NAT 网络的端口映射

在 NAT 网络下,外面的设备无法看到 Ubuntu,要想开发板能访问到 Ubuntu,需要进行端口映射。
先关闭 Ubuntu,再关闭 VMware,才能设置。
我们需要映射这几个端口:
在这里插入图片描述
这样,开发板访问 Windows 的这些端口时,才可以访问到 Ubuntu。
先使用管理员身份运行“虚拟网络编辑器”,如下图所示:
在这里插入图片描述
然后,如下图设置端口映射:
在这里插入图片描述
注意: 当 ubuntu 的 IP 发生变化,这里的 6.Ubuntu 的 IP 也需要做对应修改。
设置好后,启动 VMware、启动 Ubuntu,可以再打开终端,测试网络,如下图所示:
在这里插入图片描述
1.3 修改 Ubuntu 的 mountd 端口

在 NAT 网络下,要想开发板能通过 NFS 挂载 Ubuntu,需要修改 mountd 端口为 9999
(作为网络操作系统,Linux主要用作网络服务器,提供Web)、FTP、电子邮件等Internet网络服务。Linux使用Internet网络服务文件/etc/services来定义网络服务名和它们对应使用的端口号及协议。Internet服务一般都是通过指定的端口号来标识的,例如Web服务运行在80端口。)
sudo gedit /etc/services
命令解释:
① 修改/etc/services:
添加 2 行:
mountd 9999/tcp
mountd 9999/udp
在这里插入图片描述
② NFS 重启:
sudo /etc/init.d/nfs-kernel-server restart
③ 查看端口:
sudo rpcinfo -p

参考如下图操作
在这里插入图片描述
1.4 Ubuntu 的 IP 可能突然变化

你用着用着,某次重新开机后,发现无法访问 Ubuntu 了。 可能是 Ubuntu 的 ip 变了,这就需要修改端口映射中的虚拟机 IP。
先确定 Ubuntu 的 IP,再重新设置 VMware 中的 NAT。

  1. 确定 Ubuntu 的新 IP
    启 动 Ubuntu ,打开终端,执行 ifconfig 命令,确定网卡 IP
  2. 修改 VMware NAT
    先打开虚拉网络编辑器
    然后修改 NAT 中所有“端口转发”项目中的虚拟机 IP,改为 Ubuntu 的新 IP,如下:
    在这里插入图片描述

二、验证网络

注意:如果照着本节操作不成功,请确认:
① 在 VMware 里是否设置 Ubuntu 使用了 NAT 网络;
② 是否使用“虚拟网络编辑器”设置了端口映射。
③ 开发板能否 PING 通 Windows,或是 Windows 能否 PING 通开发板,只要有一边通就可以。

2.1 验证 Ubuntu 的网络

使用 NAT 时,不需要我们去设置 Ubuntu 的网络,它会自动获得 IP。只要你的 Windows 电脑可以上网,Ubuntu 就可以访问外网。
你可以在 Ubuntu 中执行“ ping news.qq.com”,肯定可以看到有数据返回,同时按键盘“ctrl+c” 退出ping 命令,如下图。
在这里插入图片描述
2.2 验证 Windows 和 Ubuntu 之间的网络

使用 VMware 时,在 Windows 命令行可以 ping 通 Ubuntu 的 IP; Ubuntu 也可以 ping 通 Windows 的 IP。只要有一个方向能 ping 通,那证明 Windows 和 Ubuntu 之间的网络是通的。
怎么确定 Windows 的 IP?在 Powershell 命令行或 Windows 命令行中执行 ipconfig。也可以在命令提示符中执行ipconfig。

三、常见问题

3.1 Ubuntu 不能 ping 通外网
如果能“ ping 8.8.8.8” 成功,但是“ ping news.qq.com” 失败,这就是 DNS 的问题。
一般是不需要手
工设置 DNS 的,但是如果有此现象,就需要设置 DNS。
修改 Ubuntu 的/etc/resolv.conf 文件,如下:

nameserver 127.0.0.1(或其他 IP)
改为:
nameserver 8.8.8.8

3.2 Ubuntu 或开发板无法 PING 通 Windows
无论是 VMware 还是 Docker 中的 Ubuntu,如果无法 ping 通 Windows,基本上是 Windows 安装了杀毒软
件或是打开了防火墙。
首先关闭杀毒软件,然后关闭防火墙。

3.3 VMwre 中的 Ubuntu 网络不可用
如果关闭 Windows 防火墙, Ubuntu 还是有网络问题,比如无法获得 IP、无法上网、无法 PING 通 Windows。那么确认一下 VMware 服务是否启动,如下图所示:
在这里插入图片描述
然后关闭 Ubuntu、关闭 VMware、重启 VMware、重启 Ubuntu。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值