NFS简介
NFS——network file system,网络文件系统。将NFS服务器共享的文件目录挂载到NFS客户端,该客户端对远程服务器上的文件进行读写,实现文件共享。
NFS工作原理
NFS通过网络实现服务端和客户端的数据传输,大家也知道数据传输需要有对应端口,但是NFS功能很多,每开启一个功能就会占用一个端口来传输数据,所以NFS服务器的端口号不固定。那么问题来了,NFS服务器端口不固定,NFS客户端怎么知道服务器使用的是哪个端口呢?NFS的实现主要是采用远程过程调用RPC(Remote Procedure Call)机制,RPC相当于传播介质:
- 当服务端启用NFS服务时,向RPC注册端口信息
- 客户端向服务端请求时,服务端的RPC将端口信息返回给客户端
- 客户端带着NFS端口号跟服务端建立连接并数据传输
NFS部署
一个NFS服务端可以对应多个客户端,但是要保证服务端和客户端能相互ping通
一、服务端部署
服务端ip:192.168.1.5
1.安装nfs服务器
$ sudo apt-get install nfs-kernel-server
2.设置nfs需要挂载的目录及允许权限
$ sudo vim /etc/exports
/media/dan/out 192.168.1.6(insecure,rw,sync,no_root_squash)
分为两部分:【共享目录】 【客户端地址(权限)】
- 客户端地址:
1)可以配置多个客户端,如
【共享目录】 【客户端1地址(权限)】 【客户端2地址(权限)】……
2)客户端地址可以是完整ip、也可以是主机名
3)客户端地址支持通配符 - 权限:
ro:默认选项,以只读方式共享
rw:以读写方式共享
root_squash:当客户端使用的是root用户时,映射到NFS服务器的用户为匿名用户(nfsnobody)
no_root_squash:当客户端使用的是root用户时,映射到NFS服务器的用户为root用户
all_squash:默认选项,无论客户端使用什么用户,映射到NFS服务器都为匿名用户
anonuid:设置映射到本地的匿名用户的UID
anongid:设置映射到本地的匿名用户的GID
sync:默认选项,数据同步更新,数据同步写入到内存和硬盘
async:异步,先将数据写入到内存,在将数据写入到硬盘。
secure:默认选项,NFS客户端必须使用NFS保留端口(通常是1024以下的端口)
insecure:允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)
3.配置好后重启nfs服务
$ sudo /etc/init.d/nfs-kernel-server restart
二、客户端部署
客户端ip:192.168.1.6
linux客户端
1.安装客户端(自动下载依赖)
$ sudo apt install nfs-common
2.查看nfs server上共享的目录
$ sudo showmount -e 192.168.1.5
3.挂载
$ sudo mount 192.168.1.5:/media/dan/out /home/ivy
取消挂载:sudo umount /home/ivy
windows客户端
1.在控制面板–程序–打开或关闭windows功能–打开nfs以及子项
2.win+r打开命令行工具,敲:
showmount -e 192.168.1.5
查看NFS服务器上所有的共享目录
3.挂载
mount \\192.168.1.5\media\dan\out X: