1 环境 ,以centos7.5为例
服务端 ..50.141
客户端 ..50.140
安装nfs-utils
2 安装
2.1 先检查nfs是否安装
rpm -qa|grep nfs
rpm -qa|grep rpcbind
2.2 如果没有安装 则安装nfs
先挂在相应系统的iso盘,或者配置好yum源
yum clean all
yum list |grep -i nfs
yum -y install nfs-utils.x86_64
2.3 配置两台主机的 /etc/hosts
2.4 启动nfs
service nfs start
service rpcbind start (网上有说centos7自带了rpcbind,可不用安装rpc服务)
配置开机启动
systemctl enable nfs-server.service
systemctl enable rpcbind.service
chkconfig nfs on
检查有没设置好
systemctl list-units (–all --type=service ) |grep -i nfs / rpcbind
chkconfig --list nfs
3 先配置服务端
vi /etc/exports
/nfsfile ..50.140(rw,no_all_squash,sync) 如果有允许多个客户端挂载,这里都要添加
exportfs -r /etc/exports 加了新的客户端,需要重新挂载,使配置生效
showmount -e 查看配置的允许挂载点
4客户端挂载
mout ..50.141:/nfsfile nfs_client 可能要mount -t nfs ..50.141:/nfsfile nfs_client
windows端挂载: 在运行执行:mout ..50.141:/nfsfile P: 相当于映射到虚拟P盘
备注:
rpcinfo -p ..50.141 服务端ip 可以看到连接的相应端口,在互联网端要在vcfc上开放2049 端口即可
例:
互联网客户端挂载dmz区服务端
互联网客户端:/etc/hosts 10.10.201.* 炎杰做,要变,nfs多个端口,一台用过就会占用了
dmz区服务端:/etc/hosts 18.10.0.254 ** /etc/exports 路径 18.10.0.254rw,sync)
https://blog.csdn.net/dengyadeng/article/details/79549632 网上配置安全
vi /etc/exports
/nfsfile ..50.140(rw,no_all_squash,sync)
NFS主要有3类选项:
访问权限选项:
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项:
all_squash: 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash: 与all_squash取反(默认设置);
root_squash: 将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx: 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx: 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure: 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure: 允许客户端从大于1024的tcp/ip端口连接服务器;
sync: 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async: 将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay: 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay: 若有写操作则立即执行,应与sync配合使用;
subtree: 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;