<返回更多

Linux环境下部署nfs

2022-04-24    运维老男孩
加入收藏

部署nfs

问题描述

很多时候,对于一些文件管理,有很多的项目,大部分都是用磁盘进行存储管理!!!

部署到正式环境下,可能有多台linux服务器,那就会有这样的一个问题:

文件上传,上传到服务器A,服务器A的磁盘保存了这个文件;那服务器B,就无法读取到这个文件了!!!

那么,如何做到服务器B也能访问到服务器A的文件呢?

那就是文件共享了!!!

NFS就.NETwork File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

那就是说,可以将服务器A的文件夹进行共享,服务器B就挂载服务器A的文件夹。

那就开干吧!!!装它!!!

 

一、服务器资源

服务名称:linux服务器

IP:[请查看资源分配文档]

操作系统:centos 6.9 x64

二、服务端安装

2.1、NFS安装

yum -y install nfs-utils nfs-utils-lib rpcbind
复制代码

注意:如果服务器无法上网,可以找一个能上网的服务器先下载相关依赖安装包(服务器系统需要一致,centos6对应或者centos7对应即可)。

依赖下载命令如下:

yumdownloader nfs-utils nfs-utils-lib rpcbind --resolve
复制代码

2.2、NFS配置

确定服务器的磁盘情况,再创建共享目录:

df -h
复制代码
mkdir /opt/App/uploaded-files
复制代码

编辑 /etc/sysconfig/nfs 文件:

vi  /etc/sysconfig/nfs
复制代码

添加如下内容自定义端口:

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
复制代码

编辑 /etc/exports 文件:

vi  /etc/exports
复制代码

添加如下内容:

#设置共享的ip段
/opt/app/uploaded-files xxx.xx.xx.*(insecure,rw,sync,no_root_squash,no_all_squash)
复制代码

下面是一些NFS共享的常用参数:

 ro                    只读访问
 rw                   读写访问
 sync               资料同步写入到内存硬盘当中
 async             资料会先暂存于内存当中,而非直接写入硬盘
 secure            NFS通过1024以下的安全TCP/IP端口发送
 insecure          NFS通过1024以上的端口发送
 wdelay            如果多个用户要写入NFS目录,则归组写入(默认)
 no_wdelay      如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
 Hide                在NFS共享目录中不共享其子目录
 no_hide           共享NFS目录的子目录
 subtree_check   如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
 no_subtree_check   和上面相对,不检查父目录权限
 all_squash            共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
 no_all_squash         保留共享文件的UID和GID(默认)
 root_squash           root用户的所有请求映射成如anonymous用户一样的权限(默认)
 no_root_squash        root用户具有根目录的完全管理访问权限
复制代码

2.3、NFS启动

启动服务器:

service rpcbind restart

service nfs restart
复制代码

设置开机启动:

chkconfig --level 35 rpcbind on

chkconfig --level 35 nfs on
复制代码

查看端口:

rpcinfo -p
复制代码

服务端验证NFS共享:

showmount -e
复制代码

注:正常能显示出上面设置的共享目录,如果报如下错误:

clnt_create: RPC: Program not registered

说明 rpcbind服务与NFS服务 启动顺序不对,把他俩都停了,重新启动,先启动rpcbind服务再启动nfs服务;

注:正常也能显示出上面设置的共享目录,如果报如下错误:

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

说明防火墙没有开启相应需要开启的端口,把防火墙关掉,再测试应该就可以正常了;不过防火墙比较重要,一般情况下,不会随意关闭,在服务端可开启如下命令列出的所有端口即可:

2.4、配置防火墙

启动111,2049,30001,30002,30003,30004端口

vi /etc/sysconfig/iptables
复制代码

添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30001 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30002 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30003 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30004 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30001 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30002 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30003 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30004  -j ACCEPT
复制代码

重启防火墙

service iptables restart
复制代码

2.5、漏洞修复

目标主机showmount -e信息泄露

在正式环境对共享服务器的hosts.allow和hosts.deny两个文件进行配置修改。具体修改如下:

vi  /etc/hosts.allow
复制代码

添加以下内容:

mountd:ip1
mountd:ip2
mountd:xxx.xx.xx.xx  #(nfs服务器ip)
复制代码
vi  /etc/hosts.deny
复制代码

添加以下内容:

mountd:all
复制代码

该文件修改保存后即刻生效,无需重启任何服务,nfs服务会优先读取hosts.allow文件再读取hosts.deny文件。

于是上面配置的最终结果为只有ip1和ip2段的IP可以访问查询共享目录,其他IP均拒绝访问查询共享目录。

nfs客户端结果如下:

showmount -e xxx.xx.xx.xx

rpc mount export: RPC: Authentication error; why = Failed (unspecified error)
复制代码

注意:xxx.xx.xx.xx为NFS服务器的ip地址

三、客户端安装

3.1、NFS安装

yum -y install nfs-utils rpcbind
复制代码

注意:如果服务器无法上网,可以找一个能上网的服务器先下载相关依赖安装包(服务器系统需要一致,centos6对应或者centos7对应即可)。

依赖下载命令如下:yumdownloader nfs-utils rpcbind --resolve

3.2、NFS启动

启动服务器:

service rpcbind restart

service nfs restart
复制代码

设置开机启动:

chkconfig rpcbind on

chkconfig nfs on
复制代码

3.3、创建挂载点

mkdir /opt/app/uploaded-files

mount -t nfs xxx.xx.xx.xx:/opt/app/uploaded-files  /opt/app/uploaded-files
复制代码

注意:xxx.xx.xx.xx为NFS服务器的ip地址

3.3、删除挂载点

unmount /opt/app/uploaded-files
复制代码

3.4、验证挂载点

df
复制代码

或者创建文件进行验证:

mkdir /opt/app/uploaded-files/test
复制代码

然后到服务端 /opt/app/uploaded-files 目录下,是否出现一个 test的文件夹即可;

3.5、设置系统启动自动挂载

vi /etc/fstab
复制代码

添加以下内容:

xxx.xx.xxx.xx:/opt/app/uploaded-files   /opt/app/uploaded-files    nfs  rw,tcp,intr  0 1
复制代码

注意:xxx.xx.xx.xx为NFS服务器的ip地址

好了,以上就是linux部署nfs的全过程了,就是这样了!!!^_^

今天就先到这里了,溜了溜了溜了!!!^_^


作者:llsydn
链接:
https://juejin.cn/post/7088621154818064391

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>