NFS on CentOS7

1 環境說明

主機:Red Hat Enterprise Linux Server release 7.4 (Maipo)

2 安裝

yum -y install nfs-utils rpcbind

3 配置端口

nfs端口:2049
rpcbind端口:111

可配置將定義nfs隨機端口,以便配置防火牆

# vim /etc/sysconfig/nfs
MOUNTD_PORT=4001  
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004

4 防火牆

# iptables -I INPUT 5 -p tcp -m tcp --dport 111 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 111 -j ACCEPT
# iptables -I INPUT 5 -p tcp -m tcp --dport 2049 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 2049 -j ACCEPT
# iptables -I INPUT 5 -p tcp -m tcp --dport 4001:4004 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 4001:4004 -j ACCEPT
# iptables-save >/etc/sysconfig/iptables

5 配置NFS

# vim /etc/exports
/nfsdata01 *(rw,sync,no_subtree_check,all_squash)
/nfsdata02 192.168.0.0/24(rw,sync,no_subtree_check,all_squash)

6 查看nfs配置

# exportfs -v

6 啓動服務

# systemctl start rpcbind.service
# systemctl enable rpcbind.service
# systemctl start nfs.service
# systemctl enable nfs.service

7 NFS權限說明

普通用戶

當設置all_squash時:訪客時一律被映射爲匿名用戶(nfsnobody)
當設置no_all_squash時:訪客被映射爲服務器上相同uid的用戶,因此在客戶端應建立與服務端uid一致的用戶,否則也映射爲nfsnobody
root除外,因爲root_suqash爲默認選項,除非指定了no_root_squash

root用戶

當設置root_squash時:訪客以root用戶訪問NFS服務端時,被映射爲nfsnobody用戶
當設置no_root_squash時:訪客以root用戶訪問NFS服務端時,被映射爲root用戶。以其他用戶訪問時同樣映射爲對應uid的用戶,因爲no_all_squash是默認選項

選項說明

ro:共享目錄只讀
rw:共享目錄可讀可寫
all_squash:所有訪問用戶都映射爲匿名用戶或用戶組
no_all_squash(默認):訪問用戶先與本機用戶匹配,匹配失敗後再映射爲匿名用戶或用戶組
root_squash(默認):將來訪的root用戶映射爲匿名用戶或用戶組
no_root_squash:來訪的root用戶保持root帳號權限
anonuid=<UID>:指定匿名訪問用戶的本地用戶UID,默認爲nfsnobody(65534)
anongid=<GID>:指定匿名訪問用戶的本地用戶組GID,默認爲nfsnobody(65534)
secure(默認):限制客戶端只能從小於1024的tcp/ip端口連接服務器
insecure:允許客戶端從大於1024的tcp/ip端口連接服務器
sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性
async:將數據先保存在內存緩衝區中,必要時才寫入磁盤
wdelay(默認):檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率
no_wdelay:若有寫操作則立即執行,應與sync配合使用
subtree_check(默認) :若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限
no_subtree_check :即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率

exportfs參數說明

-a 全部掛載或卸載 /etc/exports中的內容
-r 重新讀取/etc/exports 中的信息 ,並同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸載單一目錄(和-a一起使用爲卸載所有/etc/exports文件中的目錄)
-v 輸出詳細的共享參數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章