1. 简介
1) 介绍
NFS是Network File System的简写,即网络文件系统,也被称为NFS。NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远程系统上的文件
2) NFS好处
Ø 本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到
Ø 用户不必在每个网络机器中都有一个home目录,home目录可以被放在NFS服务器上并且在网络上处处可用
Ø U盘与CDROM等存储设备可以在网络上面被别的机器使用,这可以减少整个网络上的可移动介质设备的数量
3) 三个守护进程
Ø rpc.nfsd
基本的NFS守护进程,主要管理客户端是否能登入服务端
Ø rpc.mountd
RPC的安装守护进程,主要管理NFS的文件系统。当客户端通过rpc.nfsd登陆NFS服务端后,在使用NFS服务端所提供的文件前,还必须通过文件使用权限的验证,rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端权限
Ø portmap
portmap进行端口映射,当客户端尝试连接并使用RPC服务端提供的服务(如NFS服务)时,portmap会将所管理与服务对应的端口号提供给客户端,使客户端可以通过该端口向服务端请求服务。portmap如果没有运行,NFS客户端就无法查找从NFS服务端中共享的目录
4) 重要的文件
Ø /etc/exports
l 介绍
NFS中目录共享配置文件,用于编写需要共享的目录以及所共享的网络和用户权限
l 格式
共享的目录
[主机名称1|网段1|域1](参数1,参数2) [主机名称2|网段2|域2] (参数3,参数4)
l 参数:
n rw:
可读可写的权限
n ro:
只读的权限
n no_root_squash:
登入到NFS主机的用户如果是root用户,他就拥有root的权限,此参数很不安全,建议不要使用。
n root_squash:
客户端用root用户访问该共享文件夹时,将root用户映射成nobody用户
n all_squash:
不管登录NFS主机的用户是什么都会被重新设定为匿名用户
n anonuid:
将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中
n anongid:
同anonuid,但是换成group ID
n sync:
资料同步写入存储器中
n async:
资料会先暂时存放在内存中,不会直接写入硬盘
n insecure:
允许从这台机器过来的非授权访问
Ø /usr/sbin/exportfs
这是维护NFS共享资源的命令,我们可以用其重新分享/etc/exports变更的目录资源,并将NFS Server分享的目录卸载或重新分享等。这个命令是NFS系统中相当重要的
Ø /usr/sbin/showmount
showmount命令主要用在Client端,可以用来查看NFS共享出来的目录资源
Ø /var/lib/nfs/*tab
在NFS服务器的登录文件都放置到/var/lib/nfs/目录中,在该目录下有两个比较重要的登录文件,一个是etab,主要记录了NFS所分享出来的目录的完整权限设定值,另一个是xtab,记录曾经连接到此NFS主机的相关客户端数据
2. NFS配置(Linux5.4服务端,Linux9客户端)
1) 命令行配置
Ø 配置允许所有客户端的访问
l 编辑主配置文件
允许所有客户端访问/tmp目录具有读写权限
l 重启服务
要启用NFS服务,首先要启用portmap服务,在portmap激活之后,portmap会将服务对应的端口号提供给客户端,才能进行NFS服务的传输
l 测试
n 查看
在Linux 9下,使用showmount -e命令查看NFS服务器的共享目录
n 挂载
将服务端的/tmp目录挂载在根目录下的/nfs目录中,/nfs为自己创建的目录
n 查看文件
u 服务端创建文件
服务端在/tmp目录下创建zwb文件
u 客户端浏览文件
在客户端使用ll命令查看存在zwb文件,即可读,并创建zzj文件,创建成功,即可写
Ø 配置固定网段客服访问
l 编辑主配置文件
允许来自10.1.33.0/24网段的成员访问/tmp目录具有只读权限
l 重启服务
l 测试
n 网段内IP
u 查看IP
客户端IP为10.1.33.210/24,不在限制网段中,可以访问
u 查看
查看服务端所共享的目录
u 挂载
将服务端中的/tmp目录挂载在/nfs目录中
u 查看文件
使用ll命令查看,可以看到上面在/nfs中创建的2个文件,即可读,使用touch /nfs/zf在/nfs目录中创建zf文件,提示权限不够,因为服务端设置的为可读权限
n 网段外IP
u 查看IP
客户端IP为10.1.32.1/24,在限制网段中,不能访问
u 查看
在限制中的网段能够查看到服务端所共享的目录
u 挂载
挂载时提示权限不够
Ø 配置域的成员可以访问
l 编辑主配置文件
允许来自.zwb.nfs域的成员访问/tmp目录具有只读权限
l 重启服务
l 测试
n 域内主机
u 设置域
在服务端的hosts解析中加入对客户端地址的解析,解析为localhost.zwb.nfs,即.zwb.nfs域内
u 查看
在客户端查看服务端共享目录
u 挂载
挂载服务端共享目录
u 权限
因为只设置了可读权限,所以ll查看文件时,可以看到原来建立的2个文件,当用touch创建文件时,提示权限不够
n 域外主机
u 查看域
在服务端的hosts解析中加入对客户端地址的解析,解析为localhost.localdomain,即为.localdomain的域
u 查看
可以查看服务端共享目录
u 挂载
挂载时提示权限不够
Ø exportfs命令的使用
l 格式
exportfs [选项] [目录]
l 选项
n -a
启用或取消所有目录共享
n -r
重新共享所有目录
n -u
取消一个或多个目录共享
n -v
将详细的共享信息输出
l 实例
n 实例1
修改/etc/exports文件,添加/mnt *(rw),将/mnt用户
exportfs -v查看当前共享目录,没有刚刚写入的/mnt目录,exportfs -a启用所有共享目录,再次查看,可以看到刚刚写的/mnt目录,使用exports命令,在修改/etc/exports后不需要重启服务
n 实例2
修改/etc/exports文件,删除上面共享的/mnt目录
exportfs -v查看时/mnt目录依然没有去掉,exportfs -r重新共享所有目录,再次使用exportfs -v查看,没有/mnt目录了
n 实例3
exportfs -v查看,存在/tmp共享目录,使用exportfs -au,选项a与u组合使用,取消所有共享目录,再次查看时已经没有共享目录了
2) 图形化配置
Ø 安装
l 加载光盘
l 安装
Ø 配置
l 启动
在命令行中输入system-config-nfs启动NFS的图形化配置界面,工具条依次为添加,属性,删除,服务端设置,帮助
l Add按钮
n 基本配置页
Directory为需要共享的目录,单击Browse可图像化选择目录,Host为限制某主机、某网段或某域内用户可以访问,Read-only为只读权限,Read/Write为可读可写权限
n 一般选项页
从上到下依次为:允许从1024或更高的端口进行连接;允许锁定不安全的文件;禁止子树检查;被要求同步写操作;立即强制同步写操作;隐藏文件系统;只导出挂载的目录;导出挂载点;设置明确的文件系统ID
n 用户访问页
从上到下依次为:登入到NFS主机的用户如果是root用户,他就拥有root的权限;将所有客户端登录用户转换成匿名用户;匿名用户的本地用户ID,匿名用户的本地组ID
l Server Settings按钮
操作某些防火墙设置NFS的守护进程需要使用特定的网络端口,如果不需要强制使用特定的端口,这些空不填。下面分别表示rpc.locakd(TCP)、rpc.lockd(UDP)、rpc.mountd(TCP)、rpc.statd(TCP)所需要设置的端口
Ø 实例
l 配置
添加共享目录/tmp,允许所有客户端进行访问,并具有可读可写权限,单击OK
在主界面下面的列表中可以看到刚刚配置的共享目录
l 查看
客户端查看服务端所共享出来的目录
l 挂载
在本地/nfs挂载服务端的/tmp目录
l 测试
使用命令ll查看/nfs目录,看到上面创建的2个文件,使用touch /nfs/zf在/nfs目录创建zf文件,创建成功,ll命令可以查看到zf的文件
3. 扩展配置
1) 服务端
设置开机NFS服务
2) 客户端
实现开机自动挂载共享目录