CentOS的NFS

NFS是古老的协议了,到了Linux不断更新和完善,从之前只支持UDP,如今支持TCP,如今到了V4版本。不过仍是不安全,最大的毛病就是不须要身份认证,也只建议在内网用一下。centos

NFS一方是服务方,一方是客户端。安全

客户端使用须要启用portmap服务(service portmap start),否则不能接入,有不少文章说须要启用NFS相关的服务,其实做为客户端是没必要的,portmap做为RPC接入服务就能够了。而到了centos6,portmap就没有了,而变成了rpcbind,默认是开启的,就不须要再麻烦处理了。服务器

服务器端默认是安装了,可是没有启用。网络

不管是portmap仍是rpcbind都在网络上监听UDP和TCP的111端口async

NFS监听在UDP和TCP的2049端口,还有些动态的下面在细说。tcp

它的共享目录配置文件在/etc/exports,服务配置文件在/etc/sysconfig/nfside


共享目录ui

/var/tmp/share 172.26.1.0/24(rw,no_all_squash)unix

通常就是目录位置和许可IP地址范围加(),括号里规定了读写rw仍是只读ro,ip

是规定了服务器和客户端里Linux用户的映射关系,no_all_squash是映射用户和组的关系,但不包括root,all_squash映射到匿名组以及匿名用户,就是所谓的nfsnobody,若是客户端没有安装NFS,那么它的全部者和组就是65534,其实nfsnobody就是65534,若是启用NFS服务就会创建起组,就会自动映射出组的名字,其实最本质的就是组的以及用户的数字号码,好比root用户就是0,root组也是0。root_squash是把root映射为匿名,no_root_squash是root映射为root,还有anonuid=xxx,anongid=xxx映射为指定的用户和组,xxx就是用户和组的数字号码。

其它一些参数基本上用不上。好比:sync:将数据同步写入内存缓冲区与磁盘中,效率低,但能够保证数据的一致性;async:将数据先保存在内存缓冲区中,必要时才写入磁盘。


服务配置文件

这个文件通常是不进行配置,默认就能够了。

可是当启用了防火墙iptable就不得不配置了。

经过抓包能够看到,nfs的链接过程不单单须要111和2049端口,还有些动态的端口,这些动态的端口在每次重启动nfs服务都会变化,iptable防火墙看可没有那么智能能够动态的打开端口,这时候就须要固化监听的端口了。

编辑/etc/sysconfig/nfs文件

RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892

我没改端口号,就是把#去掉了。

重启服务

netstat -lpn | grep -v unix

tcp    0    0.0.0.0:892                 0.0.0.0:*                   LISTEN      3959/rpc.mountd

tcp    0    0.0.0.0:875                 0.0.0.0:*                   LISTEN      3954/rpc.rquotad

tcp    0    0 0.0.0.0:32803               0.0.0.0:*                   LISTEN      -

udp   0    0 0.0.0.0:32769               0.0.0.0:*                               -

而后固然是配置防火墙,把这些端口加上了。

cat /etc/sysconfig/iptables

-A INPUT -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -p udp -m udp --dport 32769 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 892 -j ACCEPT
-A INPUT -p udp -m udp --dport 892 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 875 -j ACCEPT
-A INPUT -p udp -m udp --dport 875 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT


服务器端

查看状态命令

nfsstat

查看配置

exportfs

查看RPC状况

rpcinfo -p

查看目前已经连进本机的状况

showmount -a


客户端

临时创建命令

mount 172.26.1.73:/var/tmp/share /home/shenxu/source

172.26.1.73服务器IP

/var/tmp/share服务器共享的目录

/home/shenxu/source映射到本地的目录

长期创建映射,编辑/etc/fstab,添加下面一行

172.26.1.73:/var/tmp/share /home/shenxu/source  nfs     defaults 0 0


另外有些时候用showmount -a能看到根本没有的链接,是之前链接的痕迹,重启也还有。虽然没啥影响,可是咱们追求完美,Linux基本上都是以文件形式存在的,那么这个重启之后还有,确定是存在硬盘上的某个文件,它就是/var/lib/nfs/rmtab,清空须要清的项目就好。

相关文章
相关标签/搜索