NFS: Network File System,是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发。通过使用NFS协议,客户机可以像访问本地目录一样访问服务器中的共享资源。但是,NFS没有用户验证机制,而且数据在网络上传输是明文传输的,所以安全性较差,一般只能在局域网中使用。

  1. Note: RPC: Remote Procedure Call protocol, 远程过程调用,函数调用(远程主机上的函数), 一部分功能由本地程序完成,另一部分由远程主机上的函数完成  

NFS的工作流程如下图所示:

  1. 用户请求访问的文件系统在另一台主机上,那么客户端(内核发起)第一次请求的是portmapper(提供RPC服务,mountd服务进程启动时会向portmapper注册端口号),然后portmappermountd的端口号告知客户端,
  2. 接着客户端第二次请求mountdmountd根据IP进行认证,如果认证通过,将给客户端一个令牌;
    然后客户端拿着令牌第三次去访问nfsd服务进程,nfsd访问资源后通过idmapd(属主属组映射)再返回给客户端。

NFS启动后端口监听情况:

  1. nfs服务进程监听端口: /tcp,/udp
  2. mound监听的是半随机端口
  3. idmapd不需要监听端口

RPC服务:portmapper

  1. portmapper默认监听端口是111

查看portmapper监听的端口:

  1. rpcinfo: report RPC information
  1. # rpcinfo -p [IPADDR] //默认查看的是本地主机,也可以查看其他主机:比如: # rpcinfo -p 192.168.1.102

配置NFS服务:

  1. NFS服务的配置文件:/etc/exports
  2. 定义的内容格式为:
  1. 文件系统 客户端(选项) 客户端(选项) 
  1. Note:  
       客户端:IPFQDNDOMAINNETWORK
  2. 选项:secure(默认,使用1024以下的端口实现NFS的连接,指定insecure可以禁用这个选项),
           rw(默认是ro只读的),
           async(默认是该选项异步的),sync,
           root_squash(默认是该选项挤压管理员,使用该选项即使客户端可以写但是以root身份也不能修改,root会被挤压为nobody),no_roots_quash,
           all_squash(限制所有的UIDGID,只使用匿名用户,缺省设置为no_all_squash),
           anonuid,anongin(这两个选项将匿名UIDGID修改成特定用户和组账号)

实现NFS共享服务:这里以103作为nfs服务器,102和104作为客户端

1.确保rpc服务portmapper处于工作状态

  1. 查看rpc相关信息
  2.   # rpcinfo -p [IPADDR]

2.服务器端安装NFS服务:nfsd, mountd, idmapd

  1.   # rpm -q nfs-utils
  2.   # lsmod | grep nfs
  3.   # rpm -ql nfs-utils  //系统默认是安装的  

3. 服务器端创建共享文件目录 

  1. # mkdir /shared/nfs

4.服务器端配置共享客户端

  1. # vim /etc/exports
  2. /shared/nfs 192.168.1.104(rw) 192.168.1.102(ro)  //指定104对共享文件系统有读写权限,102度共享文件系统有只读权限  

重启NFS服务

  1. # service nfs restart
    # ss -tunlp | grep :2049  //nfs服务监听在tcp的2049端口和udp的2049端口。

不重启NFS服务重新导出文件系统

  1.   exportfs -ar: 重新导出所有的文件系统
  2.   exportfs -au: 关闭导出的所有文件系统
  3.   exportfs -u FS: 关闭指定的导出的文件系统

5.客户端挂载NFS文件系统

  1. mount -t nfs SERVER:/path/to/sharedfs /path/to/mount_point
       比如: # mount -t nfs 192.168.1.103:/shared/nfs /mnt

开机自动挂载NFS文件系统

  1. # vim /etc/fstab
  2.   SERVER:/PATH/TO/EXPORTED_FS /mount_point nfs defaults,_netdev 0 0
    挂载选项示例:rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101
    Note: rsize的值是从服务器读取的字节数,wsize是写入到服务器的字节数,默认都是1024,如果使用比较高的值,如8192,可以提高传输速率

6. 查看NSF服务器共享的文件系统

  1. showmount -e NFSSERVER_IP //服务器端可使用localhost,客户端查看需要指定服务器IP

