NFS通过网络挂载,让不同的机器、操作系统可以共享彼此的文件.

1. 服务器端

[1] - 安装 NFS 服务

sudo apt install nfs-kernel-server

在 Ubuntu 20.04 上,NFS 版本 2 被禁用。版本 3 和 4 已启用。可以通过运行以下命令来验证 :

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

NFS 服务器配置在 /etc/default/nfs-kernel-server/etc/default/nfs-common 文件中. 大多数情况,默认设置就可以.

查看 NFS 服务

sudo systemctl status nfs-server.service
sudo systemctl restart nfs-server.service

查看NFS服务端口

NFS启动时会随机启动多个端口并向RPC注册,为了方便配置防火墙,需要固定NFS服务端口。

# 使用rpcinfo -P会发现rpc启动了很多监听端口
rpcinfo -p localhost

'''
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049
    100003    3   udp   2049  nfs
    100227    3   udp   2049
    100021    1   udp  56266  nlockmgr
    100021    3   udp  56266  nlockmgr
    100021    4   udp  56266  nlockmgr
    100021    1   tcp  39591  nlockmgr
    100021    3   tcp  39591  nlockmgr
    100021    4   tcp  39591  nlockmgr
'''

[2] - 创建共享目录

mkdir /nfs/share

[3] - 修改配置文件

vim /etc/exports
#[任意主机所有权限]
/nfs/share   *(rw,sync,insecure,no_subtree_check,no_root_squash)

NFS配置选项

  1. rw 读写
  2. ro 只读
  3. sync 同步模式,内存数据实时写入磁盘
  4. async 非同步模式
  5. no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
  6. root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
  7. all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
  8. anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

[4] - 重启 NFS 服务

sudo service nfs-kernel-server restart
sudo systemctl restart nfs-server.service

[5] - 常用命令工具

#在安装 NFS 服务器时,已包含常用的命令行工具,无需额外安装
#显示已经 mount 到本机 NFS 目录的客户端机器
sudo showmount -e localhost
#将配置文件中的目录全部重新 export 一次,无需重启服务
sudo exportfs -rv
#查看 NFS 的运行状态
sudo nfsstat
#查看 rpc 执行信息,可以用于检测 rpc 运行情况
sudo rpcinfo

2. 客户端

Ubuntu - 挂载 NFS 服务器的文件系统到本机 - AIUAI

Ubuntu 挂载 NFS 服务器的文件系统

[1] - 安装 NFS 客户端:

sudo apt-get install nfs-common 

[2] - 在本机新建目录,用于挂载 NFS 服务器文件夹,如:

sudo mkdir /nfsdata

[3] - 假设服务器 IP 地址为:192.168.1.107,可以使用 showmount 命令查看服务器上所共享的文件目录:

showmount -e 192.168.1.107

[4] - 假设服务器所共享的文件目录为 /data/,使用mount进行挂载:

sudo mount -t nfs 192.168.1.107:/data/ /nfsdata/

即可将服务器中的文件目录 /data挂载到本机/nfsdata/目录.

[5] - 查看客户端挂载信息

df -h

[6] - 卸载所挂载的文件目录:

sudo umount /nfsdata/
Last modification:May 8th, 2022 at 01:14 pm