NFS
这也是一个共享服务,相对于samba服务,NFS搭建就简单的多,比较方便,多用于对权限控制不是那么严格的环境。
NFS服务可以将远程linux上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。
优点:
通过网络访问共享资源,不用下载到本地,节省主机存储资源
将网络共享永久挂载到本地后,相当于在本地添加一块磁盘使用方便
不需要每次使用共享资源都访问服务器端
相关协议介绍===>挂上就能用啊你:NFS
需求
在服务器上部署NFS服务,共享/data/目录,让windows客户机和linux客户机挂载共享目录。
环境:
服务器IP | 192.168.1.123 |
---|---|
windows,linux客户机 | 能通信即可 |
安装及启动
NFS服务需要借助RPC(Remote Procedure Call,远程过程调用)协议实现通信,需要使用RPC服务将NFS服务器的IP地址和端口号等信息发送给客户端。
NFS服务的程序为nfs-utils,而使用RPC协议,就需要安装rpcbind程序了。
yum install -y nfs-utils rpcbind
启动时,因为NFS需要依赖RPC协议实现,所以在开启的时候,要先开启rpcbind服务
systemctl start rpcbind.socket
systemctl start nfs
查看其端口
netstat -anput | grep rpc
建议将其设置为开机启动,能最大程度的向客户端提供服务
systemctl enable rpcbind
systemctl enable nfs
NFS服务器配置
创建/data/共享目录,并创建测试文件
mkdir /data
touch /data/test.txt
echo "HELLO" >/data/test.txt
chmod +777 /data/test.txt
NFS的主配置文件/etc/exports,以下为配置文件参数说明:
参数 | 作用 |
---|---|
ro | 只读权限 |
rw | 读取与修改 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
NFS的主配置文件内容是空的,需要自己手动添加条目。
vim /etc/exports
/data 192.168.1.*(rw,sync,all_squash)
书写格式:共享目录 允许访问的地址(配置参数,以,为分隔符)
之后启动服务,若已经启动,重启服务即可。
systemctl restart rpcbind
systemctl restart nfs
linux客户端
使用showmount命令显示可挂载NFS共享目录。
showmount参数说明:
参数 | 说明 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况 |
-v | 显示版本号 |
直接使用-e选项查询共享信息
showmount -e 192.168.1.123
Export list for 192.168.1.123:
/data 192.168.1.*
然后使用mount命令即可临时挂载共享目录
mkdir /data
mount -t nfs 192.168.1.123:/data /data
这样就挂载完成了,查看一下其中有没有共享的数据
ls /data/
test.txt
cat /data/test.txt
HELLO
查看是否为网络挂载
[root@linux ~]# df -hT /data/
文件系统 类型 容量 已用 可用 已用% 挂载点
192.168.1.123:/data nfs4 50G 5.2G 45G 11% /data
对于客户端来说,使用共享是非常频繁的,建议将其永久挂载。
vim /etc/fstab
#末尾添加以下内容:
192.168.1.123:/data /data nfs defaults 0 0
重启系统生效。
windows客户端
win+R输入OptionalFeatures打开windows功能,在其中开启NFS服务功能
若不打开器功能,在使用命令的时候会报错
C:\Users\Administrator>showmount -e
'showmount' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
开启功能后,就可以自由使用其命令了,先查看一下NFS主机的共享目录
C:\Users\Administrator>showmount -e 192.168.1.123
导出列表在 192.168.1.123:
/data 192.168.1.*
使用mount命令可将其挂载,命令格式:mount ip:共享目录 本地盘符号
C:\Users\Administrator>mount 192.168.1.123:/data z:
z: 现已成功连接到 192.168.1.123:/data
命令已成功完成。
在资源管理器中就可以看到挂载的共享目录了。
共享的权限为读写,这里修改一下文件内容,在服务器端查看一下
服务器端查看
cat /data/test.txt
HELLO!!!
测试完成