1、这个服务是进行linx下的文件传输,后面博客会出现samba是进行windows和linux之间的文件传输。
2、nfs的用处:本地工作站会使用更少的磁盘的空间,把数据放在一个机器上面。
用户不用每个机器都设置一个home目录,可以放在nfs服务器上。
3、关于服务的端口:web:80 | dhcp: 67 | ftp: 21 | nfs:采用动态的端口 | netbios:137~139
nfs:每个功能提供服务时候都会选择一个小玉1024的端口提供服务。
4、rpc(remote procedure call)远程进程调用
作用:记录每个nfs功能所对应的端口,他工作在固定的端口111,客户访问服务nfs时候就会访问服务i器的111端口(rpc),rpc将工作端口返回给用户客户端,nfs启动时候会向 rpc服务器注册。
5、nfs服务的组件
rpc.nfsd:判断检查客户端是否具有登陆主机的权限
rpc.munted:管理nfs文件系统
rpc.locked:处理崩溃的系统锁定的服务
rpc.stated:负责处理多用户同时使用一个文件造成破坏的时候,他进行恢复
rpc.quoted:接口
6、nfs的安装和配置
所需的组件:protmap端口映射,nfs-utils提供rpc.nfsd和rpc.mounted
服务配置:exports文件(/etc/exports):有的时候是没有这个文件的,需要手动建立(vim /etc/exports)
exports文件中的格式(例子)
home 102.142.173.12 9(ro) localhost(rw) *(ro,sync)
共享文件 第一台ip的访问权限 可用主机的和访问权限 其他主机
注意如果权限有多个的时候,权限要用逗号分开,主机和权限的括号是要连在一起的。
权限:rw:read-write:可读可写的权限。
ro:read-only:只读的文件。
sync:数据同步写到内存和磁盘中。
async:数据只写到内存中,并不直接同步写入硬盘中的。
no_root_squash:登陆nfs主机使用共享的目录,设置导致不安全,特别是以root身份登陆的。
root_squash:无论是哪个用户登陆,都是以匿名形式登陆。
anonuid和anongid
7、重新启动服务service rpcbind restart
service nfs restart
注意:两部都是要进行的,因为nfs服务是在rpc基础上进行服务的
8、客户端的nfs系统
查看共享资源;showmount -adehv
-a:查看服务器上的输出目录和客户机上的信息
-d;只显示被客户使用的输出目录信息
-e;输出所有的共享资源
exportfs
-a:全部挂载(卸载)/etc/exports文件中的设置
-r:重新挂载/etc/exports里面的设置,同时更新到/etc/exports
-u:卸载摸个目录
-v;zai exports的时候,讲共享目录显示到屏幕上
服务器上的nfs系统
确认服务器已经启动了rpcbind
建立共享目录
编辑exports目录进行服务器的相关设置
重启服务包括rpcbind和nfs服务
9.加载nfs服务器(要注意linux系统的防火墙和selinux)
确认本地已经启动了rpc
查看nfs服务器上的共享文件(showmount)
在本地建立挂载点(mkdir)
利用mount将主机直接挂载到相关的目录。
mount -t nfs服务器的地址:共享目录 本地挂载点
10.自动挂载工具autofs(后面会单独有博客)
11.nfs安全的特性
这个模块我认为是很重要的,作为运维,主要是保证服务器安全稳定的运行。
首先是服务器在配置exports权限的时候是要考虑安全的因素,保证共享文件的安全。
一般nfs的服务只对内网开放,我们要将防火墙关闭(iptables -F),但是在现实中防火墙机制是要保证服务不被攻击的第一道防线,所以不建议胡乱的关闭防火墙。
那么我们要考虑端口的访问/etc/sysconfig/nfs文件中,在这个文件设置特定的端口,这样就可以针对端口进行防火墙的设置了。
一般在要改的数据有:mountd,rquotad,nlockmgr
vim /etc/sysconfig/nfs
RQUOTAD_PORT=1001
LOCKD_TCPPORT=30001
LOCKD_UDPPORT=30001
NOUNTD_PORT=1002
12.工作的过程:
客户会向服务器端口的rpc(111)发出nfs文件访问的要求
服务器找到已注册nfs daemon端口后通知给用户
客户端了解真确的端口后,就可以直接与nfs daemon 链接了