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

Ubuntu 22.04上安装NFS服务

1、使用如下命令安装NFS服务端软件:

# 在主机上运行以下命令
orangepi@orangepi5:~$ sudo  apt install nfs-server

2、在配置NFS时需要使用用户uid和组gid,可以使用id命令查看

# 在主机上运行id命令
orangepi@orangepi5:~$ id
uid=1000(orangepi) gid=1000(orangepi) groups=1000(orangepi),5(tty),6(disk),20(dialout),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(systemd-journal),106(input),111(netdev),122(bluetooth),999(docker)

可以发现主机用户的uid和gid均为1000,在下面配置文件中会使用到。

3、配置NFS

安装NFS服务后,会新增一个/etc/exports文件(即/etc/目录下名为exports的文件),NFS服务根据它的配置来运行。

用vim打开/etc/exports文件命令如下:

orangepi@orangepi5:~$ sudo vim /etc/exports

在/etc/exports文件末尾添加如下语句并且保存:

# 以下内容添加到/etc/exports文件末尾,IP地址和uid,guid需要根据自己的环境仅限修改
/home/orangepi/nfs 192.168.50.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000,no_subtree_check)

以上内容注释:

  • /home/orangepi/nfs:需要共享的主机目录,注意使用空格与后面的配置隔开。
  • 192.168.50.0/24:配置哪个网段或主机可以访问,其中/24是掩码,此处表示24个1,即掩码是255.255.255.0。结合前面192.168.50.0表示此处配置IP为192.168.50.*的主机均可以访问该目录,即192.168.50.*网段局域网上的所有主机。
  • rw:表示客户机的权限,rw表示可读写。具体的授权还受到文件系统的rwx及用户身份影响。
  • sync:资料同步写入到内存与磁盘中。
  • anonuid=1000:将客户机上的用户映射成指定的本地用户ID的用户,此处1000是主机oprangepi用户的uid,此处请根据具体的主机用户uid进行配置。
  • anongid=100:将客户机上的用户映射成属于指定的本地用户组ID,此处1000是主机orangepi用户组gid。此处请根据具体的主机用户组gid进行配置。
  • no_subtree_check:不检查子目录权限,默认配置。

本配置中的anonuid和anongid把客户机的用户映射成本地uid/gid为1000的用户,即主机orangepi,那么当在客户机上使用与主机不同的用户访问NFS共享目录时,都会有orangepi的权限。

4、创建共享目录

为了确保共享的配置有效,还需要创建共享的目录,本例中为/home/orangepi/workdir。

# 在主机上运行以下命令
orangepi@orangepi5:~$ mkdir /home/orangepi/nfs

5、更新exports配置

修改完/etc/exports文件并且保存后,可使用exportfs命令更新配置:

# 在主机上运行以下命令
orangepi@orangepi5:~$ sudo exportfs -arv
[sudo] password for orangepi:
exporting 192.168.50.0/24:/home/orangepi/nfs

该命令的参数说明:

  • -a:全部mount或umount文件/etc/exports中的内容
  • -r:重新mount文件/etc/exports中的共享内容。
  • -u:umount目录。
  • -v:在exportfs的时候,将详细的信息输出到屏幕上。

6、查看NFS共享情况

使用showmount -e可查看当前NFS服务器的加载情况。

orangepi@orangepi5:~$ showmount -e
Export list for orangepi5:
/home/orangepi/nfs 192.168.50.0/24

7、安装NFS客户端

主机开启NFS服务后,在同一局域网内的另一台主机上安装NFS客户端,执行以下命令安装NFS客户端命令:

root@lub:/home/cat# sudo apt-get install nfs-common

客户主机上查看NFS共享目录,在客户端上执行"showmount -e 'NFS服务器IP'"

cat@lub:~$ sudo showmount -e 192.168.50.184
Export list for 192.168.50.184:
/home/orangepi/nfs 192.168.50.0/24

