最近在开发过程中遇到这么一个场景:

  • 老王只有一台 Windows 操作系统的台式机,要对一款嵌入式 Linux 的产品进行开发与调试,需要在 Ubuntu 系统下进行软件编译。
  • 由于公司的网络资源紧张,一个员工只分配一个固定的 IP 地址,但是要调试的嵌入式 Linux 产品是预留了一个 IP 地址的。
  • 为了提升调试效率,嵌入式 Linux 的这款产品需要用 NFS 服务直接挂载 Ubuntu 系统的指定目录,从而避免在宿主机与嵌入式设备之间进行大量的文件拷贝。

针对场景的三个要求,选择实现方案如下:

  • 公司没有 Ubuntu 的服务器,那就在 Windows 操作系统上安装 VMware Ubuntu虚拟机。
  • 公司局域网 IP 地址紧缺,台式机有 IP 地址,要调试的嵌入式 Linux 设备也有 IP 地址,但是 Ubuntu 虚拟机没有可用的局域网 IP 了。所以,只能将虚拟机配置为 NAT 模式。
  • 嵌入式设备需要通过 NFS 挂载 Ubuntu 系统的指定目录,但是 NAT 模式下,嵌入式 Linux 设备没办法直接对虚拟机进行网络访问啊,这咋办?简单,把 Ubuntu 虚拟机上 NFS 相关的网络端口映射到 Windows 台式机上就可以了。

首先,确定 VMware 虚拟机处于 NAT 模式。

第二,确定虚拟机的 IP 地址。

