環境:centos7.1 html
server:192.168.0.63 node
client:192.168.0.64 (centos7.1 客戶端)linux
共享文件的目錄用戶爲:web(uid:1000,gid:1000)web
1、安裝vim
yum -y install nfs-utils rpcbindwindows
nfs 的配置文件 /etc/expotscentos
共享目錄賦予權限:chmod 755 /home/data安全
vim /etc/exports服務器
/home/data 192.168.0.0/24(rw,async,insecure,anonuid=1000,anongid=1000,no_root_squash)async
2、使配置生效
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)
3、啓動nfs
systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs-server
systemctl start nfs-server
確認NFS服務器啓動成功:
rpcinfo -p
查看具體目錄掛載權限
cat /var/lib/nfs/etab
4、客戶端掛載:
一、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
二、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
三、掛載到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