NFS安装与配置

服务器端

假设ip为1.1.1.1

检查安装

rpm -qa|grep nfs

安装

yum install -y nfs-utils rpcbind

编辑exports

vi /etc/exports

添加以下内容

/www/wwwroot/data 2.2.2.2(rw,sync,no_root_squash,no_subtree_check) //注意IP地址与括弧之间没空格
systemctl start rpcbind                             //启动rpcbind
systemctl start nfs                                //启动nfs服务,rpcbind默认监听端口111
systemctl enable rpcbind                                     //设置开机启动
systemctl enable nfs                                           //设置开机启动
service nfs restart

#或者
exportfs -rv

查看nfs的状态

service nfs status

查看共享

showmount -e

防火墙设置

nfs启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。这样设置固定端口以后即便重启机器也很方便挂载,如果不设置固定端口,机器或服务重启后之前添加的iptables规则就失效了。

检查NFS服务网络连接端口:

rpcinfo –p

设置固定端口:

编辑 /etc/sysconfig/nfs 文件:

vim /etc/sysconfig/nfs

添加如下内容:

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

添加后保存退出并重启 rpcbind和nfs

service  rpcbind   restart
service   nfs  restart

添加firewall规则

CentOS使用firewall而不是iptables

firewall-cmd --add-port=2049/tcp --permanent
firewall-cmd --add-port=2049/udp --permanent
firewall-cmd --add-port=111/tcp --permanent
firewall-cmd --add-port=111/udp --permanent
firewall-cmd --add-port=30001/tcp --permanent
firewall-cmd --add-port=30001/udp --permanent
firewall-cmd --add-port=30002/tcp --permanent
firewall-cmd --add-port=30002/udp --permanent
firewall-cmd --add-port=30003/tcp --permanent
firewall-cmd --add-port=30003/udp --permanent
firewall-cmd --add-port=30004/tcp --permanent
firewall-cmd --add-port=30004/udp --permanent

重启防火墙

firewall-cmd --reload

查看防火墙端口状态

firewall-cmd --list-ports

客户端

假设ip为2.2.2.2

安装

yum install -y nfs-utils
apt-get install nfs-common portmap

查看共享

showmount -e 1.1.1.1

客户端挂载NFS

mount -t nfs 1.1.1.1:/home/data  /mnt

自动挂载

编辑/etc/rc.d/local,将对应的命令 mount -t nfs 1.1.1.1:/home/data /mnt添加进去。

不要尝试在直接在/etc/fstab/里挂载,在Linux内核启动的流程中,网络的启动是在本机文件系统挂载之后,所以直接利用 /etc/fstab 尝试挂载 NFS 时,系统由于尚未启动网络,是无法挂载成功的。

解除挂载

umount 1.1.1.1:/home/data