是C/S(客户机/服务器) 架构,可以实现Linux 系统之间的文档共享
(Linux 和Windows 间的文档共享需采用SAMBA 服务);
注意: NFS 只是一种文档系统,本身没有传输功能,是基于RPC协议才能达到两个Linux系统之间的文档目录共享;
它的功能是指定每个NFS功能对应的端口号,当NFS服务器启动时会随机启用数个端口号,并主动向RPC注册,
这样RPC就知道每个端口号对应的功能了,RPC使用111号端口来监听客户机的请求并回应正确的端口号。
注意: 启动NFS之前要先启动RPC,否则NFS无法向RPC注册,当RPC重新启动后,原来注册的端口数据会丢失,
这时,它管理的所有程序都必须重新向RPC注册。
rpm -qa | grep rpcbind(centos6以下版本名为portmap)
rpm -qa | grep nfs
执行之后显示为空则表示没有安装
方式1: 一起安装(推荐)
yum install nfs-utils rpcbind -y
方式2:分别安装
安装nfs:
yum install nfs-utils.x86_64(64位系统)
yum install nfs-utils(32位系统)
安装rpcbind服务:
yum install rpcbind(centos6以下版本为portmap)
格式:共享目录 授权可访问的ip,也可以是范围(参数见附录)
实例:/home/share 192.168.127.33(insecure,rw,sync,no_root_squash)
注:也可使用通配符方式:192.168.127.* 或 192.168.。
1、/etc/init.d/rpcbind start
2、/etc/init.d/nfs start
注:如果系统是centOS7,命令为:systemctl start rpcbind.service
/etc/init.d/nfs status
/etc/init.d/rpcbind status
prcinfo -p (localhost)
-a:全部mount 或unmount /etc/exports中的内容
-r:重新加载 /etc/exports中分享出来的目录
-u:卸载某一目录 (exportfs -au//全部卸载)
-v:在export的时候,将分享的目录显示到荧屏上。
参照服务器端进行查看、安装、启动(不需配置etc/exports),
验证(查看能否访问服务端目录:Showmount -e 服务器端ip),之后需要挂载。
mount -t nfs 服务器端ip:共享目录 挂载点(客户端文件夹)
mount -t nfs 10.130.29.33:/home/share /home/shareTwo/
注:可能需要修改目录权限 :chmod 777 -R /home/shareTwo/
! bin/bash
# 2018-09-05 nfs mount
#echo "please input server:"
#read server
read -p "please input clint:" clint
mount -t nfs 10.130.29.33:/home/ivrShare $clint
#mount -t nfs $server $clint
#mount -t nfs 10.130.29.33:/home/ivrShare /home/shareSleeTwo/
解决办法:退出挂载的目录
解决办法:通过lsof /mnt查看是哪个进程占用了/mnt,然后kill -9 $pid ,之后在卸载。
也可使用umount -l /mnt(-l:卸载前检查占用该挂载文件的程序并迅速kill掉,以达到快速卸载的目的)
解决方法:重启nfs
解决:在/etc/exports 中加入参数insecure
注意挂载参数(是否写反)
关掉 重启rpc
被访问的服务器有防火墙
检查防火墙:service iptables status。
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS服务器共享目录用户的属性,如果用户是root,那么对于这个共享目录来说就具有root的权限。root_squash: 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份;
all_squash: 不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody 啦!
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录(默认)
subtree_check 如果共享/usr/bin之类的子目录,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID