文章目录
- 1、nfs文件系统的安装
- 2、编辑配置文件
- 3、配置文件的常用参数(/etc/export)
- 4、挂载nfs服务
- 5、nfs服务操作命令
- 6、其他常用命令
1、nfs文件系统的安装
- 如果只需要挂载nfs服务的文件夹。
sudo apt install nfs-common
- 安装nfs的服务,可以共享文件夹在局域网内,一般都安装这个。
sudo apt install nfs-kernel-server
2、编辑配置文件
nfs服务端的配置文件在 /etc/exports
文件内,想要共享的文件夹一定要在这里配置才能被客户端发现。
/etc/exports 的文件内容大致如下
/home/nfsboot/ *(rw,sync,no_root_squash,no_subtree_check)
/data *(rw,sync,no_root_squash,no_subtree_check,insecure)
3、配置文件的常用参数(/etc/export)
- 指定那些客户端可以挂载
说明 | 例 |
指定 IP 地址的主机 | 127.0.0.1 |
指定子网中的所有主机 | 192.168.0.0/24 192.168.0.0/255.255.255.0 |
指定域名的主机 | sancloud.club |
指定域名中的所有主机 | *.sancloud.club |
所有机器 | * |
- 访问控制
参数 | 说明 |
ro | 设置输出目录只读 |
rw | 设置输出目录读写 |
- 服务映射用户选项
参数 | 说明 |
all_squash | 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);无论 NFS 客户端使用什么账户访问,均映射为 NFS服务器的匿名用户 |
no_all_squash | 与all_squash取反(默认设置); |
root_squash | 将root用户及所属组都映射为匿名用户或用户组(默认设置); |
no_root_squash | 与rootsquash取反; |
anonuid=xxx | 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx) |
anongid=xxx | 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx) |
- 其他
参数 | 说明 |
secure | 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置); |
insecure | 允许客户端从大于1024的tcp/ip端口连接服务器; |
sync | 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; |
async | 将数据先保存在内存缓冲区中,必要时才写入磁盘; |
wdelay | 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置); |
no_wdelay | 若有写操作则立即执行,应与sync配合使用; |
subtree | 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置); |
no_subtree | 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率; |
4、挂载nfs服务
sudo mount -t nfs [目标服务ip:目标服务器文件夹] [本机地址]
例sudo mount -t nfs 192.168.1.2:/data /data/testdata
5、nfs服务操作命令
启动nfs:sudo service nfs-kernel-server start
停止nfs:sudo service nfs-kernel-server stop
查看状态:sudo service nfs-kernel-server status
重新启动nfs:sudo service nfs-kernel-server restart
6、其他常用命令
显示已经mount到本机nfs目录的客户端机器。sudo showmount -e localhost
sudo showmount -e [ip]
无需重启服务,重新export目录。sudo exportfs -rv
查看nfs运行状态sudo nfsstat
查看nfs端口sudo netstat -tu -4
查看rpc信息sudo rpcinfo