一、nfs简介

nfs(network file system)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。

nfs主要适用用linux与Unix系统间文件共享,由于是nfs是明文传输,无法加密,而且只能基于IP认证,所以一般用于公司或校园的局域网。

nfs的优点就是能大量节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,而且访问的时候就跟访问自己的家目录一样方便,而且数据同步非常稳定、迅速。

nfs是运行在应用层的协议,监听于2049/tcp端口和2049/udp套接字。

二、nfs的组成

nfs可以由一台nfs服务器和N台客户机组成

客户机通过tcp/ip协议网络远程访问存放在NFS服务器上的数据

在nfs服务器正式启用前,根据实际环境和需求,配置一些nfs参数

三、nfs的应用场景

多个机器共享一台CDROM或其他设备,这样比多台机器都装一台CDROM方便的多

大型局域网内,配置一台NFS服务器用于放置所有用户的home目录,不管你周围局域网哪台工作站上登录,都是同一目录,能给工作带来极大的方便

不同客户端如果通过NFS观看影视文件,能节省大量本地空间

在客户端完成的工作数据,可以备份到NFS服务器上自己的路径下

四、nfs的工作原理

nfs是通过rpc(远程过程调用协议)来实现网络文件系统共享的,rpc是通过网络从远程计算机上请求服务器,不需要通过底层网络技术的协议

nfs服务器端运行了四个进程:

nfsd

mountd

idmapd

portmapper

idmapd       ----实现用户账号的集中映射,把所有的账号都映射成NFSNOBODY,但在访问时却能以本地用户访问,所以需要目录的权限

mountd       ----用户验证客户端是否在允许访问此NFS文件系统的客户端列表中,在就允许访问

nfsd            ----nfs的守护进程,监听在2049端口上

portmapper ---nfs服务器的rpc服务,监听在111端口,用于管理远程过程调用

举个例子说明工作过程:

客户机A想查看file文件的信息,此信息存储在远程NFS服务器端主机B(挂载在本地目录/nfs中),A把查看文件信息的请求发给内核,内核通过NFS模块明白是远程主机B上的,内核通过RPC协议吧请求封装成rpc请求通过tcp111端口发给主机B的portmapper,portmapper告诉A主机B主机的mountd服务所在端口,然后A去找mountd请求验证,mountd看他有的允许列表,如果A在表内,就给一个令牌给A,A拿着这个令牌去找B主机的nfsd进程,请求查看需要的文件,B主机的nfsd进程发起本地调用,向B内核请求查看主机A要查看的文件信息,B内核执行系统调用,将结果返回给nfsd服务,nfsd服务器收到后将结果封装成rpc请求报文并用过tcp/ip协议发给主机A

五、配置文件

nfs的主配置文件是/etc/exports,此文件定位NFS系统的输出目录(共享目录),访问权限参数,允许访问的主机参数,该文件默认为空,文件每一行提供一个共享目录的使者,其格式为

《共享目录》 【 客户端1IP(权限参数)】 【客户端2IP(权限参数)】

共享目录为你想要共享出去的目录绝对路径

客户端ip为你想共享给哪些或哪个主机

权限参数为用户访问的权限,用户映射的选项

exportfs  -r 重读配置文件,使其立即生效,无需重启服务

访问权限选项:

访问权限选项 说明
ro 设置输出目录只读
rw 设置输出目录可读写

用户映射选项:

用户映射选项 说明
all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash 不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置)
root_squash 将root用户及所属用户组都映射为匿名用户或用户组(默认设置)
no_root_squash 不将root用户及所属用户组都映射为匿名用户或用户组
anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该匿名用户为本地用户帐户(UID=xxx)
anongid=xxx 将远程访问的所有用户组都映射为匿名用户组,并指定该匿名用户组为本地用户组(GID=xxx)

常用的其他选项:

其他选项 说明
secure 限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置)
insecure 允许客户端从大于1024的TCP/IP端口连接NFS服务器
sync 将数据同步写入内存缓冲区或磁盘中,效率较低,但可保证数据一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay 检查是否有相关的写操作,如果有则这些写操作一起执行,可提高效率(默认设置)
no_wdelay 若有写操作则立即执行,应与sync配置使用
subtree_check 若输出目录是一个子目录,则NFS服务器将检查其父目录的权限(默认设置)
no_subtree_check 即使输出目录是一个子目录,NFS服务亦不检查其父目录的权限,可提高效率
nohide 若将一个目录挂载到另一个目录之上,则原来的目录通常就被隐藏起来或看起来像空的一样。要禁用这种行为,需启用hide选项

六、nfs使用:

nfs安装

yum -y install rpcbind nfs-utils

启动服务

systemctl  start rpcbind nfs-server

shoumount命令测试共享目录状态

-a  显示指定NFS服务器的所有客户端主机及其所连接的目录

-d  显示指定NFS服务器的已被客户端连接的所有输出目录

-e显示指定NFS服务器的所输出的共享目录

客户端临时挂载NFS文件系统

yum install rpcbind nfs-utils -y

