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