Linux学习笔记--NFS

NFS(network file system)网络文件系统

是一种分布式文件系统,允许网络中不同操作系统的计算机间共享数据,可以将远程的计算机磁盘挂载到本地。
主要应用场景
1 多台机器共享一台机器的CDROM或其他设备
2 在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录。
3 通过NFS客户端无需下载,即可使用共享文件

NFS 原理

1 客户端向服务器的111号端口发出访问NFS的查询请求
2 服务器监听111号端口,当收到请求后,NFS服务器随机选择端口后会向RPC注册,RPC查询已经注册的端口号,返回给客户端
3 客户端知道端口号后,向该端口发出请求
4 NFS服务器在该端口监听到客户端的连接请求后接受请求
注:RPC(remote procedure call 远程过程调用) 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

NFS 配置

1)NFS 服务端

NFS服务端所需安装包 (系统默认自带)

nfs-utils 包含一些基本的NFS命令与控制脚本
rpcbind 是一个管理RPC连接的程序

NFS主要文件和进程
  1. nfs所用发行版名字为nfserver,主要用于控制NFS服务的启动和停止,安装完成后位于/etc/init.d目录下
  2. rpc.nfsd是基本的NFS守护进程,主要功能是控制客户端是否可以登陆服务器,可以结合/etc/host.allow和/etc/hosts.deny做精确控制
  3. rpc.mountd是RPC安装守护进程,主要功能是管理NFS文件系统,通过配置文件共享指定的目录,同时根据配置文件作特权认证
  4. rcpbind 是一个管理RPC连接的程序,rpcbind服务对NFS是必须的,因为NFS的动态端口分配守护进程,如果rcpbind 不启动,NFS服务则无法启动
  5. exportfs如果修改了/etc/exports文件后不需要重新启动NFS,只需要重新读取/etc/exports文件即可。
    exportfs命令常用参数说明
参数说明
-a全部挂载/etc/exports内的配置
-r重新挂载/etc/exports中的设置
-u卸载某一目录
-v在export时共享的目录显示在屏幕上
  1. showmount 显示指定NFS服务连接NFS客户端的信息
    常用参数
参数说明
-a列出NFS服务共享的完整目录信息
-d仅列出客户机远程安装的目录
-e显示导出目录的列表

配置文件/etc/exports
文件使用格式

<共享目录> 【客户端1 选项】 【客户端2 选项】
/share *(rw)

客户端常用指定方式

指定ip地址的主机192.168.1.1
指定子网中的所有主机192.168.3.0/24 192.168.3.0/255.255.255.0
指定域名的主机www.domain.com
指定域中的所有主机*.domain.com
所有主机*

常用选项
在这里插入图片描述
启动服务

systemctl restart rpcbind   
systemctl start nfs
rpcinfo -p 			//确认NFS是否启动

2)NFS 客户端

mount -t nfs -o nosuid,rw 192.168.12.102:/share /test

参数
在这里插入图片描述

配置案例

1开放/nfs/shared目录,公所有用户查询资料

服务端

mkdir /nfs/shared
vim /etc/exports
cat /etc/exports
/nfs/shared *(ro)
systemctl restart rcpbind
systemctl start nfs
systemctl stop firewalld

客户端

mount 172.24.5.35:/nfs/shared
2开放/nfs/upload目录作为172.24.8.0/24网段的数据上传目录,并将所有用户及所属的用户组映射为nfs-upload,其uid和gid均为210

服务端

mkdir /nfs/upload
chmod o=rwx /nfs/upload
echo "hello upload " > /nfs/upload/w
vim /etc/exports
cat /etc/exports
/nfs/shared *(ro)
/nfs/upload 172.24.8.0/24(rw,anonuid,anongid)
usermod -u 210 nfs-upload
groupmod -g 210 nfa-upload
exportfs -r

客户端

umount 172.24.5.35:/nfs/shared  //一个目录下只能挂载一个nfs服务端分享的一个目录
mount 172.24.8.35:/nfs/upload /mnt
cat /nfs/upload
hello upload
3将/home/tom目录仅共享给172.24.8.135这台主机,并只用用户tom可以完全访问该目录

服务端

mkdir /home/tom
setfacl -m -u:210:rwx /home/tom
chmod 000 /home/tmo
echo "hello tom " > /home/tom/e
vim /etc/exports
cat /etc/exports
/nfs/shared *(rw)
/nfs/upload 172.24.8.0/24(rw,anonuid,anongid)
/home/tom 172.24.8.135(rw)
exportfs -r

客户端

umount 172.24.8.135:/nfs/upload
mount 172.24.8.135:/home/tom /mnt
su - redhat
cd /mnt
bash: cd: /mnt: Permission denied
su - tom 
cd /mnt/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值