CentOS上使用NFS服務,須要安裝兩個包(nfs-utils和rpcbind), 不過當使用yum安裝nfs-utils時會把rpcbind一塊兒安裝上:vim
[root@localhost ~]# yum install -y nfs-utils
在以前的CentOS版本中,是須要安裝portmap包的,從CentOS6開始,就改成rpcbind了。NFS配置起來仍是蠻簡單的,只須要編輯配置文件/etc/exports便可。下面阿銘就先建立一個簡單的NFS服務器。安全
首先是修改配置文件,默認該文件爲空,如今編輯它:服務器
[root@localhost ~]# vim /etc/exports
寫入以下內容:async
/home/ 192.168.137.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
這個配置文件就這樣簡單一行。共分爲三部分,第一部分就是本地要共享出去的目錄,第二部分爲容許訪問的主機(能夠是一個IP也能夠是一個IP段)第三部分就是小括號裏面的,爲一些權限選項。關於第三部分,阿銘簡單介紹一下:ui
rw :讀寫;spa
ro :只讀;code
sync :同步模式,內存中數據時時寫入磁盤;內存
async :不一樣步,把內存中數據按期寫入磁盤中;rpc
no_root_squash :加上這個選項後,root用戶就會對共享的目錄擁有至高的權限控制,就像是對本機的目錄操做同樣。不安全,不建議使用;同步
root_squash:和上面的選項對應,root用戶對共享目錄的權限不高,只有普通用戶的權限,即限制了root;
all_squash:無論使用NFS的用戶是誰,他的身份都會被限定成爲一個指定的普通用戶身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,用於指定使用NFS的用戶限定後的uid和gid,前提是本機的/etc/passwd中存在這個uid和gid。
介紹了上面的相關的權限選項後,再來分析一下阿銘剛剛配置的那個/etc/exports文件。其中要共享的目錄爲/home,信任的主機爲192.168.137.0/24這個網段,權限爲讀寫,同步,限定全部使用者,而且限定的uid和gid都爲501。
編輯好配置文件後,就該啓動NFS服務了:
[root@localhost ~]# /etc/init.d/rpcbind start; /etc/init.d/nfs start
在啓動nfs服務以前,須要先啓動rpcbind服務,以前CentOS老版本中並非rpcbind, 而是叫作portmap.
客戶端在掛載NFS以前,咱們須要先看一看服務端都共享了哪些目錄,這須要使用showmount命令,可是這個命令是nfs-utils這個包所帶的,因此一樣須要安裝nfs-utils:
[root@localhost ~]# yum install -y nfs-utils
如今能夠看看服務器端都共享了哪些目錄了:
[root@localhost ~]# showmount -e 192.168.137.10 Export list for 192.168.137.10: /home 192.168.137.0/24
能夠看到剛纔咱們在服務端配置的nfs共享信息。 showmount -e
加IP就能夠查看NFS的共享狀況,上例中,就能夠看到192.168.137.10的共享目錄爲/home,信任主機爲192.168.137.0/24這個網段。
下面在客戶端上掛載服務端的nfs:
[root@localhost ~]# mount -t nfs 192.168.137.10:/home/ /mnt/ [root@localhost ~]# df -h 文件系統 容量 已用 可用 已用%% 掛載點 /dev/sda3 14G 6.4G 6.7G 50% / tmpfs 160M 0 160M 0% /dev/shm /dev/sda1 97M 27M 66M 29% /boot /dev/sdb5 989M 19M 920M 3% /home 192.168.137.10:/home/ 989M 19M 920M 3% /mnt
用 df -h
命令能夠看到多出來一個/mnt分區,它就是NFS共享的目錄了。
在這一章節裏,使用的命令很少,另外還有一個經常使用的命令那就是exportfs,它的經常使用選項爲[-aruv].
-a :所有掛載或者卸載;
-r :從新掛載;
-u :卸載某一個目錄;
-v :顯示共享的目錄;
使用exportfs命令,當改變/etc/exports配置文件後,不用重啓nfs服務直接用這個exportfs便可。接下來阿銘作一個實驗,先改一下服務端的配置文件:
[root@localhost ~]# vim /etc/exports
增長一行:
/tmp/ 192.168.137.0/24(rw,sync,no_root_squash)
而後服務端上執行命令:
[root@localhost ~]# exportfs -arv exporting 192.168.137.0/24:/tmp exporting 192.168.137.0/24:/home
在以前的命令中用到了mount命令來掛載nfs,其實mount這個nfs服務仍是有些說法的。首先是用-t nfs 來指定掛載的類型爲nfs。另外在使用nfs時,經常使用一個選項就是 -o nolock 了,即在掛載nfs服務時,不加鎖。 在客戶端上執行:
[root@localhost ~]# mkdir /test [root@localhost ~]# mount -t nfs -o nolock 192.168.137.10:/tmp/ /test/
咱們還能夠把要掛載的nfs目錄寫到client上的/etc/fstab文件中,掛載時只須要執行 mount -a
便可。在 /etc/fstab里加一行:
192.168.137.10:/tmp/ /test nfs nolock 0 0
由於剛剛掛載過,因此先卸載:
[root@localhost ~]# umount /test/
而後執行:
[root@localhost ~]# mount -a
這樣也能夠掛載上,並且之後開機會自動掛載上。