NFS学习笔记

一、NFS原理

## 本次实验以CentOS7.7为例
[root@qll251 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@qll251 ~]#
  1. NFS,是Network File System的简写,即网络文件系统。
  2. 功能:不同操作系统的机器实现数据共享,使用RPC协议。
  3. 模式: C/S 模式(Client/Server模式)
  4. 端口号:2049
[root@qll251 ~]# grep nfs  /etc/services
nfs             2049/tcp        nfsd shilp      # Network File System
nfs             2049/udp        nfsd shilp      # Network File System
nfs             2049/sctp       nfsd shilp      # Network File System
[root@qll251 ~]#

5.版本:RHEL7是以NFSv4作为默认版本

[root@qll251 ~]# nfsstat -s
Error: No Server Stats (/proc/net/rpc/nfsd: No such file or directory).
[root@qll251 ~]#
#############为什么出现Error呢?因为咱们的NFS服务还没有安装呀

二、NFS-server服务安装

NFS-server必需安装两个安装包:nfs-utilsrpcbind
nfs-utils :包括基本的NFS命令与监控的程序
rpcbind :支持安全NFS RPC服务的连接

1)安装NFS-server
[root@qll251 ~]# yum -y install nfs-utils

2)验证是否安装成功

## ·&&
[root@qll251 ~]#  rpm -qa | grep nfs && rpm -qa | grep rpcbind
libnfsidmap-0.25-19.el7.x86_64
nfs-utils-1.3.0-0.65.el7.x86_64
rpcbind-0.2.0-48.el7.x86_64
[root@qll251 ~]#

三、NFS服务器端配置

1)在NFS-Server上创建共享目录,比如创建/tmp/share并设置权限

[root@qll251 ~]# mkdir -p /tmp/share
[root@qll251 ~]# chmod o+rwx /tmp/share
[root@qll251 ~]# ll  -d /tmp/share
drw-rw-rw- 2 root root 6 2月   3 16:38 /tmp/share
[root@qll251 ~]#

2)编辑NFS的配置文件:/etc/exports

NFS服务器通过读取/etc/exports配置文件设定哪些客户端可以访问及访问的权限。

/etc/exports文件格式

共享路径	 客户端主机1(选项) 客户端主机2 (选项) ...
/tmp/share 192.168.1.0/24(rw,sync,all_squash) #常用all_squash参数,将所有来访用户变成nfsnobody用户访问。

在这里插入图片描述

3)启动NFS服务,并使配置生效

[root@qll251 ~]# systemctl start rpcbind
[root@qll251 ~]# systemctl start nfs
[root@qll251 ~]# exportfs -rv
exporting 192.168.1.0/24:/tmp/share #我这里是允许192.168.1.0/24整个网段下的主机访问
[root@qll251 ~]#

4)NFS服务器端先自我测试下是否可以联机

[root@qll251 ~]# showmount -e localhost   //-e:Show the NFS server's export list.
Export list for localhost:
/tmp/share 192.168.1.0/24
[root@qll251 ~]#

到此,NFS服务侧的配置已完成,下面我们来讨论Linux及Windows客户端如何访问NFS共享资源

四、Linux客户端访问NFS资源

1)安装nfs-utils客户端

[root@qll252 ~]# yum -y install nfs-utils

2)创建挂载目录

[root@qll252 opt]# mkdir /shares

3)查看服务器端所共享的目录信息

[root@qll252 ~]# showmount -e 192.168.1.251
Export list for 192.168.1.251:
/tmp/share 192.168.1.0/24
[root@qll252 ~]#

4)挂载NFS服务器所共享的/tmp/share目录

# 格式: mount -t nfs `NFS服务器的IP`:`共享的目录` 客户端挂载点
[root@qll252 ~]# mount -t nfs 192.168.1.251:/tmp/share /shares
[root@qll252 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
192.168.1.251:/tmp/share   37G  1.6G   36G    5% /shares
[root@qll252 ~]#

以上mount方式为临时性挂载,重启后失效
若改为永久性开机自动挂载,则在/etc/fstab最后一行加入
192.168.1.251:/tmp/share /shares nfs _netdev 0 0

5)客户端使用NFS所共享的资源

[root@qll252 ~]# cd /shares/
[root@qll252 shares]# touch 123.txt
[root@qll252 shares]# mkdir dir
[root@qll252 shares]# ls
123.txt  dir
[root@qll252 shares]#

6)取消挂载

[root@qll252 ~]# umount /shares

五、Windows客户端挂载NFS

开头说过,NFS是C/S架构。因此Windows客户端同样需要安装NFS客户端软件,我们以Win7为例

1)点击开始 -> 控制面板->点击程序
在这里插入图片描述2)点击“打开或关闭windows功能”
在这里插入图片描述

3)展开NFS服务,勾选“NFS客户端”和“管理工具”;同时勾选上“基于unix的应用程序子系统”,然后点确定
在这里插入图片描述
qinlulu

4)等待安装

在这里插入图片描述

5)安装完毕,窗口会自动关闭。
这时我们按下win + r,输入cmd,进入命令提示符。
输入mount -h,查看下mount帮助信息(小技巧:未提示错误,也侧面说明咱正确安装了NFS客户端)
在这里插入图片描述
6)Win7执行挂载NFS操作

挂载格式:mount NFS的IPNFS目录名 挂载盘符
取消挂载:umount 挂载盘符

qinlulu

7)我们按下win+e,打开计算机资源管理器。可以看到,我们挂载的Z盘已存在
qinlulu

如果小伙们对DOS命令不太熟悉,我们也可以采用如下方式

(和第六步实现效果一样)

qinlulu

点击完成,完成网络驱动器映射
在这里插入图片描述

以两种方式,重启主机都需要手动从新映射。真是不厌其烦,因此我们可以写一个批处理文件,并设置开启启动。步骤如下:

# 编写nfs.txt文件
@echo off
start   "C:WindowsSystem32cmd.exe" 
net use Z: \192.168.1.251	mp	est
taskkill /f /im cmd.exe
exit
# 编写完毕,修改nfs.txt后缀为:nfs.bat。(后缀为bat结尾的,为Windows可识别的批处理脚本)
#以下是命令介解释:
#第一行命令作用:关闭脚本中命令执行的回显过程,那@echo on呢?聪明的您应该知道命令作用了
#第二行:启动cmd.exe程序
#第三行:将NFS服务器共享目录映射至本地Z盘
#第四行:命令执行完毕,关闭cmd命令窗口
#第五行:退出

批处理脚本编写完毕,我们可双击nfs.bat,手动查看是否映射成功。

接下来完成最后一步,将nfs.bat批处理文件加入Windows开启自启动目录

开始-->所有程序-->启动;右键打开-->将桌面上的nfs.bat放入
qinlulu

拉进去!
qinlulu

重启之后,效果如下:

重启电脑的图片就不展现了,在此保证任何实验都是经过本人亲自反复验证的。

qinlulu

更多IT技术,请微信搜索公众号“秦露露”或者扫描下方二维码关注
在这里插入图片描述

十年磨一剑
原文地址:https://www.cnblogs.com/qinlulu/p/12270261.html