大部分內容轉自文章:http://blog.csdn.net/yangzhu1982/article/details/6265175
這裏對NFS服務器就不多加介紹,想要配置該服務器的朋友定然會知道這是用來做什麼的,所以我們直接以下的介紹。
1、安裝Ubuntu nfs
Ubuntu上默認是沒有安裝Ubuntu nfs服務器的,因此我們首先安裝Ubuntu nfs服務器端:
$sudo apt-get install nfs-kernel-server
在一些文檔中,提出還需要使用apt-get來手動安裝nfs的客戶端nfs-common,以及端口映射器portmap,但其實這是沒有必要的,因爲在安裝nfs-kernel-server時,apt會自動爲我們把它們安裝好。
2、配置/etc/exports(這是NFS服務器最主用的配置文件)
Ubuntu nfs 將允許掛載的目錄及權限在文件 /etc/exports 中進行了定義。
例如,我們要將根目錄下的 home 目錄共享出來,那麼我們需要在 /etc/exports 文件末尾添加如下一行:
/home 192.168.1.0/24(rw,sync,no_root_squash)
其中:/home 是要共享的目錄,192.168.1.0/24 代表允許訪問的網段,rw 是可讀寫權限, sync 是資料同步寫入內存和硬盤,no_root_squash 是Ubuntu nfs 客戶端分享目錄使用者的權限,如果客戶端使用的是root 用戶,那麼對於該共享目錄而言,該客戶端就具有root 權限。
其它Ubuntu nfs常用的參數有:
ro 只讀訪問
rw 讀寫訪問sync 所有數據在請求時寫入共享
async nfs在寫入數據前可以響應請求
secure nfs通過1024以下的安全TCP/IP端口發送
insecure nfs通過1024以上的端口發送
wdelay 如果多個用戶要寫入nfs目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置。
hide 在nfs共享目錄中不共享其子目錄
no_hide 共享nfs目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的GID
3、Ubuntu nfs重啓服務
RPC主程序:
$:sudo /etc/init.d/portmap restart
NFS主程序:
$:sudo /etc/init.d/nfs-kernel-server restart
通過查看網絡端口狀態可以判斷服務器是否成功開啓:
$:sudo netstat -tlunp
若發現有針對111端口及2049端口的監聽,則說明服務器開啓成功了。
查看RPC相關信息的命令如下:
$:sudo rpcinfo -p localhost
或者查看文件 /etc/rpc
4、測試Ubuntu nfs
此時可以運行以下命令來顯示一下共享出來的目錄:
$showmount -e localhost
或者可以使用以下命令把它掛載在本地磁盤上,例如將/rootfs掛載到/mnt下:
$ sudo mount -t nfs 192.168.1.100:/home /mnt
可以運行df命令查看是否掛載成功。查看後可以使用以下命令卸載:
$ sudo umount /mnt