NFS /etc/exports参数解释
nfs 安装
- 执行以下命令安装 nfs 服务器所需的软件包
yum install -y nfs-utils - 执行命令
vim /etc/exports,创建 exports 文件,文件内容如下:/root/nfs_root/ *(insecure,rw,sync,no_root_squash) - 执行以下命令,启动 nfs 服务
# 创建共享目录,如果要使用自己的目录,请替换本文档中所有的 /root/nfs_root/
mkdir /root/nfs_root systemctl enable rpcbind
systemctl enable nfs-server systemctl start rpcbind
systemctl start nfs-server
exportfs -r - 检查配置是否生效
exportfs
# 输出结果如下所示
/root/nfs_root /root/nfs_root
先简单介绍一下NFS服务器是什么?
NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端的NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。
RPC(Remote Procedure Call)
NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
ubuntu系统
服务器端(192.168.94.54)
1.1安装NFS服务:
执行以下命令安装NFS服务器,
apt会自动安装nfs-common、rpcbind等13个软件包
sudo apt install nfs-kernel-server
1
1.2编写配置文件:
编辑/etc/exports 文件:
sudo vi /etc/exports
/etc/exports文件的内容如下:
/tmp *(rw,sync,no_subtree_check,no_root_squash)
/data *(rw,sync,no_subtree_check,no_root_squash)
/logs *(rw,sync,no_subtree_check,no_root_squash)
Exports文件中可以设定的参数主要有以下这些:
参数 说明
(1) Ro 该主机对该共享目录有只读权限
(2) Rw 该主机对该共享目录有读写权限
(3) Root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
(4) No_root_squash 客户机用root访问该共享文件夹时,不映射root用户
(5) All_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
(6) Anonuid 将客户机上的用户映射成指定的本地用户ID的用户
(7) Anongid 将客户机上的用户映射成属于指定的本地用户组ID
(8) Sync 资料同步写入到内存与硬盘中
(9) Async 资料会先暂存于内存中,而非直接写入硬盘
(10) Insecure 允许从这台机器过来的非授权访问
(11) subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
(12) no_subtree_check 和上面相对,不检查父目录权限
(13) wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
(14 )no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
(15) hide 在NFS共享目录中不共享其子目录
(16) no_hide 共享NFS目录的子目录
(17) secure NFS通过1024以下的安全TCP/IP端口发送
(18) insecure NFS通过1024以上的端口发送
/ user01(rw) user02(rw,no_root_squash) 表示共享服务器上的根目录(/)只有user01和user02两台主机可以访问,且有读写权限;user01主机用root用户身份访问时,将客户机的root用户映射成服务器上的匿名用户(root_squash,该参数为缺省参数),相当于在服务器使用nobody用户访问目录;user02主机用root用户身份访问该共享目录时,不映射root用户(no_root_squash),即相当于在服务器上用root身份访问该目录
/root/share/ 192.168.1.2(rw,insecure,sync,all_squash) 表示共享服务器上的/root/share/目录只有192.168.1.2主机可以访问,且有读写权限;此主机用任何身份访问时,将客户机的用户都映射成服务器上的匿名用户(all_squash),相当于在服务器上用nobody用户访问该目录(若客户机要在该共享目录上保存文件(即写操作),则服务器上的nobody用户对该目录必须有写的权限)
/home/ylw/ .test.com (rw,insecure,sync,all_squash) 表示共享/home/ylw/目录,.test.com域中所有的主机都可以访问该目录,且有读写权限
/home/share/ .test.com (ro,sync,all_squash,anonuid=zh3,anongid=wa4) 表示共享目录/home/share/,*.test.com域中的所有主机都可以访问,但只有只读的权限,所有用户都映射成服务器上的uid为zh3、gid为wa4的用户
1.3创建共享目录
在服务器端创建/tmp /data和/logs共享目录
sudo mkdir -p /tmp
sudo mkdir -p /data
sudo mkdir -p /logs
1.4重启nfs服务:
sudo service nfs-kernel-server restart
1.5常用命令工具:
在安装NFS服务器时,已包含常用的命令行工具,无需额外安装。
显示已经mount到本机nfs目录的客户端机器。
sudo showmount -e localhost
将配置文件中的目录全部重新export一次!无需重启服务。
sudo exportfs -rv
查看NFS的运行状态
sudo nfsstat
查看rpc执行信息,可以用于检测rpc运行情况
sudo rpcinfo
查看网络端口,NFS默认是使用111端口。
sudo netstat -tu -4
客户端(192.168.94.76)
2.1安装客户端工具:
在需要连接到NFS服务器的客户端机器上,
需要执行以下命令,安装nfs-common软件包。
apt会自动安装nfs-common、rpcbind等12个软件包
sudo apt install nfs-common
2.2查看NFS服务器上的共享目录
显示指定的(192.168.94.54)NFS服务器上export出来的目录
sudo showmount -e 192.168.94.54
2.3创建本地挂载目录
sudo mkdir -p /mnt/data
sudo mkdir -p /mnt/logs
2.4挂载共享目录
将NFS服务器192.168.94.54上的目录,挂载到本地的/mnt/目录下
sudo mount -t nfs 192.168.94.54:/data /mnt/data
sudo mount -t nfs 192.168.94.54:/logs /mnt/logs
注:在没有安装nfs-common或者nfs-kernel-server软件包的机器上,
直接执行showmount、exportfs、nfsstat、rpcinfo等命令时,
系统会给出友好的提示,
比如直接showmount会提示需要执行sudo apt install nfs-common命令,
比如直接rpcinfo会提示需要执行sudo apt install rpcbind命令。
centos6系统
1、安装nfs和rpcbind
检查自己的电脑是否已经默认安装了nfs和rpcbind:
# rpm -aq | grep nfs
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-75.el6_9.x86_64
# rpm -aq | grep rpcbind
rpcbind-0.2.0-13.el6_9.1.x86_64
这表示系统已经默认安装。如果没有安装也没事,可以采用下面的命令安装
# yum install nfs-utils rpcbind
2、配置nfs的配置文件和hosts文件
创建需要共享的目录:默认用/mnt
配置nfs的配置文件:
vim /etc/exports
在这个文件中添加需要输出的目录,如:
/usr/local/static *(rw)
/usr/local/static:表示的是nfs服务器需要共享给其他客户端服务器的文件夹
*:表示可以挂载服务器目录的客户端ip
(rw):表示该客户端对共享的文件具有读写权限
配置hosts文件:vim /etc/hosts
192.168.93.5 tomcat-01
192.168.93.7 tomcat-02
192.168.93.5:表示服务器本机的ip地址
tomcat-01:表示服务器的机器名
3、启动nfs和rpcbind服务、检测服务状态、已经设置服务开机启动
启动服务:
#service rpcbind start
#service nfs start
检查启动状态:
#service rpcbind status
#service nfs status
4、检测服务器的nfs状态
# showmount -e localhost 查看自己共享的服务
Export list for hostname:
/usr/local/static *
注意:在执行这个命令的时候如果出现错误,说明DNS不能解析当前的服务器,那就是hosts文件没有配置。
5、客户端挂载NFS中共享的目录
客户端服务器也需要安装nfs 和 rpcbind 服务。
首先是启动nfs和rpcbind服务。
查询服务端共享的文件目录:
showmount -e 192.168.93.5
Export list for 192.168.93.5:
/usr/local/static *
创建挂载目录:
#cd /mnt
#mkdir static
挂载服务端的共享目录:
# mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.93.5:/usr/local/static /mnt/static
查看挂载的状态:
# mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.93.5:/usr/local/static on /mnt/static type nfs (rw,nolock,nfsvers=3,vers=3,addr=192.168.93.5)
6、测试共享
服务器创建文件:
#cd /usr/local/static
#touch test123
#echo "123" > test123
客户端查看文件:
#cd /mnt/static
#ll -h
total 4.0K
-rw-r--r--. 1 root root 4 Dec 26 10:06 test123
————————————————
版权声明:本文为CSDN博主「三支烟」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36357820/article/details/78488077
NFS /etc/exports参数解释的更多相关文章
- http load 的使用以及参数解释
http load 的使用以及参数解释 1.参数含义 参数 全称 含义 -p -parallel 并发的用户进程数.-f -fetches ...
- /etc/sysctl.conf参数解释
/etc/sysctl.conf参数解释: fs.file max = 999999 #表示进程(例如一个worker进程)可能同时打开的最大句柄数,直接限制最大并发连接数 net.ipv4.tcp_ ...
- mount nfs的可选参数
mount nfs的可选参数:HARD mount和SOFT MOUNT:HARD:NFS CLIENT会不断的尝试与SERVER的连接(在后台,不会给出任何提示信息,在LINUX下有的版本仍然会给出 ...
- lcd参数解释及刷新率计算,LCD时序
一.LCD显示图像的过程如下: 其中,VSYNC和HSYNC是有宽度的,加上后如下: 参数解释: HBP(Horizontal Back Porch)水平后沿:在每行或每列的象素数据开始输出时要插入的 ...
- Yolov3参数解释以及答疑
目录 参数解析 训练答疑 参数解析 [net] #Testing #batch=1 //test:一次一个图片 #subdivisions=1 #Training batch=32 //一次迭代送 ...
- angular-cli.json配置参数解释,以及依稀常用命令的通用关键参数解释
一. angular-cli.json常见配置 { "project": { "name": "ng-admin", //项目名称 &quo ...
- mysql命令行各个参数解释
mysql命令行各个参数解释 http://blog.51yip.com/mysql/1056.html Usage: mysql [OPTIONS] [database] //命令方式 -?, ...
- Wget用法、参数解释
wget功能的强大就不用多说了,在高手手里,它就像是个无往不利的杀人利器,下面是转载的一篇Wget用法.参数解释的比较好的一个文章,当然最好的老师还是man wget 是一个从网络上自动下载文件的自由 ...
- my.cnf 配置文件参数解释
my.cnf 配置文件参数解释: #*** client options 相关选项 ***# #以下选项会被MySQL客户端应用读取.注意只有MySQL附带的客户端应用程序保证可以读取这段内容.如果你 ...
随机推荐
- 初至cnblogs —— 博客搬迁
感觉写博客是一种总结.分享知识的有效方式,于是打算坚持通过博客这一载体来提升自己. 最初通过 Hexo + GitHub Page 来搭建个人博客,但是通过这种方式搭建的博客基本没有访问量.个人感觉没 ...
- pycharm中导入包失败的解决办法
将鼠标移动到requests处,出现如下提示 按住alt+enter键,点击install package requests即可安装requests包 安装成功后
- 分布式配置中心(Native - Config)
本章只讲 Spring Cloud 本地配置方式,可以很方便的高可用集群,且存在良好通讯,不用担心云服务器与内网之间GIT带来的不便,GIT(网上GIT教程一搜一大把了….) - 快速开始 Sprin ...
- SELinux已经允许,为什么日志显示的仍然是denied?
从日志可以看到,SELinux的Mode已经修改位了permissive = 1,也就是允许模式,但它前面的日志仍然显示的是“denied".本来我还以为是自己哪里没弄好导致的这个问题,但访 ...
- Android 错误异常之Error:Unable to resolve dependency for ':app@debug/compileClasspath': Could。。。。
这个错误一般出现在导入别人的项目的时候出现的, 我出错原因是,as版本3.5.2用了几个月感觉不如3.0.1的带劲,so 该到了3.0.1 ,出现了这个错, 之前也遇到过,基本都是gradle版本的错 ...
- python基础知识-1
1.python是静态的还是动态的?是强类型还弱类型? python是强类型的动态脚本语言: 强类型:不允许不同类型相加 动态:不使用显示类型声明,且确定一个变量的类型是在第一次给它赋值的时候 脚本语 ...
- (私人收藏)商务工作学习万能简约大气PPT模板
商务工作学习万能简约大气PPT模板 https://pan.baidu.com/s/1aPnPZ285N5VSSErro1cPngehoa
- web图片前端裁剪功能实现_利用html5 canvas技术实现图片裁剪
用户上传头像然后截图的需求很常见,很多做法是把图像发送到后端,把裁剪后的结果发送给浏览器,这种方式会增加处理时延.最近正好学习了HTML5里的canvas,发现它的图片处理功能比较强大,就打算用can ...
- 你从来没了解过的CSS浮动
浮动到底是做什么呢?他们是如何影响相关元素的盒模型的呢?浮动的元素与内联元素有什么不同呢?制定浮动元素的位置的具体规则是什么?clear属性是如何工作的,并且它的作用是什么? 即使是经验丰富的开发者也 ...
- CF833 A The Meaningless Game
题干 Slastyona and her loyal dog Pushok are playing a meaningless game that is indeed very interesting ...