网络共享服务(二)之NFS的更多相关文章

  1. 网络共享服务(一)之FTP

    网络共享服务:ftp,nfs,samba比较 从跨平台角度说, samba, ftp差不多, 而nfs不支持windows平台 从挂载角度说, samba, nfs可以把远程目录挂载到本地目录上, 对 ...

  2. 网络共享服务(三)之SAMBA

    前面说到了FTP和NFS,由于FTP是客户端和服务器基于ftp应用协议进行交换数据的,它不支持挂载共享目录的方式,而NFS又不支持跨平台,所以就催生了第三种网络共享服务:samba Samba是在Li ...

  3. nfs网络共享服务基础

    nfs原理 1.开启RPC服务 2.NFS向RPC服务注册启动的端口 3.用户向RPC询问NFS服务的端口 4.RPC返回端口给客户端 5.客户端通过获得的端口与NFS服务器进行数据传输 实验步骤 一 ...

  4. NFS网络共享服务 挂载参数及优化 内核优化建议

    配置NFS服务端 nfs01上安装软件 [root@nfs01 ~]# yum install nfs-utils rpcbind -y nfs-utils:NFS服务的主程序,包括rpc.nfsd. ...

  5. NFS网络共享服务部署

    10.3 NFS服务端部署环境准备 10.3.1 NFS服务部署服务器准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server) 192.168.1.14 ...

  6. 搭建企业级NFS网络文件共享服务[二]

    1.1.8 NFS问题总结 1.问:使用showmount -e 127.0.0.1后报clnt_create: RPC: Program not registered错误 答:顺序不对,重启nfs服 ...

  7. 网络共享服务—SAMBA服务

    SAMBA服务简介 SMB:Server Message Block服务器消息块,IBM发布,最早是DOS网络文件共享协议 Cifs:common internet file system,微软基于S ...

  8. win7老是弹出“Windows Media PIayer网络共享服务配置应用程序 已停止工作”

    应是优化软件的时候把服务禁止启动了. 我的电脑 > 管理 > 服务和应用程序 > 服务 Windows Media Player Network Sharing Service 启动 ...

  9. Linux网络服务12——NFS共享服务

    Linux网络服务12--NFS共享服务 一.NFS简介 端口号:TCP.UDP 111端口 NFS(Network File System)网络文件系统,是一种基于TCP/IP传输的网络文件系统协议 ...

随机推荐

  1. 基于 HTML5 WebGL 的智慧楼宇三维可视化监控

    前言 可视化的智慧楼宇在 21 世纪是有急迫需求的,中国被世界称为"基建狂魔",全球高层建筑数量位居首位,所以对于楼宇的监控是必不可少.智慧楼宇可视化系统更多突出的是管理方面的功能 ...

  2. 手把手教你使用数据可视化BI软件创建仓库可视化管理大屏

    灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件.   本文以仓库可视化管理大屏为例为 ...

  3. Linux部署.NetCore站点 使用Supervisor进行托管部署

    前言 之前终于在Linux上部署好了.NetCore站点,但是这个站点非常“脆弱”.当我的ssh连接关闭或者我想在当前连接执行其他命令时候就必须关闭dotnet站点的执行程序.这显然不是我想要达到的效 ...

  4. redis两种持久化方式RDB和AOF

    目录 前言 1. Redis 数据库结构 2. RDB 持久化 2.1. RDB 的创建和载入 2.1.1. 手动触发保存 SAVE 命令 BGSAVE 命令 SAVE 和 BGSAVE 的比较 2. ...

  5. pom.xml 配置 收藏

    本配置使用环境  jdk8  maven 3.6 C:\Users\Dell>java -version java version "1.8.0_162" Java(TM) ...

  6. python实现串口通讯小程序(GUI界面)

    python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...

  7. kuangbin专题 专题九 连通图 Warm up HDU - 4612

    题目链接:https://vjudge.net/problem/HDU-4612 题目:一个大地图,给定若干个连通图,每个连通图中有若干个桥,你可以在任意某个连通图的 任意两个点添加一条边,问,添加一 ...

  8. Binder 原理整理

    linux进程间通信方式 1. 管道 管道的实质是一个内核缓冲区,管道的作用正如其名,需要通信的两个进程在管道的两端,进程利用管道传递信息.管道对于管道两端的进程而言,就是一个文件,但是这个文件比较特 ...

  9. java 测试 (junit+ junit 断言 + postman)

    实际开发中,除了开发,我想测试也是必不可少的一环吧.从简单的@Test .main 方法测试 到 页面测试 ,断言,postman. bug是无处不在,随时发生的事,高效率的调试.检测可以节省大量的开 ...

  10. POJ 3253 Fence Repair 贪心 优先级队列

    Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 77001   Accepted: 25185 De ...