目录

NFS的安装和使用

简介:NFS(网络文件系统)是一种分布式文件系统协议。通过NFS,您可以允许系统通过网络与其他人共享目录和文件。在NFS文件共享中,用户甚至程序可以访问远程系统上的信息,就像它们驻留在本地计算机上一样。

NFS介绍

NFS(网络文件系统)是一种分布式文件系统协议,最初是由Sun Microsystems构建的。通过NFS,您可以允许系统通过网络与其他人共享目录和文件。在NFS文件共享中,用户甚至程序可以访问远程系统上的信息,就像它们驻留在本地计算机上一样。

NFS在客户端 - 服务器环境中运行,其中服务器负责管理客户端的身份验证,授权和管理,以及特定文件系统内共享的所有数据。授权后,任意数量的客户端都可以访问共享数据,就好像它们存在于其内部存储中一样。在Ubuntu系统上设置NFS服务需要在服务器和客户端计算机上进行一些必要的安装和配置。

服务器端配置

为了设置主机系统以共享目录,我们需要在其上安装NFS内核服务器,然后创建并导出我们希望客户端系统访问的目录。请按照以下步骤顺利设置主机端:

第1步:安装NFS服务器

1
2
sudo apt update
sudo apt install nfs-kernel-server

第2步:创建导出目录

我们要与客户端系统共享的目录称为导出目录。 你可以根据自己的选择来命名; 在这里,我们在系统的mnt(mount)目录中创建一个名为linuxidc的导出目录。

使用以下命令,根据需要通过以下命令指定安装文件夹名称:

1
2
3
4
5
# 创建用于共享的文件夹
sudo mkdir -p /mnt/linuxidc
# 删除文件夹的限制权限,让所有人都能访问
sudo chown nobody:nogroup /mnt/linuxidc
sudo chmod 777 /mnt/linuxidc

可以根据需要在导出文件夹中创建任意数量的子文件夹,供客户端访问。

第3步:通过NFS导出文件为客户端分配服务器访问权限

创建导出文件夹后,我们需要为客户端提供访问主机服务器计算机的权限。

此权限是通过位于系统的/etc文件夹中的exports文件定义的

1
sudo vim /etc/exports

配置方法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 单个客户端通过在文件中添加以下行:
/mnt/linuxidc clientIP(rw,sync,no_subtree_check)

# 通过在文件中添加以下行来多个客户端:
/mnt/linuxidc client1IP(rw,sync,no_subtree_check)
/mnt/linuxidc client2IP(rw,sync,no_subtree_check)

# 多个客户端,通过指定客户端所属的整个子网:
/mnt/linuxidc 192.168.182.0/24(rw,sync,no_subtree_check)
/mnt/linuxidc 192.168.182.0/24(rw,sync,no_subtree_check)

注意:不要在(rw,sync,no_subtree_check),后面加空格,不然会有语法错误。

此文件中定义的权限rw,sync,no_subtree_check表示客户端可以执行以下操作:

  • rw:读写操作
  • sync: 在应用之前将任何更改写入光盘
  • no_subtree_check:阻止子树检查

第4步:导出共享目录

在主机系统中完成上述所有配置后,现在可以通过以下命令将共享目录导出:

1
sudo exportfs -a

最后,为了使所有配置生效,请按如下方式重新启动NFS服务器:

1
sudo systemctl restart nfs-kernel-server

第5步:为客户端打开防火墙

重要的一步是验证服务器的防火墙是否对客户端开放,以便他们可以访问共享内容。 以下命令将配置防火墙以通过NFS授予客户端访问权限:

1
2
# sudo ufw allow from [clientIP or clientSubnetIP] to any port nfs
sudo ufw allow from 192.168.3.0/24 to any port nfs

现在,当您通过以下命令检查ubuntu防火墙的状态时:

1
sudo ufw status

您的主机服务器现在已准备好通过NFS服务器将共享文件夹导出到指定的客户端。

配置客户端计算机

现在是时候对客户机进行一些简单的配置,这样主机的共享文件夹就可以挂载到客户端,然后顺利访问。

第1步:安装NFS Common

1
2
3
sudo apt update
# 安装NFS Common客户端
sudo apt-get install nfs-common

第2步:为NFS主机的共享文件夹创建安装点

客户端系统需要一个目录,可以访问导出文件夹中主机服务器共享的所有内容。 您可以在系统的任何位置创建此文件夹。

1
sudo mkdir -p /mnt/linuxidc_client

第3步:在客户端上挂载共享目录

使用以下命令将共享文件夹从主机安装到客户端上的装入文件夹:

1
2
# sudo mount serverIP:/shareFolder_server /mnt/mountfolder_client
sudo mount 192.168.3.48:/mnt/linuxidc /mnt/linuxidc_client

第4步:测试连接

请在NFS主机服务器的导出文件夹中创建或保存文件。 现在,打开客户端计算机上的mount文件夹,能够在此文件夹中查看共享和访问的同一文件。

注意事项

使用 sudo mount serverIP:/shareFolder_server /mnt/mountfolder_client的方式挂载目录,是临时性的。在客户机重启之后会失效。

客户机永久挂载的方法

  1. 把挂载信息写入到 /etc/fstab 文件中

    1
    2
    
    sudo vim /etc/fstab
    serverIP:/shareFolder_server  /mnt/mountfolder_client nfs defaults 0 0
    
  2. 更新挂载

    1
    
    sudo mount -a
    

其他常用命令

1
2
3
4
# 展示服务器挂载目录
showmount -e 192.168.3.48
# 客户机取消挂载
umount /mnt/mountfolder_client