Linux环境中NFS服务的搭建

2022年11月18日11:58:32

NFS,是Network File System的简写,即网络文件系统。允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

一、服务器端搭建:

1. 下载安装nfs软件和rpc软件:

yum install nfs-utils rpcbind -y

        rpc服务:remote procedure call,远程过程调用,nfs 的各项功能都必须要向 rpc 注册,因此 rpc才能了解 nfs 服务的各项功能的port number、pid和 nfs 在主机所监听的IP等,而客户端才能够通过 rpc 的询问找到正确对应的端口。因此,安装完成要先启动 rpc 服务,再启动 nfs 服务。

[root@nfs-serer ~]# systemctl start rpcbind        \\启动rpc服务
[root@nfs-serer ~]# systemctl enable rpcbind       \\设置rpc服务开机自启动
[root@nfs-serer ~]# systemctl status rpcbind       \\查看rpc服务运行状态

[root@nfs-serer ~]# systemctl start nfs        \\启动nfs服务
[root@nfs-serer ~]# systemctl enable nfs       \\设置nfs服务开机自启动
[root@nfs-serer ~]# systemctl status nfs       \\查看nfs服务运行状态

[root@nfs-serer ~]# rpcinfo -p       \\查看RPC服务运行报告信息,是否已检测到nfs服务

2. 设置nfs服务的配置文件:/etc/exports

/data    192.168.139.0/24(rw,rsync,no_all_squash,root_squash)

(1)参数解释:

/data nfs服务共享的目录
192.168.139.0/24 允许远程挂载的主机网段,可以写入多个网段
rw 共享的目录具有读写权限
ro 共享的目录只有读权限
sync 采用同步方式存储数据,直接将数据存入主机的硬盘。数据写入安全。
async 采用异步方式存储数据,先将数据存储到缓存,再将数据写入硬盘。数据存储读取快,但数据保存存在风险。
no_root_squash 不对root用户身份进行转换
root_squash 对root用户身份进行转换(转换成 nfsnobody)
all_squash 对所有普通用户进行身份转换
no_all_squash 不对普通用户进行身份转换(默认设置)
anonuid 用于映射新的uid,替换nfsnobody用户
anongid 用于映射新的gid,替换nfsnobody用户

配置完,重新加载nfs服务。

3. 创建共享目录,设置权限

[root@nfs-serer ~]# mkdir /data
[root@nfs-serer ~]# chown -R nfsnobody:nfsnobody /data

二、客户端配置

1. 安装nfs服务,如果不安装,挂载时,无法识别nfs文件类型。

2. 挂载,将Web服务器中用户的上传文件共享到nfs服务器的/data目录:

[root@nginx_server_a ~]# mount -t nfs 192.168.139.135:/data /application/www/uploads
[root@nginx_server_a ~]# df -h    //检查挂载成功与否

三、设置开机自启动

四、安全设置

为了防止其他用户登录到web服务器对用户上传的文件进行破坏,在nfs服务器上可以创建一个新的虚拟用户及用户组对共享文件夹进行管理。同时,在其他服务器上也要创建相同的虚拟用户及用户组,该虚拟用户和用户组应该具有相同的UID和GID。并对nfs的配置文件进行如下设置:

/data    192.168.139.0/24(rw,rsync,no_all_squash,root_squash)

如此,其他的用户登录web服务器,包括root用户都不能在挂载点下进行创建和删除操作。

  • 作者:Anthony_Lee85
  • 原文链接:https://blog.csdn.net/Anthony_Lee85/article/details/121803398
    更新时间:2022年11月18日11:58:32 ,共 1642 字。