先决条件

我们假设您有一台运行CentOS 8的服务器,我们将在该服务器上设置NFS服务器和其他充当NFS客户端的计算机。服务器和客户端应该能够通过专用网络相互通信。如果您的托管服务提供商不提供私有IP地址,则可以使用公共IP地址并配置服务器防火墙,仅允许来自受信任来源的端口2049上的流量。

本示例中的计算机具有以下IP:

NFS Server IP: 192.168.33.148
NFS Clients IPs: From the 192.168.33.0/24 range

设置NFS服务器

本节说明如何安装必要的软件包,创建和导出NFS目录以及配置防火墙。

安装NFS服务器

nfs-utils包为NFS服务器提供了NFS实用程序和守护程序。要安装它,请运行以下命令:

sudo dnf install nfs-utils

安装完成后,通过键入以下内容启用并启动NFS服务:

sudo systemctl enable --now nfs-server

默认情况下,在CentOS 8 NFS版本3和4.x上启用,版本2被禁用。 NFSv2现在已经很老了,没有理由启用它。要验证它,请运行以下 cat 命令:

sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

/etc/nfsmount.conf/etc/nfs.conf文件中设置NFS服务器配置选项。默认设置足以满足我们的教程要求。

创建文件系统

在配置NFSv4服务器时,一个好的做法是使用全局NFS根目录,并将实际目录挂载到共享安装点。在此示例中,我们将/srv/nfs4导向器用作NFS根目录。

为更好地说明如何配置NFS挂载,我们将共享两个具有不同配置设置的目录(/var/www/opt/backups)。

/var/www/由用户拥有,组apache/opt/backupsroot拥有。

使用 mkdir 命令创建导出文件系统:

sudo mkdir -p /srv/nfs4/{backups,www}

安装实际目录:

sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www

要使挂着永久生效,请将以下条目添加到/etc/fstab文件中:

sudo nano /etc/fstab

/etc/fstab

/opt/backups /srv/nfs4/backups  none   bind   0   0
/var/www     /srv/nfs4/www      none   bind   0   0

导出文件系统

下一步是定义将由NFS服务器,共享选项和允许访问这些文件系统的客户端导出的文件系统。为此,请打开/etc/exports文件:

sudo nano /etc/exports

导出wwwbackups目录,并仅允许192.168.33.0/24网络上的客户端访问:

/etc/exports

/srv/nfs4         192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check)
/srv/nfs4/www     192.168.33.110(rw,sync,no_subtree_check)

第一行包含fsid=0,它定义了NFS根目录/srv/nfs。仅允许192.168.33.0/24子网中的客户端访问此NFS卷。需要共享crossmnt选项才能共享作为已导出目录的子目录的目录。

第二行显示了如何为一个文件系统指定多个导出规则。它导出/srv/nfs4/backups目录,并且只允许对整个192.168.33.0/24范围进行读访问,而对192.168.33.3则具有读和写访问权限。 sync选项告诉NFS在回复之前将更改写入磁盘。

最后一行应该是不言自明的。有关所有可用选项的更多信息,请在终端中键入man exports

保存文件并导出共享:

sudo exportfs -ra

每次修改/etc/exports文件时,都需要运行上面的命令。如果有任何错误或警告,它们将显示在终端上。

要查看当前的活动出口及其状态,请使用:

sudo exportfs -v

输出将包括所有股票及其期权。如您所见,/etc/exports文件中还有一些未定义的选项。这些是默认选项,如果要更改它们,则需要明确设置这些选项。

