介绍

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

​NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

NFS一般用来存储共享视频,图片等静态数据;NFS 协议默认是不加密的,它不像 Samba,它不提供用户身份鉴别。服务端通过限定客户端的 IP 地址和端口来限制访问。

原理

NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序

  1. 首先服务器端启动RPC服务,并开启111端口
  2. 服务器端启动NFS服务,并向RPC注册端口信息
  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
  5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

注意: 在启动NFS SERVER之前,首先要启动RPC服务(即portmap服务,下同)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。

特别注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行systemctl reload nfs或exportfs –rv即可使修改的/etc/exports生效

适用场景

  • NFS 最好是部署在局域网 ,不要在公网上 ;

  • 适合在中小型企业使用;大型网站不会用 NFS 的, 用的都是 分布式存储

安装

NFS服务端

安装nfs-kernel-server:

$ sudo apt install nfs-kernel-server

NFS客户端

安装 nfs-common:

$ sudo apt install nfs-common

配置

服务端配置

  1. 创建共享目录

    sudo mkdir -p /var/nfs/sharedir

  2. 配置 /etc/exports (NFS挂载目录及权限由/etc/exports文件定义)

    1. 格式: 共享目录的路径 允许访问的NFS客户端(共享权限参数)
    2. 参数:
    3. - ro 只读
    4. - rw 读写
    5. - root_squash NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
    6. - no_root_squash NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
    7. - all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
    8. - sync 同时将数据写入到内存与硬盘中,保证不丢失数据
    9. - async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
    10. 请注意,NFS客户端地址与权限之间没有空格
    • 比如要将/var/nfs/sharedir目录共享, 则在该文件末尾添加下列语句:

      /home/lin/NFSshare 192.168.66.*(rw,sync,no_root_squash)

      /var/nfs/sharedir *(rw,sync,no_root_squash,no_subtree_check)

    • 要限制客户端IP, 添加下列语句:

      /var/nfs/sharedir 122.111.222.111(rw,sync,no_subtree_check)

    • 共享目录为/public , 允许访问的客户端为192.168.245.0/24网络用户,权限为只读

      /public 192.168.245.0/24(ro)

  3. 重新加载 nfs-kernel-server 配置:

    $ sudo systemctl reload nfs-kernel-server

客户端配置

  1. 使用showmount 命令查看nfs服务器共享信息。

    输出格式为“共享的目录名称 允许使用客户端地址”。

    showmount命令参数:

    • -a :显示目前主机与客户端的 NFS 联机分享的状态;
    • -e :显示/etc/exports 所分享的目录数据。
    1. user@k8s-node-01:~$ showmount -e 172.20.249.5
    2. Export list for 172.20.249.5:
    3. /var/nfs/sharedir *
  2. 在客户端创建目录,并挂载共享目录

    $ sudo mkdir -p /mnt/nfs_sharedir

  3. 挂载远程共享目录:

    $ sudo mount your_nfs_server_ip:/var/nfs/sharedir /mnt/nfs_sharedir

    e.g. sudo mount 172.20.249.5:/var/nfs/sharedir /mnt/nfs_sharedir

    • 编辑fstab文件, 使系统每次启动时都能自动挂载

      $ sudo vim /etc/fstab

    添加如下:

    your_nfs_server_Ip:/var/nfs/sharedir /mnt/nfs_sharedir nfs defaults 0 0

  4. 检查客户端挂载状态

  5. 卸载远程挂载

    $ sudo umount /mnt/nfs_sharedir