8、临时挂载NFS文件系统

使用mount命令挂载NFS服务器的共享目录到客户机的/mnt/nfs目录下

cat@lub:~$ sudo mount -t nfs 192.168.50.184:/home/orangepi/nfs /mnt/nfs

以上参数解释:

  • -t nfs:指定挂载的文件系统格式为nfs。
  • 192.168.50.184:指定NFS服务器的IP地址。
  • /home/orangepi/nfs:指定NFS服务器的共享目录。
  • /mnt/nfs:本地挂载,即要把NFS服务器的共享目录映射到客户机的/mnt/nfs目录下。

9、测试NFS共享目录

挂载成功后,在NFS服务器的共享目录下,输入"echo 'hello orangepi' > cat.txt"命令,则在共享目录下创建了一个名为cat.txt的文件:

cat@lub:/mnt$ cd nfs/
cat@lub:/mnt/nfs$ ls
cat@lub:/mnt/nfs$ pwd
/mnt/nfs
cat@lub:/mnt/nfs$ echo "hello orangepi">cat.txt
cat@lub:/mnt/nfs$ cat cat.txt
hello orangepi

在主机的/home/orangepi/nfs下进行查看,可以发现NFS服务器的共享目录中cat.txt文件:

orangepi@orangepi5:~$ cd /home/orangepi/nfs/
orangepi@orangepi5:~/nfs$ pwd
/home/orangepi/nfs
orangepi@orangepi5:~/nfs$ ls
cat.txt
orangepi@orangepi5:~/nfs$ cat cat.txt
hello orangepi

10、取消挂载

在客户机上使用,使用umount命令

cat@lub:/mnt$ sudo umount nfs
cat@lub:/mnt$ ls nfs/
cat@lub:/mnt$

使用该命令时要取消挂载的目录作为参数,没有输出表示正常执行。如果在当前挂载的目录进行umount操作,会提示"device is busy"。建议取消挂载时,先切换到目录,再进行umount。

http://www.lryc.cn/news/94168.html

相关文章:

  • 数据结构--双链表
  • javassist 动态修改 jar 包中 class
  • 什么是CC攻击?
  • ​LeetCode解法汇总253. 重构 2 行二进制矩阵
  • ChatGPT实战:生成演讲稿
  • 在线搭建K8S,kubernetes集群v1.23.9,docker支持的最后一个版本
  • http自动跳转https的配置方法
  • 重新初始化k8s集群
  • JetBrains编程IDE将具备Ai助手功能,或将提高开发速度
  • 【网络原理】TCP/IP协议五层模型
  • 【备战秋招】每日一题:2023.05.10-华为OD机试(第二题)-解密
  • 【华为OD机试】矩阵最大值(python, java, c++, js)
  • 通过USB和wifi连接真机编写第一个脚本
  • 【javascript】 javascript对象函数 总结
  • LVS+Keepalived 高可用群集实战部署
  • MCU启动过程
  • Mysql 5.6使用配置文件my.ini来设置长时间连接数据库
  • 改进YOLOv5/YOLOv8:复现结合即插即用 | 高效多尺度注意力(EMA),模块成为YOLOv5改进的小帮手
  • 图像色彩增强论文调研
  • ORACLE透明网关ODBC连接MYSQL
  • Flutter网络请求框架Dio源码分析以及封装(二)--Cookie管理分析
  • Unity如何设计一个技能系统
  • 测试流程体系
  • Linux下CentOS KVM 虚拟化
  • < vue + ElementUi 组件封装:实现弹窗展示富文本数据,允许全文搜索高亮显示搜索内容 >
  • MATLAB 之 低层绘图操作和光照及材质处理
  • LLM-Client一个轻量级的LLM集成工具
  • leetcode动态数组vector实现杨辉三角
  • 第二十三章_Redis高性能设计之epoll和IO多路复用深度解析
  • 基于OpenCV-车辆检测项目(简易版)