准备
nfs如果不是最小化安装默认是安装了的,可以service nfs start
或systemctl start nfs
启动,如果没有则执行安装yum install nfs-utils -y
服务端
/etc/exports 为nfs服务端配置文件。
配置文件格式
输出目录
客户端1 (访问权限,用户映射,其他) ]
客户端2 (访问权限,用户映射,其他)
……
格式说明
输出目录:NFS系统共享给客户机使用的目录
客户端:网络中可以访问这个NFS输出目录的计算机
- 192.168.0.10:指IP地址
- 192.168.0.0/24:指定子网
- fwd.nocsys.cn:指定域名
- *.nocsys.cn:指定域
- *:所有主机
访问权限:设置NFS输出目录的访问权限
- ro:只读
- rw:读写
用户映射:
- all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组
- no_all_squash:不映射(默认设置)
- root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
- no_root_squash:root用户对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样
- 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服务器也不检查其父目录的权限,这样可以提高效率
例如
/root/nfs
192.168.43.0/24 (rw,sync,no_root_squash)
192.168.1.0/24 (rw)
/root/nfs | 代表共享出来的目录 |
192.168.43.0/24 | 允许192.168.43.0/24的网络访问此共享。 |
rw | 表示权限 读写 |
sync | 表示同步写入 |
no_root_squash | 表示客户机以root访问时赋予本地root权限 |
启动服务
systemctl enable nfs
systemctl start nfs
客户端配置
安装服务
yum install nfs-utils -y
搜索NFS
showmount -e 192.168.43.1
Export list for 192.168.43.1:
/root/nfs 192.168.43.1/24
挂载目录
mkdir /nfs
mount 192.168.43.1:/root/nfs /nfs
showmount -a 192.168.43.1
All mount points on 192.168.43.1:
192.168.43.13:/root/nfs
取消挂载
umount /nfs/
命令帮助
showmount -e
可以查看本机发布的共享目录
在客户机 showmount -e 服务端ip
可以查看服务器的目录
客户端命令:showmount -e 192.168.43.1
:查询NFS共享状态showmount -a 192.168.43.1
:显示已经与客户端建立连接的目录信息
挂载命令(需要安装nfs-utils):mount 192.168.43.1:/root/nfs /nfs
如果报错
clnt_create: RPC: Program not registered
解决方法:
在服务器端输入rpc.mountd