NFS介绍
NFS (Network File System)的缩写,中文意思是网络文件系统,主要功能是通过局域网让不同的主机系统之间可以共享文件或目录。
一、环境准备
- 两台 centos 7 系统主机
- 内网ip互通
- 修改主机名,配置hosts文件
- 关闭防火墙
二、服务端配置
1.安装 nfs 服务 和 rpc 服务
RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解 rpc 就是一个中介服务。
[root@server-nfs ~]# yum install nfs-utils rpcbind -y
2.启动rpc服务和nfs服务并设置开机自启
# 先启动 rpcbind 服务
[root@server-nfs ~]# systemctl start rpcbind
[root@server-nfs ~]# systemctl enable rpcbind
# 在启动 nfs 服务
[root@server-nfs ~]# systemctl start nfs-server
[root@server-nfs ~]# systemctl enable nfs-server
3.创建一个共享目录,然后配置 /etc/exports 文件
# 创建共享目录
[root@server-nfs ~]# mkdir /public
# 编辑配置文件
[root@server-nfs ~]# vim /etc/exports
[root@server-nfs ~]# cat /etc/exports
/public 172.168.100.0/24(rw,sync,all_squash)
# 重启nfs服务
[root@server-nfs ~]# systemctl restart nfs
# 配置参数说明
ro 只读
rw 读写
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
4.修改共享目录的属主和属组为nfsnobody
[root@server-nfs ~]# chown nfsnobody:nfsnobody -R /public/
[root@server-nfs ~]# ll -d /public/
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Apr 4 03:55 /public/
[root@server-nfs ~]#
为什么修改:
# 查看这个共享目录的权限
[root@server-nfs ~]# cat /var/lib/nfs/etab
/public 172.168.100.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
[root@server-nfs ~]#
# 可以看到客户端访问时会以65534的用户权限来访问服务端,所以需要把服务端共享目录属主和属组为nfsnobody
[root@server-nfs ~]# cat /etc/passwd |grep "65534"
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@server-nfs ~]#
# 可以通过修改anonuid来控制用户访问
三、客户端配置
1.安装rpcbind服务和nfs服务
[root@client-nfs-node1 ~]# yum install rpcbind nfs-utils -y
2.只启动 rpchbind 服务
[root@client-nfs-node1 ~]# systemctl start rpcbind
3.查看服务端共享目录信息
[root@client-nfs-node1 ~]# showmount -e server-nfs
Export list for server-nfs:
/public 172.168.100.0/24
[root@client-nfs-node1 ~]#
showmount命令的用法:
-e 显示NFS服务器的共享列表
-a 显示本机挂载的文件资源的情况NFS资源的情况
-v 显示版本号
4.创建目录,并把nfs共享目录挂载过来
# 创建本地目录
[root@client-nfs-node1 ~]# mkdir /root/data
# 挂载服务端nfs共享目录到本地创建的目录
[root@client-nfs-node1 ~]# mount -t nfs server-nfs:/public /root/data
# 查看挂载情况
[root@client-nfs-node1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 100G 879M 100G 1% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 483M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /mnt
server-nfs:/public 100G 971M 100G 1% /root/data
[root@client-nfs-node1 ~]#
# 设置开机自动挂载
[root@client-nfs-node1 ~]# echo "server-nfs:/public /root/data nfs defaults 0 0" >> /etc/fstab
- 检验是否共享成功,可以在服务端的共享目录中创建文件,然后在客户端的挂载目录中查看是否同步过来了。或者在客户端中创建文件去服端查看。
四、windows中挂载nfs
1.windows启动nfs服务
image.png
2.在此电脑,映射驱动器中添加nfs地址和要共享的目录
image.pngimage.png
网友评论