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

以两台服务器为例,一台作为服务端,一台为客户端进行挂载。

A:192.168.1.225 (服务端)
B:192.168.1.226 (客户端)
yum安装
两台服务器分别执行:yum -y install nfs-utils rpcbind进行安装服务。

服务端配置
mkdir /usr/local/test ### 创建共享目录
vi /etc/exports ### 编辑配置文件

将这行添加到配置文件中保存

/usr/local/test/ 192.168.1.226(rw,no_root_squash,no_all_squash,sync)
service rpcbind start ### 启动rpcbind服务
设置端口固定
NFS每次启动的时候都是随机端口,这样可能被防火墙拦截,我们可以将其设置为固定端口,并放行:

编辑配置文件

vi /etc/sysconfig/nfs

将下面的内容添加到配置文件中

MOUNTD_PORT="825"
STATD_PORT="909"
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"
RQUOTAD_PORT="909"
端口设置好之后输入命令重启相关服务:service rpcbind restart和service nfs restart

放行端口
可以直接vi /etc/sysconfig/iptables编辑iptables规则,将下面的内容添加到iptables中:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 825 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 825 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 909 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 909 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4004 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 4004 -j ACCEPT
输入:service iptables restart重启iptables生效

客户端配置
mkdir /usr/local/test ### 创建挂载目录
showmount -e 192.168.1.225 ### 测试挂载
mount -t nfs 192.168.1.225:/usr/local/test /usr/local/test ### 挂载
如果需要设置开机自动挂载,那么将下面的信息添加到:/etc/fstab

vi /etc/fstab ### 编辑配置文件,将下面规则加入,IP和目录请自行调整
server_IP:/remote_dir /local_dir nfs defaults 1 1
自动挂载的前提是服务端将NFS设置为开启自启,否则会有异常。

其它说明
NFS不仅可以挂载内网目录,还可以挂载公网文件也是可行的,如果挂载的时候遇到端口问题,可以在服务端停止iptables试一下:service iptables stop

附注:
1、运行showmount -e 192.168.1.225 ### 测试挂载的时候,一直出现“clnt_create: RPC: Port mapper failure – Unable to receive: errno 113 (No route to host)”,无论更改哪些端口都还是一样提示,只有关闭防火墙才会正常显示,最后找到原因是禁止了ping,打开ping就正常了。下次就不用禁止ping,也不用运行showmount命令,直接挂载就好了。
2、另外,端口只要打开111和2049就好了。

Last modification:December 19th, 2020 at 11:28 pm
如果觉得我的文章对你有用,请随意赞赏