linux@linux-virtual-machine:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.233.142  netmask 255.255.255.0  broadcast 192.168.233.255inet6 fe80::c1c8:818d:cc84:c2d3  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:55:23:85  txqueuelen 1000  (Ethernet)RX packets 73  bytes 8393 (8.3 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 107  bytes 10855 (10.8 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 126  bytes 10034 (10.0 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 126  bytes 10034 (10.0 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

第三,确定 NFS 服务相关的主要端口(portmapper,nfs,mountd)。

linux@linux-virtual-machine:~$ rpcinfo -p localhostprogram vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100005    1   udp  40001  mountd100005    1   tcp  40001  mountd100005    2   udp  40001  mountd100005    2   tcp  40001  mountd100005    3   udp  40001  mountd100005    3   tcp  40001  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049100003    3   udp   2049  nfs100227    3   udp   2049100021    1   udp  40002  nlockmgr100021    3   udp  40002  nlockmgr100021    4   udp  40002  nlockmgr100021    1   tcp  40002  nlockmgr100021    3   tcp  40002  nlockmgr100021    4   tcp  40002  nlockmgr

可以看到,portmapper 端口号是 111,nfs 端口号是 2049,mountd 的端口号是 40001。

注意:portmapper(111) 和 nfs(2049) 两个端口号是固定的,mountd 的端口号随机的。为了映射方便,老王将其配置为固定的 40001端口了(配置方法可以参考之前的文章:Ubuntu 18.04 固定 NFS 端口)。

第四,运行“虚拟网络编辑器“,以下两种方法可以任选一种。

第五,添加端口映射(以 111 端口为例,依次完成 2049 和 40001 的端口映射)

OK,到这一步,端口映射的步骤就配置完了。嵌入式 Linux 设备端在执行 mount 命令时,只要指定老王台式机的 IP 地址和 mountd 端口号,就可以挂载虚拟机上了目录了。

VMware NAT 模式配置端口映射相关推荐

  1. vmware nat模式原理探究,实现虚拟机跨网段管理

    vmware nat模式原理探究: 理解nat模式,我们能更加了解主机与虚拟机之间如何通信,以及虚拟机如何实现上网. 以及便于我们分析虚拟机与主机无法通信和无法上外网的问题. 下面通过实战:虚拟网络拓 ...

  2. 通过 SSH 连接到 VMware NAT 模式下的 Ubuntu 虚拟机环境

    VMware NAT 模式 可以设置主机与虚拟机环境IP.端口的映射,虚拟环境中 SSH 使用 22 端口,只需要将宿主机设置成转发到虚拟机环境的 22 端口. 具体步骤: 打开 VMware 菜单- ...

  3. linux重启网络服务_vm上linux虚拟机NAT模式配置

    分享一篇之前搭建虚拟机过程中整理的linux虚拟机nat模式配置. 1.修改虚拟机的网络配置 右键点击虚拟机,然后点击settings,打开虚拟机的设置界面,然后点击Network Adapter,将 ...

  4. 公网与私网的区别 ?如何进行通信?(NAT技术,端口映射技术,)

    目录 一, 公网与私网介绍两者间的联系 二,公网ip与私有ip的区别 三,私有网络如何访问公有网络? 1,端口映射技术 2,nat技术 (网络地址转换 ) 五,VPN技术 六,总结概述 一, 公网与私 ...

  5. Virtualbox使用NAT模式, 并用端口转发实现主机访问虚拟机

    Virtualbox使用NAT模式, 并用端口转发实现主机访问虚拟机 VirtualBox的四种连接方式 背景 如何设置NAT模式 VirtualBox的四种连接方式 NAT 网络地址转换模式(Net ...

  6. NAT技术与端口映射使用方法

    静态NAT: 本地地址与全局地址(公网)之间一对一映射,即一台主机对应一个公网IP. #ip nat inside source static 192.168.1.10  188.188.90.18 ...

  7. LVS NAT模式配置实践

    1. LVS单网卡配置 注:实际应用中LVS使用双网卡,这里仅做演示用.架构图如下: 单网卡LVS 1.1 机器信息 LVS LVS:eth0 10.10.1.100(VIP) Real Server ...

  8. vm虚拟机nat模式配置

    痛点: 为了解决虚拟机与板子网络的调试的问题,我之前一直用桥接,如果虚拟机想上网就桥接到无线网卡,如果想连接板子,就桥接到有线网卡,麻烦,需要来回切换,还有就是不插板子的情况下和没有无线网的情况下,本 ...

  9. CentOS虚拟网络编辑器中VMnet8的NAT模式配置中将主机虚拟适配器连接到此网络一直无法配置成功

    CentOS虚拟网络编辑器中VMnet8的NAT模式配置中,将主机虚拟适配器连接到此网络选项勾选之后,点击应用或确定按钮,一直加载显示安装虚拟网络适配器,但就是不成功,原因是注册表项没有清理干净,造成 ...

最新文章

  1. 消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法
  2. ul li设置横排,并除去li前的圆点
  3. 《机器学习实战》朴素贝叶斯
  4. 【maven插件】maven-resources-plugin 启用 Filter 时,需要过滤的文件和不需要过滤的文件混在一起该怎么办?
  5. 高德地图显示多个气泡_CarPlay分屏功能“硬核”上线 高德地图用户可第一时间尝鲜...
  6. 【Java NIO】一文了解NIO
  7. linux oracle swd.oui,centos7安装oracle11g报错,请问怎么解?
  8. python中的集合set
  9. 补充 返回泛型指定类的方法 0106
  10. 22 省遭受重大洪灾,机器学习未来能预报么?
  11. java equals和==以及hashmap原理和区别
  12. 谭浩强C语言练习题及详细答案
  13. 视频教程-19年录制Zookeeper、Dubbo视频教程 微服务教程分布式教程 SpringBoot教程整合-Java
  14. foobar 2000 介绍
  15. .NET(C#、VB)APP开发——Smobiler平台控件介绍:AliPay组件
  16. 腾讯文档快捷键在哪里
  17. Hello World~Miracle is coming!!!
  18. 综述:基于深度学习的文本分类 --《Deep Learning Based Text Classification: A Comprehensive Review》总结(二)
  19. 微信设置文字大小影响网页布局
  20. 两个各四只青蛙过河java_Java实现 LeetCode 403 青蛙过河

热门文章

  1. 阿里内部隐藏「P」序列职级,「高P」光环或成过去式
  2. web前端布局练手项目
  3. MAC文件图标自动排列+取消自动排列
  4. ts中any 、unKnown的区别
  5. 【日常积累】实验室作业Socket实现多个客户端相互通信。
  6. java pdf工具类_Java PDF工具类(一)| 使用 itextpdf 根据PDF模板生成PDF(文字和图片)...
  7. mac 设置mysql登录快捷键_Mac ox mysql启动登录和环境变量配置
  8. 网络安全必备的五款免费网络漏洞扫描器
  9. UCOSIII系统任务
  10. python字符串连接操作-Python字符串拼接