天天看點

nfs配置

NFS

在windows中經常使用網路上的芳鄰的功能來實作在區域網路中共享檔案,友善了使用。那麼在linux中是否有同樣的功能呢?結果是肯定的。

在linux系統上我們可以使用nfs服務來實作區域網路中的共享。nfs服務工作方法如下:

首先伺服器啟動服務,service nfs start。

nfs服務(監聽2049端口)的主程序是nfsd同時要啟動四個程序portmap,rpc.mountd,lockd,rpc.quotad,rpc.statd這幾個程序。

nfs服務啟動的程序都是同時監聽tcp/udp協定。其幾個程序的作用分别如下:

1.                 portmap監聽端口111,提供的服務是給予其他三個程序提供随機端口。rpc.mountd确定用戶端是否能夠挂載分區。

2.                 rpc.mountd,提供讓伺服器挂載的接口

3.                 locked提供檔案鎖,在有多個使用者挂載同個檔案時,保證資料的同步性。其方法為:對問價進行加鎖,不允許多個使用者同時修改一個檔案。

4.                 rpc.quotad是在挂載時檢查是否有磁盤配額,同時并啟用之。

5.                 rpc.statd和locked聯合使用,共同保證資料的完整性和一緻性

其工作過程如下:

client à伺服器的portmapà得到mountd端口à連接配接伺服器的mountd端口à   mountd查找exports檔案同時根據rpc.quotad的限制給予client權限(句柄)à通路server的nfsd程序,挂載分區

在實作共享時分以下幾步:

1.          首先在伺服器上配置所要共享的檔案夾

2.          啟動服務,如果服務已經啟動使用指令export -arv重新讀取一下共享的檔案夾。

3.          在用戶端中建立目錄,并挂載伺服器中共享的檔案夾

以下為配置使用的指令:

<b>伺服器上的配置</b>

是用指令 rpcinfo -p 可以檢視nfs對應程序啟動的端口号

編輯配置檔案/etc/exports:格式如下:

/path/of/share        client_list(選項)

使用者清單可以是單個使用者,也可以是一個網段的使用者,或者是所有使用者。

常見的選項如:rw,async,root_squash,no_root_squash,all_squash含義如下

rw,允許挂載的檔案及可讀可寫,但最終的權限是與檔案本身權限的交集。

async,允許異步寫入

root_squash,當以root使用者的登入時将其切換至nobody使用者的權限。

no_root_squash,直接以root使用者登入對方主機。

all_squash,任何使用者登入上之後都切換到nobody使用者。

當配置好上述檔案後重新開機nfs服務,或者執行指令exortfs -arv讓伺服器重新讀取共享的目錄。

<b>用戶端配置</b>

檢視共享的檔案夾:showmount -e SERVER-IP

如果看到伺服器共享的檔案夾,使用指令 mount -t nfs SERVER:/share/dir /local/dir将其挂載。然後切換至目錄檢視,是否挂載成功。

當你切換至挂載的目錄時并建立目錄時,檔案的屬主,屬組又是誰呢?這就是nfs服務的一個缺陷:nfs服務是以UID号來區分使用者的身份的,隻要客戶機上目前使用者與伺服器上的的一個使用者UID相同時,就以服務區上的那個使用者的身份運作。這樣就存在一種情況:本地的root使用者擁有了服務上root使用者的權限,是以在/etc/exports中最好加上root_squash,以保證其檔案的安全性。

nfs的缺點:

1.          産生的端口是随即的

2.          基于IP位址的驗證

3.          完全的相信用戶端

結局端口的問題可以通過更改配置檔案的方法:

修改/etc/sysconfig/nfs

LOCKD_TCPPORT=””

LOCKD_UDPPORT=””

MOUNTD_PORT=””

STATD_PORT=””

RQUOTAD_PORT=””

STATD_QUTGOING_PORT=””

通過修改以上的幾行内容來規定端口,在選取端口時盡量使用不常用的端口避免沖突。

解決對身份的驗證,可以通過NIS或KERBOROS這将在後面的文章中介紹

上一篇: 資料加密
下一篇: samba

繼續閱讀