Ubuntu18.04环境
一、服务端
- 安装NFS服务器(监听端口为2049)
- 创建目录
- 通过/etc/exports为客户端分配服务器访问权限
- 共享/etc/exports中的所有目录
- 查看共享目录信息
sudo apt update
sudo apt install nfs-kernel-server
sudo mkdir /data
sudo echo "/data 10.10.8.0/24(rw,sync,no_root_squash,no_all_squash,no_subtree_check)" >> /etc/exports
exportfs -a
exportfs -v
sudo systemctl start nfs
sduo systemctl enable nfs
:
rw:可读,可写,
sync:同步写,即确保在数据真正写入存储设备才返回成功的信息,
no_root_squash:将远程root账户转换为本机root账号进行读写操作
no_all_squash:保留共享文件的UID和GID
no_subtree_check:不检查父目录权限
:
/etc/exports的共享条目语法结构(客户端主机可以是一个网段,单台主机或主机名)
共享路径 客户端主机 (选项)
共享路径 客户端主机1 (选项)客户端主机2 (选项)
二、客户端
- 安装NFS客户端
- 创建目录挂载远程共享目录
- 挂载
- 开机启动挂载
sudo apt update
sudo apt install nfs-common
sudo mkdir /data
sudo mount -t nfs 10.10.8.90:/data /data
echo "10.10.8.90:/data /data nfs defaults 0 0" >> /etc/fstab
:
mount -t nfs 服务主机:/服务器共享目录 /本地挂载目录
三、测试
在客户端创建文件,服务端是否可见
在服务端创建文件,客户端是否可见
四、命令工具
esportfs
- -r 重新读取/etc/exports文件
- -a 全部共享
- -u 与-a使用,可取消全部共享
五、备注
常见问题分析:
默认情况客户端使用root访问NFS共享进行读写操作时,服务器会自动把root转换为服务器本机的nobody账号,这回导致root无法进行相应的操作,如果要保留root权限,则需要在配置文件中添加no_root_squash选项。