Ubuntu 20.04 中配置NFS服务

导读NFS是Network File System的首字母缩写。它是一种分布式协议,使客户端可以访问远程服务器上的共享文件。在本文中,将在Ubuntu 20.04 LTS中安装NFS服务。然后,演示如何从客户端系统访问服务器上的文件。

系统环境

NFS服务端:Ubuntu 20.04 LTS ,IP地址:192.168.43.174
NFS客户端:Centos8 ,IP地址:192.168.43.131

一、安装NFS服务端

运行下面命令安装NFS服务端:

bob@ubuntu-20-04:~$ sudo apt install nfs-kernel-server

使用下面命令检查nfs-server是否已经启动:

bob@ubuntu-20-04:~$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2021-04-21 10:20:29 CST; 1min 30s ago
   Main PID: 41727 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 2278)
     Memory: 0B
     CGroup: /system.slice/nfs-server.service

4月 21 10:20:28 ubuntu-20-04 systemd[1]: Starting NFS server and services...
4月 21 10:20:29 ubuntu-20-04 systemd[1]: Finished NFS server and services.

Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务

二、创建NFS共享目录

下一步将创建一个NFS共享目录。我们将在/mnt目录中创建,在这里,我们的NFS共享目录称为ShareFolder:

bob@ubuntu-20-04:~$ sudo mkdir -p /mnt/ShareFolder

我们希望所有客户端都可以访问该共享文件夹里面的内容,因此分配最高权限:

bob@ubuntu-20-04:~$ sudo chown nobody:nogroup /mnt/ShareFolder
bob@ubuntu-20-04:~$ sudo chmod -R 777 /mnt/ShareFolder/

三、编辑exports配置文件

通过编辑/etc/exports配置文件,来允许哪些客户端可以访问该共享。

下面命令打开该配置文件:

bob@ubuntu-20-04:~$ sudo vim /etc/exports 

下面的条目表示允许单个客户端访问、多个客户端访问、允许一个网段的客户端访问:

# 如果只允许一个客户端访问,可以只写一个客户端的IP地址
/mnt/ShareFolder 192.168.43.131(rw,sync,no_subtree_check)
# 如果只允许多个客户端访问,可以向如下一样写
/mnt/ShareFolder 192.168.43.131(rw,sync,no_subtree_check)
/mnt/ShareFolder 192.168.43.171(rw,sync,no_subtree_check)
/mnt/ShareFolder 192.168.43.137(rw,sync,no_subtree_check)
# 如果运行一个网段的客户端访问,可以这样写:
/mnt/ShareFolder 192.168.43.*(rw,sync,no_subtree_check)
或者
/mnt/ShareFolder 192.168.43.0/24(rw,sync,no_subtree_check)

Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务
配置文件中的权限解释:

  • rw 允许读写
  • sync 文件同时写入硬盘和内存
  • no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

四、export共享目录

使用下面命令将共享文件夹启用并生效:

bob@ubuntu-20-04:~$ sudo exportfs -arv
exporting 192.168.43.*:/mnt/ShareFolder

使用showmount -e查看是否可以看到共享目录:

bob@ubuntu-20-04:~$ showmount -e 192.168.43.174
Export list for 192.168.43.174:
/mnt/ShareFolder 192.168.43.*

Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务

五、配置客户端

安装NFS客户端:

# 在Ubuntu20.04中安装客户端:nfs-common
bob@ubuntu-20-04:~$ sudo apt install nfs-common
# 在Centos8中安装客户端:nfs-utils
[root@localhost ~]# yum -y install nfs-utils

然后在/mnt目录中创建一个ClientFolder目录,将从该目录中挂载服务器上的NFS共享目录。

[root@localhost ~]# mkdir -p /mnt/ClientFolder

最后,挂载NFS共享目录,如下所示:

[root@localhost ~]# mount 192.168.43.174:/mnt/ShareFolder /mnt/ClientFolder/

Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务

六、测试NFS共享目录

为了测试配置是否正常,我们将在客户端/mnt/ClientFolder文件夹中创建文件测试一下,如下所示:

[root@localhost ClientFolder]# dd if=/dev/zero of=./test.dd bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.0540562 s, 194 MB/s
[root@localhost ClientFolder]# ll
total 10240
-rw-r--r-- 1 nobody nobody 10485760 Apr 21  2021 test.dd

Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务
返回服务端,看一下/mnt/ShareFolder目录中是否可以看到该文件:

bob@ubuntu-20-04:~$ ll /mnt/ShareFolder/
total 10248
drwxrwxrwx 2 nobody nogroup     4096 4月  21 10:50 ./
drwxr-xr-x 4 root   root        4096 4月  21 10:24 ../
-rw-r--r-- 1 nobody nogroup 10485760 4月  21 10:50 test.dd

Ubuntu 20.04 中配置NFS服务Ubuntu 20.04 中配置NFS服务

总结

NFS是Network File System的首字母缩写。它是一种分布式协议,使客户端可以访问远程服务器上的共享文件。Linux就该这么学

### 如何在 Ubuntu 20.04配置 NFS 服务器 #### 安装必要的软件包 为了使 NFS 功能正常工作,在服务器端需安装 `nfs-kernel-server` 软件包。这可以通过运行以下命令来完成: ```bash sudo apt update && sudo apt install nfs-kernel-server -y ``` 此操作会更新本地的包索引并安装最新的NFS服务组件[^1]。 #### 配置导出目录 编辑 `/etc/exports` 文件以定义哪些目录应该被共享以及它们应该如何被访问。例如,如果希望共享位于 `/srv/nfs4/shared` 的文件夹给所有客户端读写权限,则可以在该文件中加入如下行: ```plaintext /srv/nfs4/shared *(rw,sync,no_subtree_check) ``` 这里的关键参数解释如下: - `*`: 表示允许任何主机连接到这个共享;实际应用时建议指定具体的IP地址或网段。 - `sync`: 数据同步写入硬盘后再返回确认信息; - `no_subtree_check`: 关闭子树检查提高性能[^4]。 #### 启动与启用 NFS 服务 为了让上述更改生效,需要重新启动 NFS 服务,并将其设置成开机自启状态。执行下面两条指令即可达成目的: ```bash sudo systemctl start nfs-kernel-server sudo systemctl enable nfs-kernel-server ``` 这两条命令分别用于立即激活当前的服务实例和确保系统重启后自动加载NFS服务[^2]。 #### 测试配置有效性 最后一步是在另一台Linux设备上测试新建立好的NFS分享是否能够成功挂载。假设目标路径是 `/mnt/testmountpoint` ,那么可以尝试使用 mount 命令来进行临时性的挂接验证: ```bash sudo mkdir -p /mnt/testmountpoint sudo mount <server-ip>:/srv/nfs4/shared /mnt/testmountpoint/ ``` 其中 `<server-ip>` 应替换为实际提供NFS服务服务器 IP 地址[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值