NFS,其实就是Network File System的缩写,是sun公司开发的。NFS实现的是linux客户机之间的文件共享,配置相对简单,实现快。
下面介绍下如何搭建NFS服务器,以及客户机如何实现文件共享:
NFS配置实际非常简单,不相关操作不再赘述,直奔主题。。。。
1.安装必要的包
启动 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对应域名,去掉即可。