mount -t nfs  ip:/path1    /path2

客户端设置自动挂载nfs

vim /etc/fstab

ip/path   /path2  nfs defaults,_netdev  0 0

mount -a

df -h

检查输出目录所使用的选项:
在配置文件/etc/exports中,即使在命令行中只设置了一两个选项,但在真正输出目录时,实际上还带有很多默认的选项。通过查看/var/lib/nfs/etab文件,可以看到具体使用了何选项

七、NFS使用实例:

1.手动搭建一个nfs服务器
开放/nfs/shared目录,供所有用户查阅资料
开放/nfs/upload目录为172.16.12.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300

服务器端
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum install rpcbind nfs-utils
mkdir /nfs
chmod 775 /nfs
groupadd -g 300 nfs-upload
useradd -u 300 -g 300 nfs-upload
echo " /nfs 172.16.12.0/24(ro,all-squash,root_squash,anonuid=300,anongid=300,sync)" > /etc/export
systemctl start rpcbind nfs-server
systemctl enable nfs-server
systemctl enable rpcbind
exportfs -r

客户端

mkdir /nfs
mount -t nfs 192.168.160.46:/data/nfs /nfs


vim /etc/fstab
192.168.160.46:/data/nfs /nfs nfs defaults,_netdev 0 0

mount- a
df -h

Linux----------nfs服务器的搭建及常识的更多相关文章

  1. 自学linux——21. NFS服务器的搭建

    NFS服务器的搭建 1.NFS的认识 NFS(Network File System即网络文件系统)服务最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享文件,可以将远程 Linu ...

  2. 4、nfs服务器的搭建

    4.1.nfs服务介绍: samba服务器一般互联网企业不会使用 nfs服务的端口是不固定的,需要先启动rpc服务对nfs服务端口进行注册 4.2.安装nfs: rpm -qa nfs-utils r ...

  3. Linux NFS服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...

  4. Linux NFS服务器的简明配置6.8

    Linux NFS服务器的简明配置6.8   Linux NFS服务器的简明配置 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的 ...

  5. Linux NFS服务器搭建

    1.NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.   在NFS的应用中,本地N ...

  6. Linux下NFS服务器的搭建与配置

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  7. Linux下NFS服务器的搭建与配置(转载)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  8. Linux下NFS服务器的搭建与配置(转)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  9. 4412开发板学习笔记-NFS服务器的搭建

    转自iTOP-4412讨论群: http://www.topeetboard.com 先来介绍一下NFS: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件 ...

随机推荐

  1. 俄罗斯方块win c 图形线程

    环境准备:visual stdio 2015,easyx, //

  2. C#异常:未将对象引用设置到对象的实例。

    异常:未将对象引用设置到对象的实例. 一般是定义的变量或者数组等,没有赋初始值. 赋初始值后问题解决.

  3. 最近工作再弄基于bootstrap的定制sass

    封装各种组件如 button table 当然..我只才做完两个. 比如table 抽出很多类以后可以配置的值 还有button 目录结构大致是 scss主要css文件 base和components ...

  4. 深度解析synchronized的实现原理(并发一)

    一.synchronized实现原理 1.synchronized实现同步的基础: 1).普通同步方法:锁是当前实例对象 2).静态同步方法:锁是当前类的class对象 3).同步方法块:锁是括号里面 ...

  5. POST 调用 301 Moved Permanently 问题

    如上测试了2种,第一个post访问接口https能正常返回,第二个post访问接口http时301 Moved Permanently出现永久重定向问题,经检查发现服务器nginx对80端口做了重定向 ...

  6. 关于MySQL5.7开启bin-log主从复制

    主从复制:一般用于实时备份.也可配合mycat,实现读写分离. 传统的基于 ROW的主从复制 简单说下步骤: master主库配置同步,slave从库配置同步,master锁表/备份,slave恢复数 ...

  7. php优秀框架codeigniter学习系列——CI_Input类学习

    这篇文章主要介绍CI核心框架工具类CI_Input. 根据CI文档自己的定义,该类用来: 提前处理全局变量,以保证安全; 提供一些帮助函数用来处理输入数据. 以下选取类中的重点方法进行说明. __co ...

  8. dede织梦系统接入熊掌号推送api,完整详细教程

    第一步:     根据熊掌号要求完成校验页面,官方文档很详细,照着弄就行了 第二步: 开始后台改造 1.进入后台文件夹dede(自己实际的文件夹),然后进入templets目录,打开body_inde ...

  9. Java Web安全之程序逻辑缺陷

    Java Web程序逻辑缺陷本质是由于程序设计和开发者设计的程序执行逻辑存在某种缺陷而导致的安全隐患.企业的代码审查和渗透测试通常主要针对的大多是诸如xss攻击和sql注入和跨站点脚本这些头条式漏洞, ...

  10. 怎样检测TCP/UDP端口的连通性

    1 TCP端口的连通性 TC端口的连通性,一般通过telnet检测: TCP协议是面向连接的,可以直接通过telnet命令连接 telnet host-ip port 2 UDP端口的连通性 因为公司 ...