Linux 笔记

NFS 网络文件系统

2020-04-04  本文已影响0人  一枝哀

NFS介绍

NFS (Network File System)的缩写,中文意思是网络文件系统,主要功能是通过局域网让不同的主机系统之间可以共享文件或目录。

一、环境准备

二、服务端配置

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
  1. 检验是否共享成功,可以在服务端的共享目录中创建文件,然后在客户端的挂载目录中查看是否同步过来了。或者在客户端中创建文件去服端查看。

四、windows中挂载nfs

1.windows启动nfs服务


image.png

2.在此电脑,映射驱动器中添加nfs地址和要共享的目录

image.png
image.png
上一篇下一篇

猜你喜欢

热点阅读