NFS服务配置总结的更多相关文章

  1. redhat enterprixe 5.0 NFS服务配置与管理

    一.了解NFS Samba 是主要用于实现Linux和Windows操作系统之间文件共享的协议,而NFS则是实现UNIX和Linux操作系统之间文件共享的协议. NFS可以把网络上远程的文件挂载到本机 ...

  2. linux的基本操作(NFS服务配置)

    服务配置 [什么是NFS] NFS会经常用到,用于在网络上共享存储.这样讲,你对NFS可能不太了解,笔者不妨举一个例子来说明一下NFS是用来做什么的.假如有三台机器A.B.C,它们需要访问同一个目录, ...

  3. NFS服务配置

    FS服务会经常用于在网络上共享存储. 比如有3台机子A,B,C;他们都需要访问同一个目录,使用NFS, 只需要把图片都放在A上,然后A共享给B和C即可. 访问B和C时,是通过网络的方式访问A上的哪个目 ...

  4. linux nfs服务配置挂载以及oracle使用nfs存储挂载注意事项

    服务端共享目录 /home/XXX/nfs_shared 172.16.22.0/24(rw,no_root_squash) service nfs restart 常用命令: 查看所有nfs共享目录 ...

  5. NFS 服务配置篇

    安装.配置NFS服务 1.NFS简介 NFS(network file system) NFS是一个主机A通过网络,允许其他主机B可以来共享主机A的一个目录文件的一个文件系统 2.需要安装两个包nfs ...

  6. Linux系统中NFS服务配置

    文章目录:                一.NFS服务简介                二.NFS服务端配置                三.NFS客户端配置                四. ...

  7. NFS服务配置 Linux

    两台机器: NFS服务器:192.168.1.100 (我的是Ubuntu系统) 客户机:192.168.1.123 (保证两台机器互相可以ping通) 需求:在NFS服务器上创建一个共享文件夹/ho ...

  8. 【转】NFS服务配置与mount nfs时-o nolock的问题

    NFS文件系统挂载步骤 1.创建共享目录 #mkdir /home/hellolinux/nfs 2.创建或修改/etc/exports文件 #vi /etc/exports home/helloli ...

  9. CentOS7系列--3.1CentOS7中配置NFS服务

    CentOS7配置NFS服务 1. 配置NFS服务器端 1.1. 安装nfs-utils软件 [root@server1 ~]# yum install -y nfs-utils Loaded plu ...

随机推荐

  1. Android Google官方文档解析之——System Permissions

    Android is a privilege-separated operating system, in which each application runs with a distinct sy ...

  2. 4G模块与WIFI模块的工作及应用区别

    在物联网行业中,4G模块和wifi模块经经常会被使用,但是由于网络不同,二者的工作原理和场景还是有很大的不同,本篇主要讲讲4G模块和WIFI模块的功能和应用场景 什么是4G模块? 4G模块是基于4G网 ...

  3. 没有真实串口设备时使用"虚拟串口驱动"调试你的串口代码

    目录 前言 示例代码 总结 前言 很多时候需要编写串口代码,但是又没有真实串口设备来调试代码.以及本身就是要操作2个串口的情况,可以使用"虚拟串口驱动"工具方便的调试代码. 使用方 ...

  4. quic是干什么的?

    什么是quic? quic解决了什么问题?HTTP和QUIC QUIC :Quick UDP Internet Connections:是一种新的默认加密的互联网通信协议,它提供了许多改进,旨在加速H ...

  5. 理解 Linux 的硬链接与软链接(转)

    Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘 ...

  6. 六:Redis配制文件

    1.它在哪儿 1.1 安装包解压开里面就会有redis.conf 1.2 我们在修改一定要拷贝一份,修改拷贝的那一份 2.Units单位 2.1 对于单位来说配制开头定义了,1k和1kb是不一样的,同 ...

  7. logback怎么写?分类输出日志到不同的文件

    此appender有顺序,最好不要乱调顺序,输出日志如下: drwxr-xr-x 2 root root 4096 Dec 3 00:00 2019-12-02drwxr-xr-x 2 root ro ...

  8. 前端JS下载文件总结

    Data URLs Data URLs: 即前缀为data: 协议的URL,其允许内容创建者向文档中嵌入小文件. 例如:可以直接在HTML中的img元素直接使用Data URLs : data:[&l ...

  9. YH高校集中用电管理网上查询系统POST注入漏洞

    1.burpsuite 抓包保存为1.txt POST /apartsearch.asp HTTP/1.1 Host: 2*0.86.2**.69 User-Agent: Mozilla/5.0 (W ...

  10. 百度ping工具

    function postUrl($url, $postvar) { $ch = curl_init(); $headers = array( "POST".$url." ...