作業系統是CentOS6.5
1.首先需要兩個虛拟機,一個作為服務端,一個作為用戶端,分别使用下列指令檢查用戶端和服務端是否安裝了nfs和rpc相關的包
92C4C101-23A2-44EF-93B6-5D779EE410CD.png![]()
Linux實作NFS
如果沒有安裝,請執行下列指令安裝
89D270DF-1A91-4D64-A954-82933088CAFA.png![]()
Linux實作NFS
使用下列指令可以檢視是否安裝成功,安裝成功了會像下面這樣顯示
image.png![]()
Linux實作NFS
2.在服務端配置nfs的固定端口,友善于之後配置防火牆規則,當然你也可以跳過這一步,選擇關閉防火牆,但是這樣安全性不高
使用vim打開/etc/sysconfig/nfs 檔案,在底部添加如下配置
![]()
Linux實作NFS
然後儲存退出
3.配置服務端需要挂着的目錄,使用vim打開/etc/exports檔案,按照如下規則配置
![]()
Linux實作NFS
/mnt是我要挂着到用戶端的目錄
192.168.1.107是我用戶端的ip位址,你也可以寫成一個網絡位址如192.168.1.0/24,這樣在這個網絡下的主機都能挂載,如果寫的是*,那麼所有主機都可以遠端挂着這個目錄
括号裡的參數有很多
rw:具有讀寫權限
sync:資料同步寫入磁盤和記憶體
o:隻讀權限
no_root_squash:登入nfs主機時,擁有共享目錄所有者權限
root_squash:登入nfs主機時,擁有共享目錄所有者權限,但如果共享目錄的擁有者時root使用者,那麼登入者權限為nobody權限
all_squash:登入nfs主機時,擁有nobody使用者權限
anonuid:指定使用者id
anongid:指定群id
async:資料先存記憶體,再存硬碟
no_subtree_check:不檢查父檔案夾權限
subtree:檢查父檔案權限
secure:限制client port(<1024)
4.啟動伺服器端服務
首先啟動rpcbind
![]()
Linux實作NFS
啟動nfs
![]()
Linux實作NFS
5.接下來在服務端添加防火牆規則,這裡是我的采坑經曆,首先使用指令
rpcinfo -p檢視需要配置防火牆規則的端口
![]()
Linux實作NFS
使用vim打開/etc/sysconfig/iptables進行配置,如下圖
![]()
Linux實作NFS
這裡我的了解是千萬要按順序進行添加,意思就是每一行後面是ACCEPT的要接連在一起,千萬不要被REJECT、FORWARD這樣的行隔開,不然配置是無效的,具體原因我還不清楚,等我去找資料再來說清楚。
6.重新開機防火牆配置
service iptables restart
![]()
Linux實作NFS
7.伺服器端事情做完了,接下來用戶端挂載就行,輸入下列指令實作挂載
![]()
Linux實作NFS
這樣我們已經成功挂載了,能看到伺服器端的檔案了
挂載參數的含義如下:
(1)-a:把/etc/fstab中列出的路徑全部挂載。
(2)-t:需要mount的類型,如nfs等。
(3)-r:将mount的路徑定為read only。
(4)-v mount:過程的每一個操作都有message傳回到螢幕上。
(5)rsize=n:在NFS伺服器讀取檔案時NFS使用的位元組數,預設值是4096個位元組。
(6)wsize=n:向NFS伺服器寫檔案時NFS使用的位元組數,預設值是4096個位元組。
(7)timeo=n:從逾時後到第1次重新傳送占用的1/7秒的數目,預設值是7/7秒。
(8)retry=n:在放棄背景mount操作之前可以嘗試的次數,預設值是7 000次。
(9)soft:使用軟挂載的方式挂載系統,若Client的請求得不到回應,則重新請求并傳回錯誤資訊。
(10)hard:使用硬挂載的方式挂載系統,該值是預設值,重複請求直到NFS伺服器回應。
(11)intr:允許NFS中斷檔案操作和向調用它的程式傳回值,預設不允許檔案操作被中斷。
(12)fg:一直在提示符下執行重複挂載。
(13)bg:如果第1次挂載檔案系統失敗,繼續在背景嘗試執行挂載,預設值是失敗後不在背景處理。
(14)tcp:對檔案系統的挂載使用TCP,而不是預設的UDP。