当前位置: 首页 > article >正文

局域网设备访问虚拟机 挂载NFS

目录

  • 引言:
  • 网络IP问题
    • 配置虚拟机网络
      • 有线网络:
      • 无线网络:
  • NFS文件挂载
    • 服务端配置
    • 客户端连接

引言:

需求:局域网下树莓派设备想要访问电脑主机上的虚拟机。这样可以通过nfs挂载网络设备,有利于交叉编译环境调试等。
问题:虚拟机网段和外部局域网在同一个网段,虚拟机通过主机访问外部网络和设备。所以虚拟机起始可以ping通局域网下树莓派,但是树莓派只能访问电脑主机,无法访问虚拟机,不在一个网段。
解决思路:让虚拟机能和外部网络在同一个局域网段。

网上也有一些解决方法,但是对电脑接线描述不清楚,虚拟机网络配置也模糊,此外还有其他解决方法是类似虚拟机设置两个网卡,通过主机usb网卡连接树莓派,实现通讯等等,太过麻烦。
桥接模式似乎限制需要使用网线进行连接?

想要最简单的方法,设备都通过无线连接到局域网段,设备IP网段相同,进行通讯。

网络IP问题

主机有多个适配器,所以有多个网段IP,
外部局域网:192.168.1.100:可以访问192.168.1.X,子网网段。
内部虚拟机:192.168.171.1:可以访问192.168.171.X,子网网段

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::35a9:3a82:8857:867b%9
   IPv4 地址 . . . . . . . . . . . . : 192.168.171.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . : DHCP HOST
   本地链接 IPv6 地址. . . . . . . . : fe80::e99e:52c:361:44f1%12
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.1.1

显然主机电脑是通过两个不同网段访问子网,所以他可以ping通:
局域网设备树莓派:IP:192.168.1.102
虚拟机设备: IP:192.168.171.175

虚拟机(192.168.171.175)可以ping通树莓派(192.168.1.102),自然是借助了主机,应该是存在机制,虚拟机访问外部网络和设备时,是借助主机转发的,所以主机能访问的,虚拟机自然也能访问。
树莓派(192.168.1.102)不能ping通虚拟机(192.168.171.175),树莓派只能找到子网中的主机(192.168.1.100),而不知道虚拟机是谁也不知道在哪。

配置虚拟机网络

有线网络:

最佳,有条件的直接用有线网络最佳
首先是虚拟机配置中,网络适配器选择桥接模式,且需要勾选赋值物理网络连接状态
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/12e93371780441b0ad43a3d2723d40cb.png
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
取消本地DHCP服务
设置子网IP为192.168.1.0,配置网段
注意这里配置网段要和你的外部局域网段相同,也就是看你的外部局域网是咋样的
即看你的电脑主机无线局域网适配器 WLAN:中的 IPv4 地址,前三个字段,为192.168.1就填这个
其他的类似,填入192.168.X.0

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . : DHCP HOST
   本地链接 IPv6 地址. . . . . . . . : fe80::e99e:52c:361:44f1%12
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.1.1

注意这里的VMnet0应该是有线网卡的,这里是图片有误,实际上不需要你去选择,他会自动选到有线网卡,当然你也可以点进去,选择对应的有线网卡。

配置好后,应用,确定

启动虚拟机
在这里插入图片描述
能看到这个,表示有网络连接成功,那基本就没问题了。
这样虚拟机的ip会分配到192.168.1.X网段,我的分配的是192.168.1.128.

这样就可以实现树莓派ping通虚拟机。可以实现后面的nfs网络文件挂载了。(自己ping一下确认一下,主要是局域网设备ping虚拟机)

无线网络:

有线太苛刻了,可以无线网络吗,理论上可以。但实际可能有点问题,,,
补充:似乎需要先通过有线网,连接一次成功后才能实现。,很有可能前面的有线操作就是为现在的无线操作做铺垫
2025-03-22 20:19:09:补充:目前来看,通过前面的有线配置完后,可以使用有线一段时间,可能是虚拟机休眠,或者一段时间后,这个连接会失效,不知道啥原因,目前也没其他解决方法,所以,有线连接是最可靠的。

首先是虚拟机配置中,网络适配器选择桥接模式,且需要勾选赋值物理网络连接状态。如果前面做了这个就不需要修改。

修改网络编辑器

在这里插入图片描述
这里选用无线网卡 Wireless 字样的无线网卡
然后确定即可。

这里无线网络其实有些问题的,如果你没启用DHCP,很可能就没用网络连接了。直接寄掉。
我后面能成功感觉是因为先测试了,前面的有线,后面拔掉有线用无线连接的。
感觉有些玄学之类的,但是我确实用的无线,可以实现ping通。
反正有些问题,最佳是有线连接,另外看后面能不能试试,弄一个确实可行的无线方案。

