一、环境介绍:
服务器:centos 192.168.204.136
客户端:centos 192.168.204.135
二、安装nfs服务器和rpcbind:
yum -y install nfs-utils rpcbind
早期版本 rpcbind 需改成 portmap
三、服务器端配置:
1、创建共享目录:
mkdir /var/ftp/
2、NFS文件配置:
vi /etc/exports
#增加一行(参数参考底部其他):
/var/ftp/ 192.168.204.135(rw,all_squash,sync)
使配置生效:
exportfs -r
一般站点是用来共享图片,所以最好加上用户id和组id(一般都是www用户)
/var/ftp 192.168.204.135(rw,all_squash,anonuid=502,anongid=502)
如果服务没起来(注意先后顺序):
service rpcbind start
service nfs start
四、客户端处理:
yum -y install nfs-utils
mount -t nfs 192.168.204.136:/var/ftp /usr/local/test
挂载失败?关闭服务器的防火墙,成功。
mount查看,即可看到挂载的文件
创建文件,两边即可同时查看。如果权限不足,先给服务器共享目录777权限。
这样就搭建完了,但很显然是不够的。优化:
一、服务器
a、自启动rpcbind和nfs
chkconfig rpcbind on
chkconfig nfs on
b、固定端口(服务器不允许关闭防火墙)
nfs服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad5个服务,nfs 和 portmapper两个服务是固定端口的,nfs为2049,portmapper为111。其他的3个服务是用的随机端口,那就需要先把这3个服务的端口设置成固定的。
1、rpcinfo -p
把剩下的三个服务的端口随便选择一个记录下来
mountd 46750
rquotad 875
nlockmgr 47266
2、修改nfs配置文件
vim /etc/sysconfig/nfs
# Port rquotad should listen on.
RQUOTAD_PORT=875
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=46997
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=47266
# Port rpc.mountd should listen on.
MOUNTD_PORT=46750
3、防火墙开放对应的端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m multiport --dport 111,2049,875,46997,47266 -j ACCEPT
二、客户端
设置开机挂载
vim /etc/fstab
#加入下面这句
192.168.204.136:/var/ftp /usr/local/test nfs defaults,soft,intr 0 0
#Nfs是类型
#soft参数是为了向用户输出错误信息
#intr参数为了解决当网络出现故障时,我们可以通过按下ctrl+c组合键来终止操作
其他:
1、nfs参数详解
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享(资料同步写入到内存与硬盘中)
async NFS在写入数据前可以相应请求(资料会先暂存于内存中,而非直接写入硬盘)
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送(允许从这台机器过来的非授权访问)
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
2、如果觉得默认文件权限较低(644)
可以修改unmask的配置(默认022)
/etc/profile
3、参考:
http://www.lvtao.net/server/centos-nfs.html
http://www.j3j5.com/post-28.html
http://www.linuxidc.com/Linux/2013-05/84777.htm
有问题请留言~