nfs服务器搭建
一.环境介绍 本实验使用了两台centos7虚拟机,其中
服务器:192.168.1.188
客户端:192.168.1.189
二.实验步骤 192.168.1.188上执行(服务器端)
1.使用yum -y install nfs-utils 因为centos7自带了rpcbind,所以不用安装rpc服务,rpc监听在111端口,可以使用 ss -tnulp | grep 111查看rpc服务是否自动启动,如果没有启动,就systemctl start rpcbind 启动rpc服务。rpc在nfs服务器搭建过程中至关重要,因为rpc能够获得nfs服务器端的端口号等信息,nfs服务器端通过rpc获得这些信息后才能连接nfs服务器端。
2.使用 rpm -qa nfs-utils 查看是否安装成功,
3.编辑/etc/exports ,添加以下内容 /data 192.168.1.0/24(rw,async)
4.启动nfs服务,systemctl start nfs ,启动后 使用rpcinfo -p 192.168.1.188 查看,如图所示
5.使用showmount -e localhost
6 .创建/data目录添加文件,更改权限(很重要!!!!!)
mkdir /data
touch /data/1.txt
echo "hello nfs" >> /data/1.txt
chown -R nfsnobody.nfsnobody /data
在192.168.1.189上执行(客户端)
1.yum -y intall nfs-utils (客户端上不需要启动nfs服务,只是为了使用showmount工具)
2.检测rpc是否启动,
3.使用showmount -e 192.168.1.188查看
4.挂载至本地/mnt目录
mount -t nfs 192.168.1.188:/data /mnt
1.txt可读写 。 nfs挂载完成。 接下来在服务器端执行 systemctl enable nfs-server.server systemctl enable rpcbind 让nfs,rpcbind开机自动启动,实验完成。
三.NFS服务的主配置文件:/etc/exports:
格式:[共享的目录] [主机名或IP(参数,参数)]当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,
可以这样: [共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
第一列:欲共享出去的目录,也就是想共享到网络中的文件系统;
第二列:可访问主机
192.168.152.13 指定IP地址的主机
nfsclient.test.com 指定域名的主机
192.168.1.0/24 指定网段中的所有主机
*.test.com 指定域下的所有主机
* 所有主机
第三列:共享参数下面是一些NFS共享的常用参数:
ro 只读访问
rw 读写访问
sync 资料同步写入到内存与硬盘当中
async 资料会先暂存于内存当中,而非直接写入硬盘
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 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户
anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 可以自行设定这个UID的值,这个UID必需要存在于你的/etc/passwd当中
例如可以编辑/etc/exports为: /tmp *(rw,no_root_squash) /home/public 192.168.0.*(rw) *(ro) /home/test 192.168.0.100(rw) /home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)