RedHat搭建NFS服务以及问题的解决办法

NFS,其实就是Network File System的缩写,是sun公司开发的。NFS实现的是linux客户机之间的文件共享,配置相对简单,实现快。

下面介绍下如何搭建NFS服务器,以及客户机如何实现文件共享:

NFS配置实际非常简单,不相关操作不再赘述,直奔主题。。。。


1.安装必要的包

 nfs-utils           rpcbind (nfs是基于sun公司的rpc通信实现的,所以要装rpcbind)
这2包,在服务端和客户端都需要安装,并启动服务。

启动  service rpcbind start  service nfs start   (顺序不能变,nfs依存rpc,所以先启动rpcbind后启动nfs)

开机启动   chkconfig nfs on  chkconfig rpcbind on

如果yum安装会自动解决依存关系,如果rpm需要自己解决依存关系,安装所需的所有包。


2.配置文件

服务器端配置如下:

vim /etc/exports  

文件内添加  /var/ftp/pub/ 192.168.2.0/24   (rw,async,no_root_squash)

共享的目录 贡献的网段读写方式 异步方式 继承root权限(可选参数)

保存退出之后,重启nfs服务,service nfs restart。

注意事项:1.共享目录如果系统没有,需要自己手动建立,需要同exports中添加的共享目录保持一致,并加读写权限。

      2.为了顺利共享需要将防火墙关闭,service iptables stop 。或者自己配置防火墙允许共享网段内访问。

验证共享是否成功 showmount -e localehost 或者 showmount -e 127.0.0.1 都可以。如果成功会列出共享的目录。

如果失败,请检查 /etc/exports 文件配置是否正确。是否重启nfs服务。


服务端配置如下:

其实服务端安装两个包(nfs-utils 和 rpcbind),之后并不需要做任何配置,直接连接共享文件就可以。

mount -t nfs 192.168.0.12:/var/ftp/pub/ /mnt

将共享目录挂载到/mnt下。

如果成功,可以查看一下mount信息。mount -l    也可以测试写入文件,cp /etc/passwd /mnt 

开机自动挂载  修改/etc/fstab文件,添加挂载命令

如果一切顺利,至此nfs配置全部结束,是不是很简单呢!详细的权限等限制请各位自行研究。如果期间产生问题,请继续...

问题以及解决办法:

1. 启动NFS服务时出错

原因可能是rpcbind没有启动

# service rpcbind start

# service nfs start

2. 权限出错

是文件系统的权限不足

# chmod a+w /var/ftp/pub/

3.access denied by server while mounting

3.1使用了非法端口,也就是使用了大于1024的端口。

这个错误,可以通过查看日志确认:

[root@local~ /]# cat /var/log/messages | grep mount

Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.0.100 for /home/nfsshare/ (/home/nfsshare): illegal port 1689
 
解决办法:
修改配置文件/etc/exports,加入 insecure 选项,重启nfs服务,再尝试挂载。
/home/nfsshare/  *(insecure,rw,async,no_root_squash)
 
3.2  NFS版本问题
编辑/etc/sysconfig/nfs文件,找到下面:

	#Turn off v2 and v3 protocol support 
	#RPCNFSDARGS="-N 2 -N 3" 
	#Turn off v4 protocol support 
	#RPCNFSDARGS="-N 4"  /*把这句前面的#号去掉*/

最后保存,重启nfs服务,再尝试挂载;如果挂载不上,可尝试在后面加-o nolock参数。
 
3.3查看客户端挂载的目录是否具备读写权限,添加相应权限即可。
 
3.4nfs服务器上的/etc/hosts中设置了客户端机器IP对应域名,去掉即可。



你可能感兴趣的:(RedHat搭建NFS服务以及问题的解决办法)