老铁们,大家好,相信还有很多朋友对于如何在Ubuntu 20.04上安装NFS服务和的相关问题不太懂,没关系,今天就由我来为大家分享分享如何在Ubuntu 20.04上安装NFS服务以及的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
如何在Ubuntu 20.04上安装NSF服务
2. 先决条件
我们将使用两台机器,一台运行Ubuntu 20.04,它将充当NFS 服务器,另一台运行另一个Linux 发行版,它将用于远程挂载NSF 目录。服务器和客户端应该能够通过专用网络相互通信。您可以使用公共IP 地址并配置服务器防火墙,以便端口2049 仅允许来自可信来源的流量。
本例中的机器有以下ip:
NFS 服务器IP: 192.168.33.10NFS 客户端IPs: 来自192.168.33.0/24 范围
3. 配置NFS服务器
第一步是配置NFS 服务器。我们将安装必要的软件包、创建和导出NFS 目录并配置防火墙。
配置NFS 服务器
3.1 安装NFS服务器
NFS 服务器软件包提供运行NFS 内核服务器所需的用户空间支持。需要先安装相关软件包,运行以下命令:
sudo apt updatesudo apt install nfs-kernel-server 安装完成后,NFS 服务将自动启动。
在Ubuntu 20.04 中,NFS v2 被禁用。 v3 和v4 已启用。执行cat命令可以验证:
sudo cat /proc/fs/nfsd/versions-2 +3 +4 +4.1 +4.2NFSv2 太旧了,我们没有理由启用它。
NFS 服务器配置在/etc/default/nfs-kernel-server 和/etc/default/nfs-common 文件中定义。对于大多数情况,默认设置就足够了。
3.2 创建文件系统
NFSv4 服务器使用全局根目录,输出目录与该目录关联。您可以使用绑定安装将共享安装点链接到要导出的目录。
在本例中,我们将/srv/nfs4目录设置为NFS根目录。为了更好地解释如何配置NFS 挂载,我们将共享两个具有不同配置设置的目录(/var/www 和/opt/backups)。 /var/www/属于www-data 用户,/opt/backups 属于root 用户。
首先创建根目录和共享挂载点:
sudo mkdir -p /srv/nfs4/backupssudo mkdir -p /srv/nfs4/www 将目录挂载到共享挂载点:
sudo mount –bind /opt/backups /srv/nfs4/backupssudo mount –bind /var/www /srv/nfs4/www 要在重新启动时永久绑定安装,请打开/etc/fstab 文件:
sudo nano /etc/fstab 并添加以下行:
/opt/backups /srv/nfs4/backups none bind 0 0/var/www /srv/nfs4/www none bind 0 0
3.3 共享文件系统
使用nfs 协议共享文件系统
下一步是添加将共享的文件系统以及允许访问这些/etc/exports 文件共享的客户端。
共享文件系统的每一行都有以下形式:
导出主机(选项),其中导出是共享目录,主机是可访问的主机名或IP 地址/范围,选项是主机选项。
打开/etc/exports 文件并添加以下行:
sudo nano /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.20(rw,sync,no_subtree_check)第一行包含fsid=0选项,用于定义NFS根目录/srv/nfs4。只有192.168.33.0/24 子网上的客户端才能访问此NFS 资源。共享子目录需要crossmnt 选项。
第二行显示如何为文件系统指定多个导出规则。允许对整个192.168.33.0/24 范围进行读取访问,并且仅允许对192.168.33.3 IP 地址进行读取和写入访问。同步选项告诉NFS 在响应之前将更改写入磁盘。
最后一行很明显。有关终端中可用于man 导出的所有选项的详细信息。
保存文件并导出共享:
sudo exportfs -ar 每次修改/etc/exports文件时,都需要执行上述命令。如果有任何错误或警告,它们将显示在终端上。
要查看当前活动的导出及其状态,请使用:
sudo exportfs -v 输出的信息将包括所有共享及其选项。如下面的输出所示,有一些选项未在/etc/exports 文件中定义。这些是默认选项,如果您想更改它们,您需要明确设置这些选项。
/srv/nfs4/backups 192.168.33.3(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)/srv/nfs4/www 192.168.33.20(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,安全,root_squash,no_all_squash)/srv/nfs4 192.168.33.0/24(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,安全,root_squash,no_all_squash)/srv/nfs4 /backups 192.168.33.0/24(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash) 在Ubuntu 上,默认情况下启用root_squash。这是有关NFS 安全性的最重要选项之一。它通过将root UID和GID映射到nobody/nogroup UID/GID来防止连接root用户的客户端在已安装的共享上拥有root权限。
为了使客户端计算机上的用户能够访问,NFS 要求客户端的用户和组ID 与服务器上的用户和组ID 相匹配。另一种选择是使用NFSv4 idmapping 功能,该功能将用户和组ID 转换为名称,反之亦然。
完成上述配置后,您已经在Ubuntu服务器上设置了NFS服务器。您现在可以继续下一步,配置客户端并连接到NFS 服务器。
3.4 防火墙配置
如果要在受防火墙保护的远程Ubuntu 服务器上安装Jenkins,则需要在防火墙上启用NSF 流量:
sudo ufw 允许从192.168.33.0/24 到任意端口进行nfs 验证:
sudo ufw status 以下表示允许端口2049 上的NSF 流量:
操作自– —— —-2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
4. 设置NFS客户端
NFS 服务器现已设置完毕,并且导出共享后,下一步是配置客户端并挂载远程文件系统。
我们将重点关注Linux 系统,但您也可以在macOS 和Windows 计算机上挂载NFS 共享。
4.1 安装NFS客户端
在客户端机器上,我们只需要安装挂载远程NFS文件系统所需的工具即可。
4.1.1 在Debian和Ubuntu上安装NFS客户端
包含在基于Debian 的发行版上安装NFS 文件系统的过程的软件包名称为nfs-common。要安装它,请运行:
sudo apt updatesudo apt install nfs-common
4.1.2 在CentOS和Fedora上安装NFS客户端
在Red Hat 和基于其系统的发行版上,安装nfs-utils 软件包:
sudo yum install nfs-utils
5. 挂载文件系统
我们将在IP 192.168.33.20 的客户端上工作,该客户端具有对/srv/nfs4/www 文件系统以及/srv/nfs4/backups 文件的读写访问权限- 只能访问系统。
6. 为挂载点创建两个新目录
sudo mkdir -p /backupssudo mkdir -p /srv/www 您可以在任何位置创建目录。使用mount命令挂载共享文件系统:
sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backupssudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www 其中192.168.33.10 是NFS 服务器的IP 地址。您还可以使用主机名而不是IP 地址,但这需要客户端能够解析它。这通常是通过将主机名映射到/etc/hosts 文件中的IP 来完成的。
挂载NFSv4 文件系统时,NFS 根目录将被忽略。使用/backups,而不是/srv/nfs4/backups。
使用mount或df命令验证远程文件系统是否挂载成功:
df -h 该命令将打印所有已安装的文件系统。最后两行是已安装的共享
使用的文件系统大小可用USE% MOUNTED on USDEV 951M 0 951M 0% /DEVTMPFS 199m 676k 199m 1% /DEV /SDA3 124G 115g 3% /TMPFS 994M 0% /DEV /SHMTM PFS 5.0M 0 5.0M 0% /run/locktmpfs 994m 0 994m 0/sys/fs/cgroup/dev/sda1 456m 197m 226m 226m 47/bootmpfs 199m 0 199m 0/run/user/1000192.168.33.10:/backups 124g 2.8g 2.8g 115g 115g 3/备用Sbackupssupssupss192。 168.33.10:/www 124G 2.8G 115G 3% /srv/www 要在重新启动时启用自动挂载,请打开/etc/fstab 文件并添加以下行:
sudo nano /etc/fstab192.168.33.10:/backups /backups nfs 默认值,timeo=900,retrans=5,_netdev 0 0192.168.33.10:/www /srv/www nfs 默认值,timeo=900,retrans=5,_netdev 0 0有关挂载NFS 文件系统时可用选项的信息,请在终端中输入man NFS。
挂载远程文件系统的另一个选项是使用autofs 工具或创建systemd 单元。
7. 测试NFS访问
让我们通过在每个共享目录上创建一个新文件来测试共享访问是否正常工作。
首先,尝试使用touch 命令在/backups 目录中创建一个测试文件:
sudo touch /backups/test.txt/backup 文件系统以只读权限共享,正如预期的那样,您将看到权限被拒绝的错误消息:
touch: 无法触摸‘/backups/test’: 权限被拒绝接下来,尝试使用sudo 命令创建文件:
sudo touch /srv/www/test.txt 您将再次看到“权限被拒绝”消息。
touch: 无法触及’/srv/www’: 权限被拒绝如果您还记得,/var/www 目录属于www-data 用户,并且此共享设置了root_squash 选项,该选项将root 用户映射到无人用户,并且没有远程共享对nogroup 组的写入权限。
假设您在客户端计算机上使用与远程服务器上相同的UID 和GID(例如,如果您在两台计算机上都安装了nginx,则应该是这种情况),您可以尝试以用户www-data 创建一个文件:
sudo -u www-data touch /srv/www/test.txt 该命令不会显示任何输出,这意味着文件创建成功。
为了验证,列出了/srv/www 目录中的文件:
ls -la /srv/www 的输出应显示新创建的文件:
drwxr-xr-x 3 www-data www-data 4096 Apr 10 22:18 .drwxr-xr-x 3 root root 4096 Apr 10 22:29 .-rw-r–r– 1 www-data www-data 0 Apr 10 21:58 index.html-rw-r–r– 1 www-data www-data 0 Apr 10 22:18 test.txt
8. 卸载NFS文件系统
如果不再需要远程NFS 共享,可以使用umount 命令将其用作另一个已安装的文件系统卸载。
例如,要卸载/backup共享,可以执行以下命令:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/142740.html
用户评论
相知相惜
终于学会了如何在ubuntu下安装nfs服务器!之前一直卡在配置步骤上,幸好找到了这篇博客,详细解释清楚了每个命令的作用,一步一步跟着操作做就能成功完成。真滴太好用了!
有19位网友表示赞同!
从此我爱的人都像你
安装NFS确实很容易,但是配置共享文件夹却是个坑啊,还得检查权限设定,反复实验了好久才搞定!
有5位网友表示赞同!
绝版女子
我以前从来没有接触过Linux系统,看了这篇博客才知道 ternyata NFS这种功能可以用来实现文件共享。这个教程写的很简单明了,完全解决了我的疑问!
有17位网友表示赞同!
凉凉凉”凉但是人心
安装NFS服务很方便,但是速度还是有点慢啊,而且每次传输文件都要输入密码挺麻烦的。有没有什么更便捷高效的方法呢?
有9位网友表示赞同!
那伤。眞美
作为Ubuntu初学者,这篇文章简直是救星!之前一直卡着安装NFS的问题,终于找到了答案!文章讲解清晰易懂,操作步骤很详细,强烈推荐给其他的新手学习者们!
有6位网友表示赞同!
风中摇曳着长发
这篇博客的教程很有用啊,我顺利的安装好了NFS服务。但是我想请问一下,如何配置多个用户访问共享文件夹呢?有没有什么更安全可靠的方法?
有20位网友表示赞同!
寒山远黛
我觉得这篇文章写的太简略了,没有详细解释一些重要的概念和参数设置。对于不太熟悉的Linux用户来说,可能很容易迷茫。建议作者可以多添加一些细节说明!
有20位网友表示赞同!
黑夜漫长
真是个好文章啊! 解决了我的一个难题 – 在 Ubuntu 20.04 上安装 NFS 服务! 之前想这个功能很久了,终于找到了合适的方法, 感谢作者分享!
有19位网友表示赞同!
关于道别
我尝试按照这篇博客的步骤操作安装NFS服务,但是遇到了一些错误提示,不知道是怎么弄的。可能是我的系统配置问题吧?希望作者能提供一些解决方法!
有11位网友表示赞同!
你与清晨阳光
虽然是Ubuntu20.04 的详细教程,但是对于对Linux不太了解的用户来说可能还是有些难度。建议可以增加一些基础知识讲解,让入门更友好一点!
有8位网友表示赞同!
青楼买醉
我刚学习Linux,这篇博客对我帮助很大! 安装NFS服务非常顺利,文章步骤清晰易懂, 还有很多小技巧分享,真是太棒了!
有5位网友表示赞同!
浅嫣婉语
这篇文章介绍的方法非常好用,我成功地安装了NFS 服务以后,还能轻松共享文件! 之前不知道有这么方便的功能,感谢作者的分享!
有9位网友表示赞同!
浮光浅夏ζ
我的机器配置比较复杂,按照这篇博客的教程遇到了一些问题,可能要进行一些额外的调试和调整。 希望可以得到作者的更多指导!
有12位网友表示赞同!
纯真ブ已不复存在
对于想快速学习如何在 Ubuntu 20.04 上安装 NFS 服务的用户来说非常推荐这一篇文章! 操作简单易懂, 即使是小白也能轻松上手!
有20位网友表示赞同!
爱情的过失
这篇文章的步骤很好跟着,我很顺利地安装了NFS服务!感觉NFS真的很有用,我可以更方便地跨平台共享文件了。
有15位网友表示赞同!
╭摇划花蜜的午后
对于一些高级用户来说, 这篇文章可能过于简单了,缺乏了一些深入的讲解和讨论。 可以再添加一些关于NFS性能优化、安全策略等方面的细节!
有17位网友表示赞同!
等量代换
在 Ubuntu 20.04 上安装 NFS 服务确实需要一些耐心,但是只要按照这篇博客的步骤一步一步操作,就很容易完成!
有16位网友表示赞同!
孤者何惧
我试着去分享一个文件,但是传输过程中出现了一些错误。 感谢作者可以添加更多关于常见问题解决的建议!
有8位网友表示赞同!
裸睡の鱼
对于想了解 NFS 这种网络文件共享技术的用户来说,这篇博客是一个很好的起点。 可以先学习安装和配置的基本知识,然后再进行深入的研究!
有7位网友表示赞同!