Linux NFS的配置內容總體來說並不是很難在眾多的系統設置中這個配置是非常有規律的那麼我們是知道的對於NFS(Network File System 網絡文件系統)可以通過網絡將分享不同主機(不同的OS)的目錄——可以通過NFS掛載遠程主機的目錄 訪問該目錄就像訪問本地目錄一樣!一般而言 使用nfs能夠方便地使各unixlike系統之間實現共享 但如果需要在unixlike和windows系統之間共享 就得使用samba了!Linux NFS運行在SUN的RPC(Remote Procedure Call 遠程過程調用)基礎上 RPC定義了一種與系統無關的方法來實現進程間通信 由此NFS Server也可以看作是RPC server
正因為NFS是一個RPC服務程序 所以在使用它之前 先要映射好端口——通過portmap設定 比如: 某個NFS client發起NFS服務請求時 它需要先得到一個端口(port) 所以它先通過portmap得到port number (不僅NFS 所有的RPC服務程序啟動之前 都需要設定好portmap)
與Linux NFS相關的幾個文件 命令
/etc/exports
對NFS卷的訪問是由exports來批准 它枚舉了若干有權訪問NFS服務器上文件系統的主機名
/sbin/exportfs
維護NFS的資源共享 可以通過它重新設定 /etc/exports 的共享目錄 卸載NFS Server共享的目錄或者重新共享等
/usr/sbin/showmount
用在NFS Server 端而 showmount 則主要用在 Client 端 showmount 可以用?聿榭?NFS共享的目錄資源
/var/lib/nfs/xtab
NFS的記錄文檔: 通過它可以查看有哪些Client 連接到NFS主機的記錄
下面這幾個並不直接負責NFS 實際上它們負責所有的RPC
/etc/default/portmap
實際上 portmap負責映射所有的RPC服務端口 它的內容非常非常之簡單(後面詳述)
/etc/hostsdeny
設定拒絕portmap服務的主機
/etc/hostsallow
設定允許portmap服務的主機
安裝Linux NFS
Debian/Ubuntu上默認是沒有安裝NFS服務器的首先要安裝NFS服務程序:
$ sudo aptget install nfskernelserver
(安裝nfskernelserver時apt會自動安裝nfscommon和portmap)
這樣宿主機就相當於NFS Server
同樣地目標系統作為NFS的客戶端需要安裝NFS客戶端程序如果是Debian/Ubuntu系統則需要安裝nfscommon
$ sudo aptget install nfscommmon
nfscommon和nfskernelserver都依賴於portmap!
配置Linux NFS
配置portmap
方法: 編輯/etc/default/portmap 將 i 去掉
方法: $ sudo dpkgreconfigure portmap 對Should portmap be bound to the loopback address? 選N
配置/etc/hostsdeny
(禁止任何host(主機)能和你的NFS服務器進行NFS連接)加入:
###NFSDAEMONS portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL
配置/etc/hostsallow
允許那些你想要的主機和你的NFS服務器建立連接下列步驟將允許任何IP地址以開頭的主機(連 接到NFS服務器上)也可以指定特定的IP地址參看man頁 hosts_access() hosts_options()加入:
###NFSDAEMONS portmap: lockd: rquotad: mountd: statd:
/etc/hostsdeny 和 /etc/hostsallow 設置對portmap的訪問 采用這兩個配置文件有點類似mask的意思 現在/etc/hostsdeny中禁止所有用戶對portmap的訪問 再在/etc/hostsallow 中允許某些用戶對portmap的訪問
運行 $ sudo /etc/initd/portmap restart 重啟portmap daemon
配置/etc/exports
Linux NFS掛載目錄及權限由/etc/exports文件定義
比如我要將將我的home目錄中的/home/zp/share目錄讓*的IP共享 則在該文件末尾添加下列語句:
/home/zp/share *(rwsyncno_root_squash)
或者:/home/zp/share /(rwsyncno_root_squash)
* 網段內的NFS客戶端能夠共享NFS服務器/home/zp/share目錄內容且有讀寫權限 並且該用戶進入/home/zp/share目錄後的身份為root最好加上sync 否則 $ sudo exportfs r 時會給出警告 sync是NFS的默認選項
(運行 $ showmount e 查看NFS server的export list
若更改了/etc/exports 運行 $ sudo exportfs r 更新
運行 $ sudo /etc/initd/nfskernelserver restart 重啟nfs服務)
/etc/exports實際上就是nfs服務器的核心配置文件了
測試Linux NFS
可以嘗試一下掛載本地磁盤(假設本地主機IP地址為:將/home/zp/share掛載到/mnt)
$ sudo mount :/home/zp/share /mnt
運行 $ df 看看結果
$ sudo umount /mnt
注意被拷貝文件的讀寫權限!
另外 可以使用一定的參數:
使用加參數的辦法:mount o nolockrsize=wsize=timeo= :/tmp/ /tmp/
From:http://tw.wingwit.com/Article/os/fwq/201405/30693.html