環境:centos7.1
server:192.168.0.63
client:192.168.0.64 (centos7.1 用戶端)
共享檔案的目錄使用者為:web(uid:1000,gid:1000)
一、安裝
yum -y install nfs-utils rpcbind
nfs 的配置檔案 /etc/expots
共享目錄賦予權限:chmod 755 /home/data
vim /etc/exports
/home/data 192.168.0.0/24(rw,async,insecure,anonuid=1000,anongid=1000,no_root_squash)
二、使配置生效
exportfs -rv
#配置檔案說明:
-----------------------------
/opt/test 為共享目錄
192.168.1.0/24 可以為一個網段,一個IP,也可以是域名,域名支援通配符 如: *.com
rw:read-write,可讀寫;
ro:read-only,隻讀;
sync:檔案同時寫入硬碟和記憶體;
async:檔案暫存于記憶體,而不是直接寫入記憶體;
no_root_squash:NFS用戶端連接配接服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,也擁有root權限。顯然開啟這項是不安全的。
root_squash:NFS用戶端連接配接服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,擁有匿名使用者權限,通常他将使用nobody或nfsnobody身份;
all_squash:不論NFS用戶端連接配接服務端時使用什麼使用者,對服務端分享的目錄來說都是擁有匿名使用者權限;
anonuid:匿名使用者的UID值
anongid:匿名使用者的GID值。備注:其中anonuid=1000,anongid=1000,為此目錄使用者web的ID号,達到連接配接NFS使用者權限一緻。
defaults 使用預設的選項。預設選項為rw、suid、dev、exec、auto nouser與async。
atime 每次存取都更新inode的存取時間,預設設定,取消選項為noatime。
noatime 每次存取時不更新inode的存取時間。
dev 可讀檔案系統上的字元或塊裝置,取消選項為nodev。
nodev 不讀檔案系統上的字元或塊裝置。
exec 可執行二進制檔案,取消選項為noexec。
noexec 無法執行二進制檔案。
auto 必須在/etc/fstab檔案中指定此選項。執行-a參數時,會加載設定為auto的裝置,取消選取為noauto。
noauto 無法使用auto加載。
suid 啟動set-user-identifier設定使用者ID與set-group-identifer設定組ID設定位,取消選項為nosuid。
nosuid 關閉set-user-identifier設定使用者ID與set-group-identifer設定組ID設定位。
user 普通使用者可以執行加載操作。
nouser 普通使用者無法執行加載操作,預設設定。
remount 重新加載裝置。通常用于改變裝置的設定狀态。
rsize 讀取資料緩沖大小,預設設定1024。--影響性能
wsize 寫入資料緩沖大小,預設設定1024。
fg 以前台形式執行挂載操作,預設設定。在挂載失敗時會影響正常操作響應。
bg 以背景形式執行挂載操作。
hard 硬式挂載,預設設定。如果與伺服器通訊失敗,讓試圖通路它的操作被阻塞,直到伺服器恢複為止。
soft 軟式挂載。伺服器通訊失敗,讓試圖通路它的操作失敗,傳回一條出錯消息。這項功能對于避免程序挂在無關緊要的安裝操作上來說非常有用。
retrans=n 指定在以軟方式安裝的檔案系統上,在傳回一條出錯消息之前重複送出請求的次數。
nointr 不允許使用者中斷,預設設定。
intr 允許使用者中斷被阻塞的操作并且讓它們傳回一條出錯消息。
timeo=n 設定請求的逾時時間以十分之一秒為機關。
tcp 傳輸預設使用udp,可能出現不穩定,使用proto=tcp更改傳輸協定。用戶端參考mountproto=netid
(以上内容:參考:man nfs)
三、啟動nfs
systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs-server
systemctl start nfs-server
确認NFS伺服器啟動成功:
rpcinfo -p
檢視具體目錄挂載權限
cat /var/lib/nfs/etab
四、用戶端挂載:
1、linux用戶端挂載:
在從機上安裝NFS 用戶端
首先是安裝nfs,然後啟動rpcbind服務
systemctl enable rpcbind.service
systemctl start rpcbind.service
注意:用戶端不需要啟動nfs服務
檢查 NFS 伺服器端是否有目錄共享:
showmount -e nfs伺服器的IP
showmount -e 192.168.0.63
用戶端挂載#開機自動挂載
vim /etc/fstab
192.168.0.63:/home/data /home/data nfs4 rw,hard,intr,proto=tcp,port=2049,noauto 0 0
手工挂載:
mount -t nfs 192.168.0.63:/home/data /home/data
#檢視是否挂載成功。
df -h
NFS預設是用UDP協定,換成TCP協定達到穩定傳輸目的:
mount -t nfs 192.168.0.63:/home/data /home/data -o proto=tcp -o nolock
2、windows用戶端挂載:
1)、Win7自帶的NFS用戶端可以在“控制台”->“程式”->“WIndows 功能”找到->nfs-安裝。
2)、由于自帶的用戶端功能少,缺少使用者名映射,功能,是以必然會遇到權限的問題。是以需要自行配置權限問題
擷取nfs server 使用者web的gid和uid,并記錄uid和gid,目前為:1000
打開系統資料庫編輯器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default,添加兩個REG_DWORD值,填上uid和gid(10進制)完成後重新開機電腦
系統資料庫導出是如下格式 :
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default]
"AnonymousGid"=dword:000003e8
"AnonymousUid"=dword:000003e8
3、挂載到Z盤
mount -o anon mtype=soft lang=ansi \\192.168.0.63\home\data\ Z:\
事項:一定要用軟裝載模式(mtype=soft),防止資料總管停止響應,不能用utf-8
參考:http://nfs.sourceforge.net/nfs-howto/index.html
本文轉自 lcpljc 51CTO部落格,原文連結:http://blog.51cto.com/lcpljc/1948425,如需轉載請自行聯系原作者