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,清空須要清的項目就好。

相關文章
相關標籤/搜索