NFS協議是網絡當中比較常用的一類協議,在很多開發系統平台中,都需要加載這個協議。所以,我們這裡就來詳細介紹一下NFS協議的啟動以及寫在等內容。希望對大家有所幫助。
一:服務器端的設定(以LINUX為例)
服務器端的設定都是在/etc/exports這個文件中進行設定的,設定格式如下:
欲分享出去的目錄 主機名稱1或者IP1(參數1,參數2) 主機名稱2或者IP2(參數3,參數4)
上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩台主機的權限和參數是不同的,所以分別設定兩個主機得到的權限.
可以設定的參數主要有以下這些:
rw:可讀寫的權限;
ro:只讀的權限;
no_root_squash:登入到NFS 主機的用戶如果是ROOT用戶,他就擁有ROOT的權限,此參數很不安全,建議不要使用.
root_squash:在登入 NFS協議主機使用分享之目的使用者如果是使用者的都成 nobody 身份;
all_squash:不管登陸NFS主機的用戶是什麼都會被重新設定為nobody.
anonuid:將登入NFS主機的用戶都設定成指定的user id,此ID必須存在於/etc/passwd中.
anongid:同 anonuid ,但是?成 group ID 就是了!
sync:資料同步寫入存儲器中.
async:資料會先暫時存放在內存中,不會直接寫入硬盤.
insecure 允許從這台機器過來的非授權訪問.
例如可以編輯/etc/exports為:
/tmp *(rw,no_root_squash)
/home/public 192.168.0.*(rw) *(ro)
/home/test 192.168.0.100(rw)
/home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)
設定好後可以使用以下命令啟動NFS協議:
/etc/rc.d/init.d/portmap start (在RedHat中PORTMAP是默認啟動的)
/etc/rc.d/init.d/nfs start
exportfs命令:
如果我們在啟動了NFS協議之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv]
-a :全部 mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的?r候,將詳細的信息輸出到屏幕上.
具體例子:
[root @test root]# exportfs -rv <== 全部重新 export 一次!
exporting 192.168.0.100:/home/test
exporting 192.168.0.*:/home/public
exporting *.the9.com:/home/linux
exporting *:/home/public
exporting *:/tmp
reexporting 192.168.0.100:/home/test to kernel
exportfs -au <== 全部都卸載了.
二、客戶端的操作:
1?showmout命令對於NFS協議的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法
showmout
-a :這個參數是一般在NFS SERVER上使用,是用來顯示已經 mount上本機nfs目錄的cline機器.
-e :顯示指定的NFS SERVER上export出來的目錄.
例如:
showmount -e 192.168.0.30
Export list for localhost:
/tmp *
/home/linux *.linux.org
/home/public (everyone)
/home/test 192.168.0.100