00. 目录
01. NFS概述
NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用)协议实现的,采用 C/S 架构。
02. NFS服务端
2.1 安装NFS服务端
deng@local:~$ sudo apt install nfs-kernel-server
正常情况下不需要安装,
# 如果执行失败需要安装以下安装包
deng@local:~$ sudo apt install portmap(如果安装上一个,可以不用执行此操作)
03. NFS客户端
3.1 安装NFS客户端
deng@local:~$ sudo apt install nfs-common
04. NFS服务端配置
4.1 NFS常用参数
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
Hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
例如可以编辑/etc/exports为:
/tmp *(rw,no_root_squash)
/home/public 192.168.0.*(rw) *(ro)
/home/test 192.168.0.100(rw)
/home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)
4.2 配置/etc/exports
NFS挂载目录及权限由/etc/exports文件定义。
deng@local:~$ sudo vim /etc/exports
/home/deng *(rw,sync,no_root_squash)
解释
第一个字段:/home/deng 共享的目录
第二个字段:指定哪些用户可以访问
* 表示所有用户都可以访问
192.168.1.* 指定网段,在该网段中的用户可以挂载
192.168.1.12 只有该用户能挂载
第三个字段: (ro,sync,no_root_squash): 权限
ro : 只读
rw : 读写
sync : 同步
no_root_squash: 不降低root用户的权限
4.3 重启nfs服务
deng@local:~$ sudo /etc/init.d/nfs-kernel-server restart
[....] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.s[ ok e.
deng@local:~$
4.4 查看nfs服务端共享的目录
deng@local:~$ showmount -e 10.36.100.32
Export list for 10.36.100.32:
/home/deng *
deng@local:~$
4.5 将nfs服务端共享的目录挂在到本地
deng@local:/$ sudo mount -t nfs 10.36.100.32:/home/deng /mnt
当不需要挂载的时候,卸载命令如下
deng@local:/$ sudo umount /mnt