NFS学习笔记
一、NFS原理
## 本次实验以CentOS7.7为例
[root@qll251 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@qll251 ~]#
- NFS,是Network File System的简写,即网络文件系统。
- 功能:不同操作系统的机器实现数据共享,使用RPC协议。
- 模式: C/S 模式(Client/Server模式)
- 端口号: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-utils和rpcbind
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的应用程序子系统”,然后点确定


4)等待安装

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

6)Win7执行挂载NFS操作
挂载格式:mount \NFS的IP\NFS目录名 挂载盘符
取消挂载:umount 挂载盘符

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

如果小伙们对DOS命令不太熟悉,我们也可以采用如下方式
(和第六步实现效果一样)

点击完成,完成网络驱动器映射

以两种方式,重启主机都需要手动从新映射。真是不厌其烦,因此我们可以写一个批处理文件,并设置开启启动。步骤如下:
# 编写nfs.txt文件
@echo off
start "C:\Windows\System32\cmd.exe"
net use Z: \\192.168.1.251\tmp\test
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放入

拉进去!

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

更多IT技术,请微信搜索公众号“秦露露”或者扫描下方二维码关注

NFS学习笔记的更多相关文章
- 文件共享总结下篇-NFS学习笔记
一.NFS原理 ## 本次实验以CentOS7.7为例 [root@qll251 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 ( ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- SQLite介绍、学习笔记、性能测试
SQLite介绍.学习笔记.性能测试 哪些人,哪些公司或软件在用SQLite: Nokia's Symbian,Mozilla,Abobe,Google,阿里旺旺,飞信,Chrome,FireFox可 ...
- AM335x(TQ335x)学习笔记——挂载Ramdisk
上篇文章中我们已经能够通过u-boot启动内核了,但是没有能够启动成功,从内核的log中可以看出,内核启动失败的原因是没有挂载到root文件系统,本文将使用busybox制作根文件系统并打包成ramd ...
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- Linux 学习笔记之超详细基础linux命令 Part 7
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 6----------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 5
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 4----------------- ...
- jz2440-linux3.4.2-kernel移植【学习笔记】【原创】
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 linux:linu3.4.2 PC环境:ubu ...
随机推荐
- vue集成ckeditor富文本框,怎么获取CKEditor实例?
CKEDITOR 版本5 ,vue集成形式 vue集成ckeditor富文本框,由于不是通过js创建的富文本对象,所以,无法取得实例对象,官方说明 官方在builds-->Getting and ...
- 订单突破10000+,仅花1小时,APPx独家深入剖析背后的秘密!
拼多多:成立三年,获客三亿,月订单成交额达到恐怖的400亿,成功上市! 糕妈优选:营销活动推送1小时,订单超过10000+,商品成功刷屏朋友圈! 寻慢:一场活动净增7000+粉丝,付款转化率高达71% ...
- ES6-11学习笔记--Promise
Promise是ES6异步编程解决方案之一,简化以前ajax的嵌套地狱,增加代码可读性. 基本用法: resolve,成功 reject,失败 let p = new Promise((resol ...
- idea maven web项目tomcat本地部署
条件:1.安装jdk 2.安装tomcat idea 创建maven web项目部署在 tomcat maven plugin中 本地部署: 1.新建maven web项目 2.输入项目名称 3. ...
- 关于Symbol.iterator 学习笔记
1.可以部署在对象上的一个遍历器 2. 遍历器是一个函数,需要返回一个含有一个next 方法的对象 const likeArray = {0:'a', 1: 'b', 2: 'c',3: 'd'. l ...
- css实现超出部分显示省略号
/* 显示一行,省略号 */ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; wo ...
- 实战-DRF快速写接口(认证权限频率)
实战-DRF快速写接口 开发环境 Python3.6 Pycharm专业版2021.2.3 Sqlite3 Django 2.2 djangorestframework3.13 测试工具 Postma ...
- python函数基础算法简介
一.多层语法糖本质 """ 语法糖会将紧挨着的被装饰对象名字当参数自动传入装饰器函数中""" def outter(func_name): ...
- vwware workstation虚机网络配置NAT
1.在编辑中选择虚拟网络编辑器,新增NAT模式网络适配器,如下图: 2.在虚拟机中选择设置,在网络适配器中自定义为上一步配置的网络适配器,如下图: 3.进入虚拟机后,编辑/etc/sysconfig/ ...
- 聊聊UI自动化的PageObject设计模式
当我们开发UI自动化测试用例时,需要引用页面中的元素(数据)才能够进行点击(动作)并显示出页面内容.如果我们开发的用例是直接对HTML元素进行操作,则这样的用例无法"应对"页面中U ...