NFS文件挂载

前面的通讯都是铺垫,为了让我的树莓派能挂载虚拟机上共享的文件夹。

服务端配置

谁来共享文件夹,谁是服务端(虚拟机)。

1、首先需要在虚拟机上安装服务端

sudo apt install nfs-kernel-server

2、建立共享目录,配置权限

mkdir /home/your-name/nfs_rootfs
chmod 777 /home/your-name/nfs_rootfs

具体权限配置自己决定,一般自己调试用,直接拉满即可。777,表示 u g o 即所有者,所有组,其他人,都有读写执行权限

3、配置exportfs
需要用到vi

sudo vi  /etc/exports

自己了解vi的使用,vim ,nano也可以
找到空白行,先编辑好内容,再复制进去即可。
加入下面一行内容即可,注意内容需要根据自己的服务器名,和分享的局域网段IP匹配。

/home/your_username/nfs_rootfs 192.168.1.0/24(rw,sync,no_subtree_check)

/home/your_username/nfs_rootfs:分享的文件夹
192.168.1.0/24:分享的网段,表示这个子网段都可以,也可以指定ip如 192.168.1.100
(rw,sync,no_subtree_check) ,一些配置,一样即可
rw表示读写权限,ro只读
sync,同步写入,客户端写入数据,在服务端同步写入
no_subtree_check 禁用子树检查,提升性能,但可能降低安全性(仅在共享目录是完整子目录时安全)。

4.加载exportfs 并重启服务

sudo exportfs -ra
sudo systemctl restart nfs-server

第一行是加载写入的配置,第二行重启服务

客户端连接

谁要访问别人的文件,就是客户端(树莓派)、

1、安装客户端

sudo apt-get install nfs-common

2、创建挂载目录

sudo mkdir /mnt/nfs_comp

或者直接挂载到mnt就不用创建了。反正没其他挂载设备了,当然不建议

3、启用挂载

sudo mount -t nfs -o nolock,vers=3 192.168.1.128:/home/comp/nfs_rootfs /mnt/nfs_comp 

这样就可以实现挂载了,对应/mnt/nfs_comp 目录下就有对应的文件,比如编译好的可执行文件,驱动,内核之类的。
如下:

berry@berry:~ $ sudo mount -t nfs -o nolock,vers=3 192.168.1.128:/home/comp/nfs_rootfs /mnt/nfs_comp
berry@berry:~ $ ls /mnt/nfs_comp/
100ask_imx6ull-14x14.dtb  lib  zImage

mount 挂载命令,
-t nfs 挂载类型为nfs,
-o nolock,禁用文件锁机制(NFS locking),避免因客户端/服务器未运行 rpc.statd 服务导致的挂载失败。常用于旧版 NFS 或简化测试环境。
vers=3 nfs版本,指定使用 NFS 版本 3。如果服务器仅支持 NFSv4,需改为 vers=4,可能存在版本不匹配问题,192.168.1.128:/home/comp/nfs_rootfs网络共享文件夹位置,/mnt/nfs_comp 挂载目录

4、不用了,卸载,取消挂载

sudo umount /mnt/nfs_comp  

欧克,以上就是全部内容了,有什么疑问欢迎评论区留言。
求关、点赞,收藏。 😊


http://www.kler.cn/a/597939.html

相关文章:

  • AI 生成 PPT 网站介绍与优缺点分析
  • 【Golang】第七弹----map
  • 时态--01--⼀般现在时
  • 深度剖析:复制带随机指针的链表算法实现
  • 数据库MVCC详解
  • python 数据可视化mayavi库安装与使用
  • leetcode_双指针 15.三数之和
  • 【js逆向】某酒店模拟登录
  • Python 正则表达式超详细解析:从基础到精通
  • 【漫话机器学习系列】157.饱和(Saturation)
  • ffmpeg介绍(一)——解封装
  • 【跟着灵神刷力扣】定长滑动窗口
  • 【基于ROS的A*算法实现路径规划】A* | ROS | 路径规划 | Python
  • 通往自主智能之路:探索自我成长的AI
  • Linux信号的诞生与归宿:内核如何管理信号的生成、阻塞和递达?
  • 虚拟机安装centos7
  • 【RAGFlow】全由国内镜像源搭建docker版
  • SAP-ABAP:SAP BW模块架构与实战应用详解
  • 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的数据验证:使用 Hibernate Validator
  • 蓝桥杯备考:动态规划之最长上升子序列打鼹鼠