安裝NFS包
yum install?nfs-utils.x86_64
?
啟動NFS服務需要首先啟動rpcbind服務,這個rpcbind包已經在上面安裝好了
先配置 /etc/exports 文件
vi /etc/exports
?
/etc/exports文件內容格式:
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]?
例子:
/home/share 192.168.0.0/16(rw)
第一個是要共享的目錄,注意設置權限
第二段是可以使用此共享目錄的IP地址,可以是域名,可以是網段 192.168.0.0/24
?
第三段是讀寫權限
包含以下:
- 設置輸出目錄只讀:ro
- 設置輸出目錄讀寫:rw
?
第四段 用戶映射選項
- all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);
- no_all_squash:與all_squash取反(默認設置);
- root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認設置);
- no_root_squash:與rootsquash取反;
- anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,并指定該用戶為本地用戶(UID=xxx);
- anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,并指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);
第五段 其它選項
- secure:限制客戶端只能從小于1024的tcp/ip端口連接nfs服務器(默認設置);
- insecure:允許客戶端從大于1024的tcp/ip端口連接服務器;
- sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性;
- async:將數據先保存在內存緩沖區中,必要時才寫入磁盤;
- wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);
- no_wdelay:若有寫操作則立即執行,應與sync配合使用;
- subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);
- no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;
?
?
?
使用mount命令加載NFS目錄,格式如下
mount 192.168.x.x:/home/share /home/destionation
卸載:
umount?/home/destionation
?
可以使用showmount -e 192.168.x.x 來查看服務器共享了哪些目錄
這需要客戶端安裝nfs-utils
?
?
?
systemctl start rpcbind.service
systemctl start nfs.service
exports
?
?
相關命令
1、exportfs
如果我們在啟動了NFS之后又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs 命令來使改動立刻生效,該命令格式如下:
# exportfs [-aruv]
-a?全部掛載或卸載 /etc/exports中的內容?
-r?重新讀取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u?卸載單一目錄(和-a一起使用為卸載所有/etc/exports文件中的目錄)
-v 在export的時候,將詳細的信息輸出到屏幕上。
具體例子:?
# exportfs -au 卸載所有共享目錄
# exportfs -rv 重新共享所有目錄并輸出詳細信息
2、nfsstat
查看NFS的運行狀態,對于調整NFS的運行有很大幫助。
3、rpcinfo
查看rpc執行信息,可以用于檢測rpc運行情況的工具,利用rpcinfo -p 可以查看出RPC開啟的端口所提供的程序有哪些。
4、showmount
-a 顯示已經于客戶端連接上的目錄信息
-e IP或者hostname 顯示此IP地址分享出來的目錄
5、netstat
可以查看出nfs服務開啟的端口,其中nfs 開啟的是2049,portmap 開啟的是111,其余則是rpc開啟的。
最后注意兩點,雖然通過權限設置可以讓普通用戶訪問,但是掛載的時候默認情況下只有root可以去掛載,普通用戶可以執行sudo。
NFS server 關機的時候一點要確保NFS服務關閉,沒有客戶端處于連接狀態!通過showmount -a 可以查看,如果有的話用kill killall pkill 來結束,(-9 強制結束)