NFS - CentOS实现服务器之间共享文件
缘由
前面不是写过一个文章 局域网内网机器上网实操。基于这个情况,有时候需要某台机器的文件夹或者文件要被其他机器共享。假设服务器如下
服务器名称 | 操作系统 | IP | 描述 |
服务器A | Centos7.9 | 192.168.1.10 | 文件服务器 |
服务器B | Centos7.9 | 192.168.1.11 | 需要访问服务器A的文件 |
技术方案
技术方案肯定比较多,例如可以直接 scp 复制服务器A的需要文件到 服务器B。还有一种方式可以共享挂载 :NFS
NFS
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送
动手操作
在服务器A
第一步:安装软件
#安装软件 yum install nfs-utils rpcbind #设置自启动 systemctl enable rpcbind systemctl enable nfs
第二步:设置共享目录
#打开文件输入一下内容,加入想共享 /tmp/aaa 目录 vim /etc/exports /tmp/aaa 172.17.1.*(rw,no_root_squash,no_all_squash,sync)
第三步:设置固定端口,NFS每次启动的时候都是随机端口,这样可能被防火墙拦截,我们可以将其设置为固定端口
### 编辑配置文件 vim /etc/sysconfig/nfs ### 将下面的内容添加到配置文件末尾 MOUNTD_PORT="825" STATD_PORT="909" LOCKD_TCPPORT="4004" LOCKD_UDPPORT="4004" RQUOTAD_PORT="909"
如果有防火墙就把这些端口放行
第四步:重启服务器
service rpcbind restart service nfs restart
在服务器B
第一步:安装软件
yum install nfs-utils
第二步:测试挂载
showmount -e 192.168.1.10
第三步:挂载
##挂载服务器A的 /tmp/aaa 到 服务器B的 /tmp/bbb(需要保证这个目录存在) mount -t nfs 192.168.1.10:/tmp/aaa /tmp/bbb
第四步:开机配置
#编辑文件 vim /etc/fstab 192.168.1.10:/tmp/aaa /tmp/bbb nfs defaults 0 0