首页 > 编程知识 正文

什么是nfs,tftp服务器

时间:2023-05-03 21:08:52 阅读:16527 作者:1060

**

NFS 1.1 nfs的特点使用1.2NFS的优点

1.3 nfs体系结构

1.4 nfs的应用场景

2.NFS的结构

2.1 RPC

2.2 NIS

2.3 nfs的工作原理

导出文件格式

四. nfs管理

5 .在服务器和客户端上操作

1 .网络文件系统(NFS )是NFS配置文件1.1 nfs的特征,它是FreeBSD支持的文件系统之一,可以在网络上的计算机之间通过TCP/IP网络共享资源

在NFS APP应用程序中,本地NFS客户端APP应用程序可以透明地读写位于远程NFS服务器上的文件,就像正在访问本地文件一样

nfs适合Linux和Unix之间的文件共享,不能实现Linux和Windowsi之间的文件共享功能的nfs是在APP应用层运行的协议,在2049/tcp和2049/udp套接字上监听

nfs服务只能基于IP进行认证也是缺点-

1.2使用NFS的好处如果可以节约本地存储空间,将常用数据存储在-台NFS服务器上,并且可以通过网络访问,则本地终端可以减少对自身存储空间的使用

.用户不需要在网络上的所有计算机上构建Home目录。 Home目录位于NFS服务器上,可以在网络上访问和使用

某些存储设备(如软盘驱动器、CDROM和zip )可在网络中的其他计算机上使用。 这样可以减少整个网络中的可移动介质设备的数量

1.3 nfs的体系结构nfs体系至少有两个主要部分:

在一个nfs服务器上,多个客户端nfs架构的架构图如下:

客户端要通过TCP/IP网络远程访问存储在NFS服务器上的数据,必须在NFS服务器正式启用之前根据实际环境和需要设置-NFS参数

1.4 nfs的应用场景nfs有很多实用场景,以下是常用场景:

多台机器共享一个CDROM或其他设备。 在多台机器上安装软件时,这更便宜、更方便

在大型网络中,配置中央NFS服务器以放置所有用户的主目录可能非常有用。 因为这些目录可以输出到网络,所以用户登录到任何工作站时总是可以获得相同的主目录

各种客户端可以在NFS上查看视频文件,从而节省本地空间

在客户端创建的工作数据可以备份保存到NFS服务器上用户自己的路径中

2.nfs的结构nfs基于rpc实现网络文件系统的共享。 所以我们先来谈谈rpC吧。

2.1远程操作模块调用协议(RPC )、远程过程调用协议。 这是一种在不理解底层网络技术的情况下,通过网络从远程计算机程序请求服务的协议。

RPC协议假设存在特定的传输协议(如TCP和UP ),在操作系统网络通信模型中,RPC跨越传输层和APP应用层。

rpc的结构如上图所示。 接下来说明:

客户端启动RPC系统调用,根据TCP协议将其发送到另一主机(服务端)服务端进行套接字监听,收到客户端的系统调用请求后,将收到的请求及其传递的参数发送到本地系统调用

将结果返回到本地服务进程服务端的服务进程,接收返回的运行结果并封装在响应消息中,通过rpc协议返回客户端调用进程接收响应消息,得到进程结果,继续运行2.2 nn 网络信息系统是集中管理主机账户等系统的网络服务。

当用户登录到其中一个NIS客户端时,NIS服务器将进行登录验证,并允许集中管理用户帐户。

由于NIS协议很明确,因此不建议像NIS -那样在公共网络上使用,通常在局域网上使用。

本章主要讲的是NFS,所以NFS的配置在这里不熟悉,感兴趣的人请在网上搜索。

2.3 nfs工作机制//NFS服务器端运行四个进程: nfsdmountdimapdportmapperidmapd//以实现用户帐户的集中映射,并将所有帐户映射到NFSNOBODY 但是,在访问时可以作为本地用户访问mountd//,并用于验证客户端是否位于允许访问此NFS文件系统的客户端列表中。 否则,拒绝访问//mountd的服务端口是随机的,rpc服务(端口映射器)提供随机端口号: 2049/tcp端口和2049/udp端口,或NFS服务器上的行rpc服务,用于理解客户端的rpc请求并将其传输到本地核心并存储在指定文件系统的portmapper//INFS服务器上。 用111/TCP和1117UDP进行接收

要求:显示装载在远程NFS服务端主机(本地目录/shared/n )上的文件的信息

fs中)

客户端发起查看ile信息的指令 (Is fle)
给内核,内核通过NFS模块得知此文件并不是本地文件系统中的文件,而是在远程NFS主机上的一个文件客户端主机的内核通过RPC协议把查看tle信息的指令(系统调用)封装成rpc请求通过TCP的111端口发送给NFS服务端主机的portmapperNFS服务端主机的portmapper (RPC服务进程)告诉客户端说NFS服务端的mountd服务在某某端口上,你去找它验证

因为mountd在提供服务时必须要向portmapper注册-个端口号 ,所以portmapper是 知道其工作于哪个端口的

客户端得知服务端的mountd进程端口号后,通过已知的服务端mountd端口号请求验证mountd收到验证请求后验证发起请求的客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放- - 个令牌,持令牌去找nfsd),否则拒绝访问验证通过后客户端持mountd发放的令牌去找服务端的nfsd进程,请求查看某文件服务端的nfsd进程发起本地系统调用,向内核请求查看客户端要查看的文件的信息服务端的内核执行nfsd请求的系统调用,并将结果返回给nfsd服务nfsd进 程收到内核返回的结果后将其封装成rpc请求报文并通过tcp/ip协议返回给客户端 3. exports文件的格式

