03-NFS
nfs特征
NFS是系统间进行文件共享的一种网络协议
在NFS的应用结构中有服务器和客户机两种角色
NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录
在同一台主机中即可以是NFS服务器也可以作为NFS客户机
RPC protocol
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
安装nfs
portmap/rpcbind
提供了运行portmap服务所需的文件。portmap服务为NFS等服务器程序提供RPC服务的支持
nfs-utils
提供了NFS服务器的启动脚本和管理维护工具
mount
默认端口:2049
配置nfs
exports - NFS server export table
/etc/exports
字段格式
nfs共享目录 客户端主机地址 设置选项
nfs共享目录
共享文件的主机上的目录
客户端主机地址
指定IP
指定域名
指定网段
注定域名下的所有主机
所有主机
设置选项
sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项
ro:设置输出的共享目录只读,与rw不能共同使用
rw:设置输出的共享目录可读写,与ro不能共同使用
no_root_squash 压缩用户root为普通用户权限
例子:/etc/exports
/nfs 192.168.10.1(sync,ro,no_root_squash) 172.16.0.0/16(sync,ro)
client挂载nfs
1、/etc/fstab
server-nfs-dir client-mount-dir nfs defaults 0 0
2、 mount -t nfs IP:/dir
[root@localhost ~]# mount -t nfs 172.16.249.216:/nfs /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
centos7
exportfs命令
#重新输出共享目录,使nfs服务器重新读取exports文件中的设置
exportfs -rv
#停止输出所有目录,停止当前主机中NFS服务器的所有目录输出
exportfs -auv
#输出(启用)所有目录,输出当前主机中NFS服务器的所有共享目录
showmount -e
启动nfs服务
CentOS 7
[root@husa system]# systemctl start nfs-server.service
[root@husa system]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 64 *:2049 *:*
LISTEN 0 64 *:38242 *:*
LISTEN 0 128 *:57061 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:20048 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 64 :::2049 :::*
CentOS 6
/etc/init.d/nfs start
漏洞
client通过uid与nfs下的文件的属主比对,如果相同则