NFS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS相关的知识,希望对你有一定的参考价值。
NFS
NFS简介
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件。
NFS适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
NFS是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
NFS服务只能基于IP进行认证,这也是它的缺点之一
NFS是基于rpc来实现网络文件系统共享的
NFS优点
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
- 一些存储设备如软驱、CDROM和Zip等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量
NFS的工作机制
NFS服务器端运行着四个进程:
nfsd
mountd
idmapd
portmapper
idmapd //实现用户帐号的集中映射,把所有的帐号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问
mountd //主要功能是管理nfs的文件系统,且在客户端使用nfs提供的文件前,还会验证客户端的使用权限。
//mountd的服务端口是随机的,由rpc服务(portmapper)提供随机端口号
nfsd //nfs的守护进程,监听2049/tcp和2049/udp端口。主要功能是管理客户端能否登录服务器
portmapper //NFS服务器的rpc服务,其监听于111/TCP和111/UDP套接字上,用于管理远程过程调用(RPC)
配置nfs共享目录
nfs的主配置文件是/etc/exports,在此文件中,可以定义NFS系统的输出目录(即共享目录)、访问权限和允许访问的主机等参数。
//开启防火墙
[[email protected] ~]# systemctl start firewalld
[[email protected] ~]# systemctl enable firewalld
//配置防火墙允许服务
[[email protected] ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.161.100 service name=nfs accept‘ --permanent
success
[[email protected] ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.161.100 service name=rpc-bind accept‘ --permanent
success
[[email protected] ~]# firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=192.168.161.100 service name=mountd accept‘ --permanent
success
//确认查看防火墙配置
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.161.100" service name="nfs" accept
rule family="ipv4" source address="192.168.161.100" service name="rpc-bind" accept
rule family="ipv4" source address="192.168.161.100" service name="mountd" accept
[[email protected] ~]# vi /etc/exports
/share 192.168.161.101(rw,anonuid=300,anongid=300)
[[email protected] ~]# exportfs -r
[[email protected] ~]# showmount -e 192.168.161.100
Export list for 192.168.161.100:
/share 192.168.161.100
//在客户端上配置
[[email protected] ~]# systemctl restart rpcbind
[[email protected] ~]# systemctl enable rpcbind
[[email protected] ~]# mkdir /yue
[[email protected] ~]# mount -t nfs 192.168.161.100:/share /yue
//验证,在只读共享目录上不能创建文件
以上是关于NFS的主要内容,如果未能解决你的问题,请参考以下文章