-----------------------nfs--------------------------
一、前言
nfs,即網絡檔案系統,簡單來講類似于windows下的檔案共享。nfs允許一個系統在網絡上與他人共享目錄和檔案。通過使用nfs,使用者和程式可以像通路本地檔案一樣通路遠端系統上的檔案。
nfs 最初是由 sun microsytem 公司於在1984 年所開發出來的,最主要的功能就是讓網路上的 unix 電腦可以共享目錄及檔案。我們可以将遠端所分享出來的檔案系統,挂載 (mount) 在本地端的系統上,然後就可以很友善的使用遠端的檔案,而操作起來就像在本地操作一樣,不會感到有甚麽不同。而使用 nfs 也有相當多的好處,例如檔案可以集中管理,節省磁碟空間......等等。
linux下的nfs一般建立在rpc(遠端過程調用)服務至上,它由許多子程序構成:
nfsd: nfs主程序,服務名為nfsd,監聽tcp/udp2049端口
rpc.mountd:監聽用戶端請求,然後轉發請求至nfsd(預設使用随機端口)
rpc.quotad: nfs上的配額管理進(預設使用随機端口)
lockd: 檔案鎖程序,防止nfs重讀錯亂(預設使用随機端口)
rpc.statd:記錄檔案鎖狀态(預設使用随機端口)
二、安裝
nfs的安裝很簡單,linux一般提供有相關rpm包,安裝nfs-utils,nfs-utils-lib即可,一般預設已經安裝,是以隻要手動啟動服務即可:
# service nfs start
#rpcinfo -p ----->檢視本機關于nfs的端口是否打開
三、使用
nfs的配置檔案有/etc/exports,/etc/sysconfig/nfs.前者主要用來定義本機的共享點資訊。
如我們要共享本機的/www 給網絡上的192.168.0.0/24:
①、#vim /etc/exports:
/www 192.168.1.0/24(rw,sync)
------------>以讀寫,同步的方式把本機的/www目錄共享給192.168.0.0/24
②、之後導出需要共享問目錄:
# exportsfs -arv ------>導出所有共享目錄 ,即可在不重新開機服務時重新導出
也可使用exportsfs -auv :關閉所有共享目錄
# showmount -e 192.168.0.1 -------->檢視此主機上的可共享目錄
③、client使用:
mount -n nfs 192.168.0.1:/www /shared -------->挂載遠端/www至本地/shared下
至此,用戶端就可以正常通路共享目錄咯、、、、、
另外,如若我們想實作nfs的自動挂載,如隻有通路需求時才挂載,長期不通路自動退出,可使用autofs指令實作;它也同樣适用于本地目錄的挂載。
他的實作很簡單,需要用到autofs主配檔案 /etc/auto.master。如:
①、vim /etc/auto.master:
/mnt /etc/auto.shared ---------指定nfs檔案系統可自動挂載至/mnt下
②、vim /etc/auto.shared:
shared -soft, intr,rw 192.168.0.155:/shared
------------>挂載155主機的/shared至本機的/mnt/shared
③、service autofs start
之後我們會發現當我們需要通路155的/shared時,執行cd /mnt/shared即可,即時在本機看不到此目錄 。
上面講到了nfs的實作及通路,但是有沒有想過,nfs貌似很不安全啊,它沒有讓你提供認證,隻要給出ip或主機名即可輕松通路,這樣隻要我們更改适當的ip即可任意通路nfs。這是因為nfs預設隻檢查使用者名,而且用戶端說自己是哪個使用者,nfsserver就認為你是哪個使用者,是以一般我們的nfs會結合nis實作遠端集中身份驗證,即在遠端有一台主機專門作為nfs的驗證伺服器,所有用戶端的登陸都會在此主機上實作驗證。
為咯實作nis,linux提供咯ypbind和ypserv軟體包,分别基于nis認證用戶端和nis認證伺服器。
用戶端必須首先加入和伺服器同一個域内,過程如下:
1、vim /etc/yp.conf :
domain mynis server 192.168.0.254 -------->加入0.254上的指定域
2、vim /etc/nsswitch.conf:
更改: passwd: files nis
shadow: files nis
group: files nis
3、vim /etc/sysconfig/network:
nisdomain=mynis -------------->指定本機加入的域名
4、service ypbind restart ----------->啟動nis用戶端服務
service autofs restart
之後既可以實作身份驗證登入遠端nfs主機咯。