您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

Linux环境下部署nfs

时间:2022-04-24 11:59:36  来源:  作者:运维老男孩

部署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



Tags:部署nfs   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Linux环境下部署nfs
部署nfs问题描述很多时候,对于一些文件管理,有很多的项目,大部分都是用磁盘进行存储管理!!!部署到正式环境下,可能有多台linux服务器,那就会有这样的一个问题:文件上传,上传到服务器A,...【详细内容】
2022-04-24  Search: 部署nfs  点击:(470)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(10)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(24)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(18)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(16)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(59)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(54)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(60)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(85)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(73)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(93)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条