Linux实现NFS

操作系统是CentOS6.5

1.首先需要两个虚拟机,一个作为服务端,一个作为客户端,分别使用下列命令检查客户端和服务端是否安装了nfs和rpc相关的包
Linux实现NFS
92C4C101-23A2-44EF-93B6-5D779EE410CD.png

如果没有安装,请执行下列命令安装

Linux实现NFS
89D270DF-1A91-4D64-A954-82933088CAFA.png

使用下列命令可以查看是否安装成功,安装成功了会像下面这样显示

Linux实现NFS
image.png
2.在服务端配置nfs的固定端口,方便于之后配置防火墙规则,当然你也可以跳过这一步,选择关闭防火墙,但是这样安全性不高

使用vim打开/etc/sysconfig/nfs 文件,在底部添加如下配置

Linux实现NFS
image.png

然后保存退出

3.配置服务端需要挂着的目录,使用vim打开/etc/exports文件,按照如下规则配置
Linux实现NFS
image.png

/mnt是我要挂着到客户端的目录
192.168.1.107是我客户端的ip地址,你也可以写成一个网络地址如192.168.1.0/24,这样在这个网络下的主机都能挂载,如果写的是*,那么所有主机都可以远程挂着这个目录
括号里的参数有很多
rw:具有读写权限
sync:资料同步写入磁盘和内存
o:只读权限
no_root_squash:登入nfs主机时,拥有共享目录所有者权限
root_squash:登入nfs主机时,拥有共享目录所有者权限,但如果共享目录的拥有者时root用户,那么登入者权限为nobody权限
all_squash:登入nfs主机时,拥有nobody用户权限
anonuid:指定用户id
anongid:指定群id
async:资料先存内存,再存硬盘
no_subtree_check:不检查父文件夹权限
subtree:检查父文件权限
secure:限制client port(<1024)

4.启动服务器端服务

首先启动rpcbind

Linux实现NFS
image.png

启动nfs

Linux实现NFS
image.png
5.接下来在服务端添加防火墙规则,这里是我的采坑经历,首先使用命令

rpcinfo -p查看需要配置防火墙规则的端口

Linux实现NFS
image.png

使用vim打开/etc/sysconfig/iptables进行配置,如下图

Linux实现NFS
image.png

这里我的理解是千万要按顺序进行添加,意思就是每一行后面是ACCEPT的要接连在一起,千万不要被REJECT、FORWARD这样的行隔开,不然配置是无效的,具体原因我还不清楚,等我去找资料再来说清楚。

6.重启防火墙配置

service iptables restart

Linux实现NFS
image.png
7.服务器端事情做完了,接下来客户端挂载就行,输入下列命令实现挂载
Linux实现NFS
image.png

这样我们已经成功挂载了,能看到服务器端的文件了

挂载参数的含义如下:

(1)-a:把/etc/fstab中列出的路径全部挂载。
(2)-t:需要mount的类型,如nfs等。
(3)-r:将mount的路径定为read only。
(4)-v mount:过程的每一个操作都有message传回到屏幕上。
(5)rsize=n:在NFS服务器读取文件时NFS使用的字节数,默认值是4096个字节。
(6)wsize=n:向NFS服务器写文件时NFS使用的字节数,默认值是4096个字节。
(7)timeo=n:从超时后到第1次重新传送占用的1/7秒的数目,默认值是7/7秒。
(8)retry=n:在放弃后台mount操作之前可以尝试的次数,默认值是7 000次。
(9)soft:使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息。
(10)hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应。
(11)intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。
(12)fg:一直在提示符下执行重复挂载。
(13)bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。
(14)tcp:对文件系统的挂载使用TCP,而不是默认的UDP。

上一篇:小程序计算两者商家与用户之间的距离


下一篇:判断浏览器是否为微信浏览器