资讯中心

您能在这里找到更多关于首页科技的动态发展情况

ubuntu20搭建NFS

2021
06-22

 

· 两个Ubuntu 20.04系统。每个服务器应具有一个具有sudo特权和UFW防火墙设置的非root用户。

· 你可以通过专用网络设置服务器和客户端。

对于我们的教程,首页互联将使用host_ip表示host_ip地址,并使用client_ip引用客户端的IP地址。

 

 

步骤1-在服务器和客户端上安装NFS

 

服务器端

 

我们需要安装 nfs-kernel-server 主机上的软件包以共享你的目录。

$sudo apt update

$sudo apt install nfs-kernel-server

客户

对于客户端,我们将安装 nfs-common 允许客户端挂载主机目录但不能承载目录本身的软件包。

$sudo apt update

$sudo apt install nfs-common

 

步骤2-在主机上创建共享目录

 

可以通过两种方式向客户端授予对主机上目录的访问权限。默认情况下,NFS服务器不允许需要sudo特权的操作。这意味着客户端上的超级用户无法以root用户身份写入文件,重新分配所有权或执行任何需要提升特权的任务。

但是有时,客户端需要在主机上执行某些操作,这些操作需要提升的特权,但不需要超级用户访问权限。

 

第一种方法

这是共享目录的默认方式。这使得客户端上的root用户难以使用提升的特权与主机进行交互。

首先,创建共享目录。

$sudo mkdir /var/nfs/general -p

如果你在客户端上执行任何root操作,则NFS会将其转换为 nobody:nogroup 主机上的凭据。因此,我们需要为共享目录赋予适当的所有权。

$sudo chown nobody:nogroup /var/nfs/general

 

第二种方法

在这里,我们将与客户端共享主机主目录。这将允许客户机上的root用户正确访问主机。

由于主目录已经存在于主机服务器上,因此我们不需要创建它。也不需要更改其权限,因为它将为主机上的用户创建多个问题。

 

步骤3-在主机上配置NFS

 

现在是配置NFS设置共享的时候了。

开启档案 /etc/exports 在主机服务器上。

$sudo nano /etc/exports

 

在你共享的每个目录的底部,每行添加以下几行。

/var/nfs/general    client_ip(rw,sync,no_subtree_check)

/home               client_ip(rw,sync,no_root_squash,no_subtree_check)

 

让我们研究所有这些选项及其含义。

· rw:这使客户端可以在主机目录上进行读写访问。

· sync:此选项强制NFS在回复之前写入更改。这意味着NFS将首先完成写入主机目录,然后响应客户端。这样可以确保反映主机服务器的实际状态,但会减慢文件操作的速度。

· no_subtree_check:此选项禁用子树检查。子树检查是一项操作,其中对于每个NFS请求,服务器必须检查所访问的文件是否存在以及该文件是否在导出的树中。当客户端访问的文件被重命名时,此操作会导致问题。因此,在大多数情况下,最好将其禁用。它对安全性有一些轻微影响,但可以提高可靠性。

· no_root_squash:默认情况下,NFS会将客户端以root用户身份执行的所有操作转换为服务器上的非特权用户。这样做是为了提高安全性。此选项禁用某些共享的行为。

完成后,通过按Ctrl + X并在出现提示时输入Y来关闭文件。

重新启动NFS服务器以应用更改。

$sudo systemctl restart nfs-kernel-server

 

步骤4-配置主机防火墙

 

NFS的最佳实践是分别为每个客户端的IP地址启用它,而不是允许从任何地方访问它。

NFS使用端口2049。通过以下命令启用对NFS的访问。

$sudo ufw allow from client_ip to any port nfs

检查状态以进行验证。Advertisements.banner-1{text-aligncenter; padding-top10pximportant; padding-bottom10pximportant; padding-left0pximportant; padding-right0pximportant; width100important; box-sizingborder-boximportant; background -color#eeeeeeimportant; border1px实心#dfdfdf}

$sudo ufw status

Status: active

 

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere                 

2049                       ALLOW       167.100.34.78        

OpenSSH (v6)               ALLOW       Anywhere (v6)

 

步骤5-在客户端上创建挂载点

 

现在我们的主机已经配置好了,是时候设置客户端了。在客户端上为挂载创建两个目录。

$sudo mkdir -p /nfs/general

$sudo mkdir -p /nfs/home

现在我们已经在主机端设置了所有内容,我们可以使用主机的IP地址挂载共享。

$sudo mount host_ip:/var/nfs/general /nfs/general

$sudo mount host_ip:/home /nfs/home

 

登录

在线客服系统