NFS服务器搭建(基础)

本文档详细介绍了如何搭建NFS服务器,包括查看和安装rpcbind与nfs-utils包,配置NFS主文件,创建共享目录并赋权,以及重启服务。同时,解析了NFS的客户端配置和测试过程。重点讲解了NFS日志文件的位置,以及主配置文件`/etc/exports`的格式和各项选项,如访问权限、用户映射和其他高级设置,确保服务器安全和高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器配置

  • 查看rpcbind安装包
[root@localhost ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-23.el7.x86_64
  • 查看nfs-utils安装包
[root@localhost ~]# rpm -qa | grep nfs
nfs4-acl-tools-0.3.3-13.el7.x86_64
nfs-utils-1.3.0-0.el7.x86_64
libnfsidmap-0.25-9.el7.x86_64
  • 启动程序
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
  • 编辑主配置文件
[root@localhost ~]# vim /etc/exports
/home/share 192.168.11.0/24(rw,ro)
  • 创建/home/share并赋权
[root@localhost ~] mkdir -p /home/share
[root@localhost ~] chmod 755 /home/share
[root@localhost ~]# ll -d /home/share/
drwxr-xr-x. 2 root root 6 7月  31 10:57 /home/share/
  • 重启服务
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs
  • 客户端配置
[root@localhost ~]# mkdir /home/share
[root@localhost ~]# mount -t nfs 192.168.11.10:/home/share /home/share/
[root@localhost ~]# df -hT
文件系统                  类型      容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root     xfs        48G  2.9G   45G    7% /
devtmpfs                  devtmpfs  905M     0  905M    0% /dev
tmpfs                     tmpfs     914M  136K  914M    1% /dev/shm
tmpfs                     tmpfs     914M  8.9M  905M    1% /run
tmpfs                     tmpfs     914M     0  914M    0% /sys/fs/cgroup
/dev/sda1                 xfs       497M  119M  379M   24% /boot
192.168.11.10:/home/share nfs4       48G   33M   48G    1% /home/share
/dev/sr0                  iso9660   3.5G  3.5G     0  100% /mnt

测试
服务端创建文件
在这里插入图片描述
客户端查看文件
在这里插入图片描述

NFS日志文件

  • NFS服务的日志文件记录在/var/log/message
cat /var/log/message|grep nfs

Oct120:36:09 servera systemd[1]: nfs-server.service: Failed with result 'exit-code'.
0ct7 20:37:42 servera systemd[1]: nfs-server.service: Control process exited,code=xited statu
s=1
Oct 7 20:37:42 servera systemd[1]: nfs-server.service: Failed with result 'exit-code ' .
0ct7 20:38:05 servera kernel: nfsd: last server has exited,flushing export cache
Oct 7 20:38:43 servera kernel: nfsd: last server has exited,flushing export cache
s=1
0ct7 20:38:43 servera systemd[1]: nfs-server.service: Control process exited,code=exited statu
Oct 7 20:38:44 servera systemd[1]: nfs-server.service: Failed with result 'exit-code' .
Oct 7 20:39:10 servera systemd[1]: nfs-server.service:Control process exited,code=xited statu
s=1

NFS主配置文件详解

1、/etc/exports文件格式
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)](exprots文件中每一行提供了一个共享目录的设置)
2、相关说明
1️⃣:输出目录:输出目录是指NFS系统中需要共享给客户机使用的目录;
2️⃣:客户端:客户端是指网络中可以访问这个NFS输出目录的计算机;
客户端常用的指定方式:
指定ip地址的主机:192.168.10.10
指定子网中的所有主机:192.168.10.0/24 192.168.10.*
指定域名的主机:www.test.com.cn
指定域中的所有主机:.test.com.cn
所有主机:

3️⃣:选项的种类:
1)、访问权限选项:
设置输出目录只读:ro
设置输出目录读写:rw
2)、用户映射选项:
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
3)、其它选项:
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
no_root_squash:是让root保持权限;
root_squash:是把root映射成nobody,no_all_squash 不让所有用户保持在挂载目录中的权限。

相关说明

### 三、NFS服务器搭建教程 #### ### 1. 安装必要软件 在Linux环境中,首先需要安装`nfs-utils`包,它是用来支持NFS服务的关键组件。可以通过以下命令完成安装: ```bash sudo apt update && sudo apt install nfs-kernel-server -y ``` 或者对于基于RHEL的发行版,使用如下命令: ```bash sudo yum install nfs-utils -y ``` 此过程会自动拉取并安装所需的依赖项[^1]。 #### ### 2. 配置共享目录 编辑主配置文件 `/etc/exports` ,指定哪些目录将被共享给远程客户端以及访问权限设置。例如,要共享 `/data/nfsshare` 目录,并允许来自 `192.168.1.0/24` 子网内的机器对其进行读写操作且不压缩根用户权限,可以在该文件中加入这样一行记录: ```plaintext /data/nfsshare 192.168.1.0/24(rw,no_root_squash,sync) ``` 其中参数含义分别为:rw 表示可读写;no_root_squash 则意味着当客户机上的 root 用户连接至本 NFS 资源时不会将其映射成匿名用户而是保留其超级管理员身份;sync 参数强制每次请求都同步到磁盘再返回成功状态以提高数据可靠性[^4]。 #### ### 3. 应用新的导出规则 每当修改过 `/etc/exports` 文件之后都需要通知系统重新加载最新的共享列表才能生效。执行下列指令即可达成目的: ```bash sudo exportfs -ra ``` 如果想查看当前已经发布的所有资源及其对应的客户端地址范围,可以运行这条命令获取更多信息: ```bash showmount -e localhost ``` #### ### 4. 启动与开机自启设置 确保NFS服务已开启并且能够在下次重启后继续工作。对于较新版本的操作系统来说只需要单独处理 `nfs-server` 单元组就可以了,因为它内部包含了启动所需的一切子服务(包括rpcbind)。所以只需依次发出这两条命令就完成了基本初始化动作: ```bash sudo systemctl start nfs-server sudo systemctl enable nfs-server ``` 而对于某些老旧平台则可能还得额外手动激活 `rpcbind.service` 才能让整个框架正常运作起来[^1][^2]。 #### ### 5. 测试验证 最后一步就是确认一切是否按预期那样运转良好了。假设目标主机IP为 `192.168.1.100` ,那么可以从另一台计算机上面尝试挂载刚才创建好的那个路径看能不能正常使用: ```bash sudo mount -t nfs 192.168.1.100:/data/nfsshare /mnt/testpoint df -h | grep testpoint ``` 假如没有任何错误提示的话那就表明我们的实验取得了圆满的成功! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值