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