NFS(NetworkFileSystem)即网络文件系统,是Linux/Unix支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT(centos5之前,之后是rpcbind)的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责信息的传输。

NFS服务端(示例ip:192.168.0.222)
1. 安装nfs
yum -y install nfs-utils rpcbind
2. enable services。设置开机启动nfs相关服务。
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
3. 启动nfs service
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
4 创建需要共享的目录
mkdir -p /public/share
chmod -R 777 /public/share      更改share文件夹及其子文件夹权限为777
5. 配置需要共享的目录到 /etc/exports下,xxx.xxx.xxx.xxx为需要共享的对象ip地址
echo "/public/share 192.168.0.*(rw,sync,no_root_squash)" >> /etc/exports
#或者:echo "/public/share 192.168.0.0/24(rw,sync,no_root_squash)" >> /etc/exports
exportfs -a
more /etc/exports
#检查共享目录是否设置正确
showmount -e

centos7如何上传运行sh脚本文件 centos7传输文件_RPC

6. 配置防火墙
firewall-cmd --add-service=nfs --permanent --zone=public
firewall-cmd --add-service=mountd --permanent --zone=public
firewall-cmd --add-service=rpc-bind --permanent --zone=public
firewall-cmd --reload   # 重新载入配置,使其生效
#可使用 命令 iptables -L -n  查看开放的端口
#如果是Iptables防火墙:NFS服务器在防火墙后边,则需要在防火强策略中加入如下策略:
-A INPUT -p tcp -m state --state NEW -m multiport --dport 111,2049,4001,32764:32767 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m multiport --dport 111,2049,4001,32764:32767 -j ACCEPT

centos7如何上传运行sh脚本文件 centos7传输文件_linux_02

NFS客户端
#注意:客户端不需要启动nfs服务
##### 1 安装nfs
yum -y install nfs-utils
##### 2 检查共享目录是否设置正确,xxx.xxx.xxx.xxx 为共享服务器地址
showmount -e 192.168.0.222
##### 3 挂载远程服务器NFS分区到本地挂载点
#make mount points 
mkdir -p /public/share
#mount nfs 
mount -t nfs 192.168.0.222:/public/share    /public/share

至此,配置成功。