前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >s5p4418挂载nfs文件系统

s5p4418挂载nfs文件系统

作者头像
知否知否应是绿肥红瘦
发布2025-02-19 21:32:14
发布2025-02-19 21:32:14
9000
代码可运行
举报
文章被收录于专栏:文件系统知识文件系统知识
运行总次数:0
代码可运行
一、主机配置

首先需要保证客户端和服务器能相互Ping通,这是挂载nfs的前提条件。

1. 安装NFS server
代码语言:javascript
代码运行次数:0
运行
复制
sudo apt install nfs-kernel-server
2. 创建nfs共享目录

也可以不创建新的目录,直接指定已存在的目录。后面客户端挂载时需要指定此目录

代码语言:javascript
代码运行次数:0
运行
复制
sudo mkdir -p /nfs
3.修改nfs配置文件

安装nfs-kernel-server后会自动生成/etc/exports配置文件

代码语言:javascript
代码运行次数:0
运行
复制
sudo vim /etc/exports   #添加如下内容
代码语言:javascript
代码运行次数:0
运行
复制
/nfs    192.168.3*(rw,sync,no_root_squash,no_subtree_check)
# 192.168.3.*  3网段的所有ip都可以访问
# ro:默认选项,以只读的方式共享  rw:以读写的方式共享
# sync:默认选项,保持数据同步,数据同步写入到内存和硬盘
# async:异步,先将数据写入到内存,在将数据写入到硬盘
# secure:NFS客户端必须使用NFS保留端口(通常是1024以下的端口),默认选项。
# insecure:允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)。
# root_squash:将客户端使用的是root用户时,则映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)
# no_root_squash:将客户端使用的是root用户时,则映射到FNS服务器的用户依然为root用户。
# subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
# no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
# anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)
# anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)

clientroot用户分别创建 root_squashno_root_squash,其中 no_root_squashroot_squash的效果如下:

代码语言:javascript
代码运行次数:0
运行
复制
ruler@ruler-virtual-machine:/nfs$ ls -alh
total 12K
drwxrwxrwx  2 root   root    4.0K 5月  31 22:12 .
drwxr-xr-x 25 root   root    4.0K 5月  27 22:16 ..
-rw-r--r--  1 root   root       6 5月  31 22:05 client.txt
-rw-r--r--  1 root   root       0 5月  31 22:11 no_root_squash
-rw-r--r--  1 nobody nogroup    0 5月  31 22:12 root_squash

exportfs主要用于管理当前NFS服务器的文件系统,用法如下:

代码语言:javascript
代码运行次数:0
运行
复制
# 显示共享目录
sudo exportfs -v

# 全部挂载或者全部卸载
sudo exportfs -a

# 显示/etc/exportfs中共享的目录
sudo exportfs -s

# 重新挂载,可以不用重启nfs,而让配置文件生效
sudo exportfs -r
4. 启动 nfs server

启动NFS服务

代码语言:javascript
代码运行次数:0
运行
复制
sudo /etc/init.d/nfs-kernel-server restart

如下提示即启动成功

代码语言:javascript
代码运行次数:0
运行
复制
[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
本机验证
代码语言:javascript
代码运行次数:0
运行
复制
showmount -e  # 显示NFS服务器的输出清单
Export list for ruler-virtual-machine:
/nfs 192.168.3*

showmount -a  #以 host:dir 这样的格式来显示客户主机名和挂载点目录
二、客户端配置
1.挂载nfs

使用如下命令挂载nfs,如果没有 nolock选项 终端会被阻塞。 192.168.3.13:/nfsserver ip:server dir的形式。

代码语言:javascript
代码运行次数:0
运行
复制
 mkdir /nfs #clent创建挂载点,也可以指定其他目录作为挂载点
 mount -t nfs -o nolock 192.168.3.13:/nfs ./nfs
2.验证挂载

服务器可以使用showmount -a命令查看客户端挂载信息

代码语言:javascript
代码运行次数:0
运行
复制
ruler@ruler-virtual-machine:/nfs$ showmount -a
All mount points on ruler-virtual-machine:
192.168.3.12:/nfs

至此,客户端就可以访问服务器的/nfs文件夹了。

三、总结
1.关于NFS文件夹权限问题

实际上就是上面提到的root_squashno_root_squash root_squash:客户端以root用户访问nfs下的文件,在服务器看来都是nfsnobody用户来访问的,文件的权限就是nfsnobody用户具有的权限。 no_root_squash:客户端以root用户访问nfs下的文件,在服务器看来还是以root用户访问,所具有的权限也是root权限。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、主机配置
    • 1. 安装NFS server
    • 2. 创建nfs共享目录
    • 3.修改nfs配置文件
    • 4. 启动 nfs server
    • 本机验证
  • 二、客户端配置
    • 1.挂载nfs
    • 2.验证挂载
  • 三、总结
    • 1.关于NFS文件夹权限问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档