/srv/nfs4/backups192.168.33.3(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www   192.168.33.110(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4       192.168.33.0/24(sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups192.168.33.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

root_squash是有关NFS安全性的最重要选择之一。这样可以防止从客户端连接的root用户对已安装的共享具有root特权。它将根UIDGID映射到nobody / nogroup UID / GID

为使客户端计算机上的用户具有访问权限,NFS希望客户端的用户和组ID与服务器上的用户和组ID相匹配。另一种选择是使用NFSv4 idmapping功能,将用户和组ID转换为名称,反之亦然。

至此,您已经在CentOS服务器上设置了NFS服务器。现在,您可以转到下一步并配置客户端并连接到NFS服务器。

防火墙配置

FirewallD是Centos 8上的默认防火墙解决方案。

NFS服务包括用于允许访问NFS服务器的预定义规则。以下命令将永久允许从192.168.33.0/24​​子网进行访问:

sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload

设置NFS客户端

现在已设置NFS服务器并导出共享,下一步配置客户端并挂载远程文件系统。

您也可以在Mac OS和Windows计算机上安装NFS共享,但我们将重点关注Linux系统。

安装NFS客户端

在客户端计算机上,安装挂载远程NFS文件系统所需的工具。

在Debian和Ubuntu上安装NFS客户端

包括在基于Debian的发行版上安装NFS文件系统的程序的软件包名称为nfs-common。要安装它,请运行:


sudo apt update
sudo apt install nfs-common

在CentOS和Fedora上安装NFS客户端  [225在Red Hat及其衍生产品上安装nfs-utils软件包:

sudo yum install nfs-utils

安装文件系统

我们将在具有IP 192.168.33.110的客户端计算机上工作,该计算机具有对/srv/nfs4/www文件系统的读写访问权和对/srv/nfs4/backups文件系统的只读访问权。

为安装点创建两个新目录。您可以在所需的任何位置创建这些目录。

sudo mkdir -p /backups
sudo mkdir -p /srv/www

使用 mount 命令安装导出的文件系统:

sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

其中192.168.33.148是NFS服务器的IP。您也可以使用主机名代替IP地址,但是客户端计算机需要解析该主机名。通常,这是通过将主机名映射到 /etc/hosts 文件中的IP来完成的。

挂载NFSv4文件系统时,您需要省略NFS根目录,因此需要使用/backups来代替/srv/nfs4/backups

使用mount或 df 命令验证是否成功安装了远程文件系统:

df -h

该命令将打印所有已安装的文件系统。最后两行是挂载的份额:

...
192.168.33.148:/backups           9.7G  1.2G  8.5G  13% /backups
192.168.33.148:/www               9.7G  1.2G  8.5G  13% /srv/www

要使安装在重新启动时永久存在,请打开/etc/fstab文件:

sudo nano /etc/fstab

并添加以下几行:

/etc/fstab

192.168.33.148:/backups /backups   nfs   defaults,timeo=900,retrans=5,_netdev  0 0
192.168.33.148:/www /srv/www       nfs   defaults,timeo=900,retrans=5,_netdev 0 0

要查找有关挂载NFS文件系统时可用选项的更多信息,请在终端中键入man nfs

挂载远程文件系统的另一个选项是使用autofs工具或创建systemd单元。

测试NFS访问权限

让我们通过在每个共享中创建一个新文件来测试对共享的访问权限。

首先,尝试使用 touch 命令在/backups目录中创建测试文件:

sudo touch /backups/test.txt

/backup文件系统被导出为只读,并且按预期,您将看到Permission denied错误消息:

touch: cannot touch ‘/backups/test’: Permission denied

接下来,尝试使用 sudo 命令以root身份创建到/srv/www目录的测试文件:

sudo touch /srv/www/test.txt

同样,您会看到Permission denied消息。

touch: cannot touch ‘/srv/www’: Permission denied

/var/www 目录由apache用户拥有,并且此共享具有root_squash选项集,该选项将根用户映射到nobody用户和nogroup组,没有对远程共享的写入权限。

假设用户apache与远程服务器上的用户apacheGID存在于客户端计算机上(例如,如果您安装了apache ,情况就是这样)在两台计算机上),您可以测试以apache用户的身份创建文件:

sudo -u apache touch /srv/www/test.txt

该命令将不显示任何输出,表示文件已成功创建。

要验证它是否列出/srv/www目录中的文件,请执行以下操作:

ls -la /srv/www

输出应显示新创建的文件:

drwxr-xr-x 3 apache apache 4096 Jun 23 22:18 .
drwxr-xr-x 3 root     root     4096 Jun 23 22:29 ..
-rw-r--r-- 1 apache apache    0 Jun 23 21:58 index.html
-rw-r--r-- 1 apache apache    0 Jun 23 22:18 test.txt

卸载NFS文件系统

如果您不再需要远程NFS共享,则可以使用umount命令将其卸载为任何其他已安装的文件系统。例如,要卸载/backup共享,您可以运行:

sudo umount /backups

如果在/etc/fstab文件中定义了挂载点,请确保删除该行或通过在该行的开头添加#将其注释掉。

结论

在本教程中,我们向您展示了如何设置NFS服务器以及如何在客户端计算机上挂载远程文件系统。如果您要在生产中实施NFS并共享敏感数据,则最好启用kerberos身份验证。

作为NFS的替代方法,您可以使用 SSHFS 通过SSH连接安装远程目录。 SSHFS默认情况下是加密的,并且更易于配置和使用。

CentOS 8安装并配置NFS服务相关推荐

  1. CentOS 6.5系统下安装和配置NFS服务

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置: centos 5 : 1 yum -y instal ...

  2. centos8共享文件夹挂载_CentOS 8 安装并配置NFS服务

    NFS 网络文件系统(Network File System)是一种分布式文件系统协议,通过网络共享远程目录.使用NFS,可以在系统上挂载远程目录,并像对待本地文件一样使用远程计算机上的文件. 默认情 ...

  3. linux nfsnobody用户,处理CentOS 5.5 x64 配置NFS服务过程中nfsnobody用户造成的问题

    4.我们编译一下这个NFS的配置文件. [root@NFS /]# vi /etc/exports /share 192.168.60.0/24(rw,sync,all_squash,root_squ ...

  4. 如何在Ubuntu 18.04上安装和配置NFS服务器

    网络文件系统(NFS)是一种分布式文件系统协议,使您可以通过网络共享远程目录.使用NFS,您可以在系统上挂载远程目录,并像对待本地文件一样使用远程计算机上的文件. NFS协议默认情况下未加密,并且与S ...

  5. Ubuntu中配置NFS服务

    NFS协议允许远程访问Linux主机中的指定目录,并且在Windows 7中,原生支持将NFS文件系统映射到本地,通过资源管理器就可以访问Linux虚拟机或者开发板中的文件,非常方便. Ubuntu中 ...

  6. CentOS FTP安装及配置

    CentOS  FTP安装及配置 LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftp ...

  7. 在RedHat Linux系统中安装和配置snmp服务

    在RedHat Linux系统中安装和配置snmp服务 检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl ...

  8. 在CentOS上安装和配置OpenNebula入门实例

    导读 我们提到的云计算一般有三种类型:软件即服务(Software as a service, SaaS),平台即服务(Platform as a Service, PaaS)和基础架构即服务(Inf ...

  9. 安装和配置NFS服务器

    安装和配置NFS服务器 1.在ubuntu上安装nfs服务器 ubuntu系统版本:ubuntu 1804 $ sudo apt-get install nfs-kernel-server $ sud ...

最新文章

  1. RGB Color Codes Chart
  2. 【Linux】Linux 文件中^M字符处理
  3. 答与微博前端教主在吃饭时讨论到的一道微软面试题
  4. apache2.4.6支不支持jsp_Spring Boot中文参考指南(2.1.6)50、Kotlin 支持
  5. JavaSE(四)——方法重写、多态、接口
  6. 普通爬虫有啥意思,我写了个通用Scrapy爬虫
  7. python set
  8. java自定义线程池池,线程池使用及自定义线程池
  9. 容器编排技术 -- Windows Server 容器
  10. html引入php文件中的函数,手把手教你在html中引入另一个html文件的方法(详解)...
  11. mysql5.715 安装在d盘_MySQL-5.7.15安装步骤
  12. VSCode前端文件(html文件)如何以服务器模式打开?
  13. 关于Tuxera NTFS mac还有你不知道的用法!教程来啦!
  14. 基于注解的组件扫描——Spring IOC/DI(五)
  15. 光储直流微电网simulink仿真模型 双向变换器 ,独立光伏系统能量管理,最大功率点跟踪mppt
  16. 《Git与Github使用笔记》第8章 github常见操作和常见错误
  17. Exoplayer的详细使用UI篇
  18. 如何找到winRE.wim (Win10无法重置电脑找 不到恢复环境,需要重装介质)
  19. 前端·在线随机生成图片 免费 API
  20. Android Alpha 更改图片透明度

热门文章

  1. 添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理
  2. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
  3. .net 动软代码生成器
  4. java远程debug
  5. 将Java应用程序本地编译为EXE的几种方法
  6. 【转载】给程序员的圣诞大礼★★春夏
  7. sap模块介绍_小迈说|SAP究竟有多少模块?
  8. Java中如何使用非阻塞异步编程——CompletableFuture
  9. Mysql 使用正则表达式
  10. Android studio http 代理设置