你的就是我的,我的还是我的。NFS教你怎么共享文件

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你的就是我的,我的还是我的。NFS教你怎么共享文件相关的知识,希望对你有一定的参考价值。

一、概述

NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源

  • NFS的服务实现依赖于RPC机制,以完成远程到本地的映射过程
    • RPC(远端过程调用)
  • 安装包需要 nfs-utils 和 rpcbind
    • nfs-utils 用于NFS共享发布和访问
    • rpcbind 用于RPC支持
  • NFS的配置文件为 /etc/exports
    • 格式: 共享的目录位置 客户机地址(权限选项)

1.1 原理图

在这里插入图片描述

二、在服务器使用NFS发布共享资源

2.1 安装软件

yum -y install nfs-utils rpcbind
在这里插入图片描述

2.2 设置共享目录

  • mkdir -p /opt/wwwcc22
    • 创建一个共享的目录
  • chmod 777 /opt/wwwcc22
    • 给这个目录最高权限
      在这里插入图片描述

2.2 编辑共享文件

  • vim /etc/exports
    • 进入文件编辑
/opt/wwwcc22 192.168.253.0/24(rw,sync,no_root_squash)				# 共享目录给这个网段
/share *(rw,sync)													# 共享给所有主机

在这里插入图片描述

名词解释

名词解释
rw允许读写
ro只读
sync同步写入到内存与硬盘中
no_root_squash当客户机以root身份访问时赋予本地root权限(默认是root_squash)
root_squash客户机用root用户访问该共享目录时,将root用户映射成匿名用户
allsquash所有访问用户都映射为匿名用户或用户组
async将数据先保存在内存缓冲区中,必要时才写入磁盘
subtree_check(默认)若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限
anonuid=xxx指定NFS服务器 /etc/passwd 文件中匿名用户的UID
anongid=xxx指定NFS服务器 /etc/passwd 文件中匿名用户的GID

2.3 启动NFS程序

首先要关闭防火墙和安全功能

  • systemctl stop firewalld.service
  • setenforce 0

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

  • systemctl start rpcbind
    • 开启服务
  • systemctl start nfs
    • 开启服务
  • systemctl enable rpcbind
    • 加入自启动
  • systemctl enable nfs
    • 加入自启动

netstat -anpt | grep rpcbind
查看rpcbind端口是否开启,rpcbind默认使用tcp端口111

2.4 查看本机发布的NFS共享目录

  • exportfs -rv
    • 发布共享
      在这里插入图片描述

三、在客户端访问NFS共享资源

3.1 安装软件包

  • yum -y install nfs-utils rpcbind

3.2 开启软件

关闭防火墙和安全

  • systemctl stop firewalld.service
  • setenforce 0

开启服务

  • systemctl start rpcbind
    • 开启服务
  • systemctl enable rpcbind
    • 设置自启动

3.3 查看

  • showmount -e 192.168.253.33
    • 查看NFS服务器端共享了哪些目录
      在这里插入图片描述

3.4 挂载

  • mkdir /cc33
    • 创建一个目录
  • mount 192.168.253.22:/opt/wwwcc22 /cc33
    • 挂载服务器的目录过来
      在这里插入图片描述

自动挂载

  • vim /etc/ fstab
192.168.80.22:/opt/wwwcc22 /cc33 nfs defaults, netdev 0 0

netdev:表示挂载设备需要网络

3.5 共享完成

当服务器上传文件结束后,客户端可直接读取到
在这里插入图片描述

四、设置一个网页共享

4.1 服务器设置

准备工作

软件安装
需要安装nfs-utils、 rpcbind、httpd软件

开启服务

  • systemctl stop firewalld.service
    • 关闭防火墙
  • setenforce 0
    • 安全机制关闭
  • systemctl start rpcbind
  • systemctl start nfs
  • systemctl enable rpcbind
  • systemctl enable nfs
  • systemctl start httpd

编辑网页内容

安装完httpd后,在var目录下会自动生成一个目录

  • cd /var/www/html
    • 进入该目录
  • vim index.html
    • 编辑网页内容

设置共享文件

  • vim /etc/exports
  • /var/www/html 192.168.253.0/24(ro)
    • 共享给80网段的设备

挂载

在这里插入图片描述

4.2 客户端设置

软件开启

[root@cc22 ~]# systemctl stop firewalld.service 
[root@cc22 ~]# setenforce 0
[root@cc22 ~]# systemctl start rpcbind
[root@cc22 ~]# systemctl enable rpcbind
[root@cc22 ~]# systemctl start httpd

挂载
在这里插入图片描述

4.3 测试

访问自己网页没问题
在这里插入图片描述

客户端访问也没问题
在这里插入图片描述

以上是关于你的就是我的,我的还是我的。NFS教你怎么共享文件的主要内容,如果未能解决你的问题,请参考以下文章

我的Linux,我做主!常用共享存储--NFS服务配置应用与实战

nfs共享如何___

Linux服务-搭建NFS

网络综合架构-NFS存储服务及部署

网络综合架构-NFS存储服务及部署

使用主目录的 nfs 共享时如何使用 ldap?