NFS介绍

news/2024/9/22 16:34:05/

NFS简介

NFS(Network File System)是一种分布式文件系统,可在不同的机器之间共享文件。它最初是由Sun公司开发的,现在已成为一种标准的网络文件系统。NFS将网络上的一个目录挂载到另一个机器上,使得另一个机器可以访问该目录中的文件。它通常用于文件共享,如共享一个文件服务器的目录。

NFS安装

  • 安装NFS服务器
    在Ubuntu系统上,可以使用以下命令安装NFS服务器:
sudo apt-get update
sudo apt-get install nfs-kernel-server
  • 配置共享目录
    在安装了NFS服务器后,需要在服务器上配置共享目录。首先需要创建一个要共享的目录,并更改其所有者和权限:
sudo mkdir /mnt/nfs_share
sudo chown nobody:nogroup /mnt/nfs_share
sudo chmod 777 /mnt/nfs_share

在此示例中,将创建一个名为“nfs_share”的目录,并将其所有权设置为“nobody:nogroup”,并将其权限设置为777。在实际使用中,应该将其权限设置为适当的值。

配置NFS服务器

接下来,需要配置NFS服务器,使其允许客户端访问共享目录。打开/etc/exports文件,并将以下行添加到文件末尾:

/mnt/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check)

上面这行的意思是,将/mnt/nfs_share目录分享给192.168.1.0/24子网中的所有客户端。rw表示可读可写,sync表示同步写入,no_subtree_check表示不对子目录做额外的权限检查。

保存并关闭/etc/exports文件后,使用以下命令重新启动NFS服务器:

sudo systemctl restart nfs-kernel-server

安装NFS客户端

在NFS服务器上配置共享目录后,就可以在客户端上挂载该共享目录了。在Ubuntu系统上,可以使用以下命令安装NFS客户端:

sudo apt-get update
sudo apt-get install nfs-common

挂载共享目录

要挂载NFS共享目录,可以使用以下命令:

sudo mount -t nfs 192.168.1.10:/mnt/nfs_share /mnt/local_share

上面这个命令的意思是,将NFS服务器的IP地址为192.168.1.10的/mnt/nfs_share目录挂载到本地的/mnt/local_share目录。如果一切顺利,您应该能够在本地访问NFS共享目录中的文件了。

环境配置

当出现无法挂载NFS共享目录的问题时,也可能是由于NFS服务器上的防火墙阻止了NFS客户端的访问。在这种情况下,我们需要检查NFS服务器上的防火墙规则并确认是否允许了NFS客户端的访问。

要允许NFS客户端的访问,需要在NFS服务器上打开NFS服务的端口。NFS使用rpcbind(portmap)服务来映射它的服务端口,然后使用NFS协议本身在分配的端口上提供服务。因此,我们需要打开以下端口:

TCP端口111(rpcbind)
UDP端口111(rpcbind)
TCP端口2049(NFS)
UDP端口2049(NFS)
要打开这些端口,可以使用以下命令:

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --reload

此外,如果您的NFS服务器使用了SELinux,则还需要允许NFS服务在SELinux中运行。可以使用以下命令为NFS服务添加SELinux策略:

sudo semanage fcontext -a -t nfs_t '/path/to/share(/.*)?'
sudo restorecon -Rv /path/to/share

其中,/path/to/share应替换为您的共享目录的路径。

最后,如果您的NFS共享目录需要进行权限控制,您可以使用以下命令进行设置:

sudo chown -R nfsnobody:nfsnobody /path/to/share
sudo chmod -R 755 /path/to/share

这将把共享目录的所有权和访问权限分别设置为nfsnobody和755,使得所有用户都可以读取和执行目录中的文件,但只有nfsnobody用户可以写入文件。

总结:

NFS是一种常见的网络文件系统,允许远程计算机通过网络访问共享目录。在使用NFS时,经常会遇到无法挂载共享目录的问题。这些问题可能由于各种原因引起,如NFS服务未启动,共享目录路径不正确,客户端IP地址未正确配置等。本文提供了一些解决这些问题的方法,并介绍了如何在NFS服务器上进行权限控制和防火墙配置。希望本文可以帮助您更好地理解NFS,以便在使用NFS时更加轻松地管理和维护您的共享目录。


http://www.ppmy.cn/news/40373.html

相关文章

Hive了解

目录 1.1 什么是Hive 1.2 Hive发展历程 1.3 Hive架构原理 1.1 什么是Hive 1)Hive简介 Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 那为什么会有Hive呢&a…

希尔排序的简单理解

详细描述 希尔排序又称为缩小增量排序,主要是对序列按下标的一定增量进行分组,对每组使用直接插入排序算法排序;随着增量逐渐减小,每组包含的关键字越来越多,当增量减至 1 时,整个文件恰被分成一组&#x…

Docker配置DL envs教程

Docker容器与镜像的区别 Docker镜像类似于虚拟镜像,是一个只读的文件,包括进程需要运行所需要的可执行文件、依赖软件、库文件、配置文件等等。 而容器则是基于镜像创建的进程,可以利用容器来运行应用。 总结来说,镜像只读&#…

Linux_vim编辑器

Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因此可以在其他任何介绍vi的地方都能进一步了解它&…

MATLAB算法实战应用案例精讲-【智能优化算法】强度帕累托进化算法 2 (SPEA2)(附MATLAB代码实现)

目录 前言 算法原理 算法思想 基于SPEA2的改进算法 原始 K 近邻方法

ios native 接入穿山甲sdk

【记录】穿山甲广告iOS版SDK接入记录_ios 集成穿山甲_sanjieshenwu1987的博客-CSDN博客 1、pod导入外部文件; 2、appDelegate文件中 3、 代码文件 class AskViewController: UIViewController,BUNativeExpressRewardedVideoAdDelegate{ 增加协议代理 4、广告加…

kotlin的一些标准函数

文章目录1. this 上下文withrunapply2. it 上下文letalso3. 其他好用的函数mapfilterreduceflatMapkotlin的标准函数有 run,let,with 等等,平时用的时候没有太在意他们之间的差异,现在来总结对比一下。 将他们分成 this 上下文和 …

rust网络编程以及unsafe模块

网络层目前 IPv4 和 IPv6 分庭抗礼,IPv6 还未完全对 IPv4 取而代之;传输层除了对延迟非常敏感的应用(比如游戏quic协议),绝大多数应用都使用 TCP;而在应用层,对用户友好,且对防火墙友…