操作環境:linuxmint做客戶端--centos7(虛擬機)做服務器
1.先安裝需要的包:
centos7中:yum install rpcbind && yum install nfs-utils #一般centos自帶了這兩個,rpcbind(portmap)支持安全NFS RPC服務的連接,nfs-utils包括基本的NFS命令與監控程序
linuxmint中:apt-get install nfs-common #這個包提供showmount等功能
2.NFS的常用目錄:
NFS服務的配置文件為 /etc/exports,這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然后在文件里面寫入配置內容。
/etc/exports文件內容格式:
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
例如:/home/root/video 192.168.1.123 *(ro)
/home/root/picture *(rw)
- 指定ip地址的主機:192.168.0.200
- 指定子網中的所有主機:192.168.0.0/24 192.168.0.0/255.255.255.0
- 指定域名的主機:david.bsmart.cn
- 指定域中的所有主機:*.bsmart.cn
- 所有主機:*
c. 選項(用逗號分隔):
選項用來設置輸出目錄的訪問權限、用戶映射等。
NFS主要有3類選項:
訪問權限選項
- 設置輸出目錄只讀: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服務器也不檢查其父目錄的權限,這樣可以提高效率;
相關指令:
服務器端:service rpcbind start && service nfs start #先啟動portmap再啟動nfs
rpcinfo -p #查詢rpc服務狀態
exportfs -a #全部掛載或卸載
exportfs -r #重新掛載
exportfs -u #卸載某一個目錄
exportfs -v #顯示共享的目錄
tips:當你修改完exports后,可以不需要重啟rpcbind和nfs服務,直接利用exportfs指令即可。
客戶端:showmount -e 服務器地址 #可以查看nfs服務器共享出的目錄
df -h #查看本機的掛載目錄
umount卸載
注意:在mac中連接linux nfs出的文件,配置文件exports中一定要加上insecure參數