一、服务端
服务端ip假设为:192.168.1.100,要将服务端/data/share目录挂载到192.168.1.101和192.168.1.102这两台机器上。
1、检查nfs服务
rpm -qa|grep nfs
rpm -qa|grep rpcbind
2、安装nfs
yum -y install nfs-utils rpcbind
3、设置开机自动启动服务
chkconfig nfs on
chkconfig rpcbind on
4、启动服务
service rpcbind start
service nfs start
5、停止服务
service nfs stop
service rpcbind stop
6、创建共享目录
mkdir /data/share
chmod -R 777 /data/share
7、配置exports文件(共享目录及访问权限配置)
vi /etc/exports
加入内容:
/data/share 192.168.1.101(rw,sync,root_squash) 192.168.1.102(rw,sync,root_squash)
说明:允许192.168.1.101和192.168.1.102这两台机器访问共享,支持通配符如192.168.1.*,访问权限请见(附1)
8、刷新配置立即生效
exportfs -a
9、查看mount目录
showmount -e
10、查看服务端口
用命令 rpcinfo -p 查看当前这5个服务的端口,并记录下来。
rpcinfo -p
其中nfs 2049、portmapper111,以及剩下3个服务的端口各记录一个,这样我们就得到了5个端口,如下:
nfs 2049
portmapper 111
mountd 976
rquotad 966
nlockmgr 33993
11、设置固定端口
下面将mountd、rquotad、nlockmgr这3个端口设置为固定端口,修改/etc/service,添加以下内容:
vi /etc/services
在文件的最后一行添加:
mountd 976/tcp
mountd 976/udp
rquotad 966/tcp
rquotad 966/udp
nlockmgr 33993/tcp
nlockmgr 33993/udp
保存并退出。
12、设置nfs配置文件
配置端口使 rquotad、nlockmgr、mountd的端口固定,如下:
vi /etc/sysconfig/nfs
加入内容:
RQUOTAD_PORT=966
LOCKD_TCPPORT=33993
LOCKD_UDPPORT=33993
MOUNTD_PORT=976
其中 portmapper和nfs 服务端口是固定的分别是 111和2049,后面在防火墙中配置端口。
13、重启nfs服务,使端口配置生效
service nfs restart
14、配置防火墙端口
vim /etc/sysconfig/iptables
加入:
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 976 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 966 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 33993 -j ACCEPT-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 976 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 966 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 33993 -j ACCEPT
保存退出并重启iptables
service iptables restart
服务端配置完毕。
二、客户端
1、创建共享目录
mkdir /data/share
2、挂载目录,完事
mount 192.168.1.100:/data/share /data/share
3、卸载已挂载目录
umount /data/share
附1:
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