nfs的主配置文件是/etc/exports,在此文件中,可以定义NFS系统的输出目录(即共享目录)访问权限和允许访问的主机等参数。该文件默认为空,没有配置输出任何共享目录,这是基于安全性的考虑,如此即使系统启动了NFS服务也不会输出任何共享资源。

exports文件中每行提供了一个共享目录的设置,其命令 格式为:<输出目录> [客户端1(选项1,选项…)] [客户端2(
选项1,选项2…]

其中,除输出目录是必选参数外,其他参数均是可选项。另外,格式中的输出目录和客户端之间、客户端与客户端之间都使用空格分隔,但客户端与选项之间不能有空格。

客户端是指网络中可以访问这个NFS共享目录的计算机。客户端的指定非常灵活,可为单个主机的IP或域名,亦可为某个子网或域中的主机等。
客户端常用的指定方式:

客户端说明172.16.12.129指定IP地址的主机172.16.12.0/24(或172.16.12.*)指定子网中的所有主机www.wangqiang.com指定域名的主机*.wangqiang.com指定wangqiang.com域中的所有主机*(或缺省)所有主机

选项用来设置共享目录的访问权限、用户映射等。exports文件中的选项比较多,一般可分为三类:

访问权限选项(用于 控制共享目录的访问权限)用户映射选项

默认情况下,当客户端访问NFS服务器时,若远程访问的用户是root用户,则NFS服务器会将其映射成一个本地的匿名用户(该用户为ntsnobody),并将其所属的用户组也映射成匿名用户组(该用户组也为ntsnobody),如此有助于提高系统的安全性。

其他选项

访问权限选项:

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

用户映射选项:

用户映射选项说明all_squash将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobodall squashy)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选项4. nfs管理

nfs安装:

//安装yum -y install nfs-utils//启动systemctl start rpcbindnfs-server

使用shoumount命令测试NFS服务器的输出目录状态:

//语法: showmount [选项] [NFS服务器 名称或地址]//常用的选项有:-a //显示指定NFS服务器的所有客户端主机及其所连接的目录-d //显示指定的NFS服务器中已被客户端连接的所有输出目录-e //显示指定的NFS服务 器上所有输出的共享目录

在客户端挂载NFS文件系统:

mount -t nfs SERVER:/path/to/sharedfs /pa th/to/mount .po int

在客户端设置开机自动挂载nfs:编辑/etc/fstab文件, 添加如下格式的内容

SERVER:/PATH/T0/EXPORTED FS /mnt. _point nfs defaults, netdevo 0

客户端挂载时可以使用的特殊选项:

rsize:其值是从服务器读取的字节数(缓冲)。默认为1024。若使用比较高的值,如8192,可以提高传输速度

wsize: 其值是写入到服务器的字节数(缓冲) 。默认为1024。若使用比较高的值,如8192,可以提高传输速度

exportfs//维护exports文件导出的文件系统表的专用工具 -a //输出在/etc/exports文件中所设置的所有目录 -r //重新读取 etc/exports文件中的设置,并使其立即生效,无需重启服务-u //停止输出某一目录-V //在输出目录时将目录显示到屏幕上

检查输出目录所使用的选项:

在配置文件/etc/exports中,即使在命令行中只设置了一两个选项,但在真正输出目录时,实际上还带有很多默认的选项。通过查看/var/ib/nfs/etab文件,可以看到具体使用了何选项
[root@localhost ~]#cat /var/lib/nfs/etab
…此处省略

5、实操 服务器 [root@ymm-xiaokeai yum.repos.d]# yum -y install nfs-utils//nfs安装[root@ymm-xiaokeai ~]# systemctl stop firewalld//关闭防火墙[root@ymm-xiaokeai ~]# setenforce 0[root@ymm-xiaokeai ~]# getenforcePermissive[root@ymm-xiaokeai ~]# systemctl restart nfs-server//重启服务[root@ymm-xiaokeai ~]# mkdir /nfs/shared//创建目录(此目录用来共享)[root@ymm-xiaokeai ~]# vim /etc/exports//写入要共享的文件及客户机/nfs 192.168.20.123(rw)//将nfs文件共享到192.168.20.123客户机上,并且可读可写

客户端

[root@ymm-a-frr ~]# yum -y install nfs-utils//nfs安装[root@ymm-a-frr ~]# systemctl stop firewalld//关闭防火墙[root@ymm-a-frr ~]# setenforce 0[root@ymm-a-frr ~]# getenforcePermissive[root@ymm-a-frr ~]# systemctl restart nfs-server//重启服务[root@ymm-a-frr ~]# vim /etc/selinux/config//对文件进行更改****This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXT**YPE=targeted [root**@ymm-a-frr ~]# showmount -e 192.168.20.180//测试服务器上所有的共享文件Export list for 192.168.20.180:/nfs 192.168.20.123[root@ymm-a-frr ~]# mount -t nfs 192.168.20.180:/nfs /nfs///将服务器上的/nfs挂载到本机的/nfs[root@ymm-a-frr ~]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/rhel-root 17G 1.1G 16G 7% /devtmpfs 901M 0 901M 0% /devtmpfs 912M 0 912M 0% /dev/shmtmpfs 912M 8.7M 904M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 143M 872M 15% /boottmpfs 183M 0 183M 0% /run/user/0/dev/sr0 3.8G 3.8G 0 100% /mount192.168.20.180:/nfs 17G 2.0G 16G 12% /nfs

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。