Centos7和Centos8的NFS配置幾乎是完全一樣的
服務端
Centos7默認安裝了rpcbind, nfs-utils, 其中rpcbind的服務默認是啟用的, nfs-utils默認是禁用的, 需要將后者啟用
# 檢查 rpcbind
systemctl status rpcbind
systemctl is-enabled rpcbind
# 檢查並啟用 nfs-server
systemctl status nfs-server
systemctl is-enabled nfs-server
systemctl enable nfs-server
systemctl is-enabled nfs-server
systemctl start nfs-server
# 前往編輯exports
vi /etc/exports
# 重啟兩個服務
systemctl restart rpcbind
systemctl restart nfs-server
其中/etc/exports的內容, 表示將/data/uploads這個目錄開放給192.168.12.*網段, 只讀, 異步, root用戶按匿名用戶對待
/data/uploads 192.168.12.* (ro,async,root_squash)
參數說明
- ro 只讀(read only)
- rw 讀寫(read write)
- sync 同時將數據寫入到內存與硬盤中,保證不丟失數據
- async 優先將數據保存到內存,然后再寫入硬盤,效率更高,但可能丟失數據
- root_squash 當NFS客戶端以root管理員訪問時,映射為NFS服務器匿名用戶
- no_root_squash 當NFS客戶端以root管理員訪問時,映射為NFS服務器的root管理員
配置防火牆
默認Centos7沒安裝firewalld, 如果安裝了並且是開機啟動的, 需要在防火牆上添加規則. nfs服務不僅需要nfs server 還需要rpc-bind服務和mountd服務, 因為nfs服務需要向客戶端廣播地址和端口信息, nfs客戶端需要使用mount對遠程nfs服務器目錄進行掛載.
# 查看服務狀態
systemctl status firewalld
# 查看防火牆配置
firewall-cmd --zone=public --list-all
# 列出可用的服務
firewall-cmd --get-services
# 添加 nfs, rpc-bind, mountd
firewall-cmd --permanent --zone=internal --add-service=nfs
firewall-cmd --permanent --zone=internal --add-service=rpc-bind
firewall-cmd --permanent --zone=internal --add-service=mountd
firewall-cmd --reload
客戶端
客戶端為Centos7時, 默認也安裝了nfs-utils, 可以直接通過showmount查看可用的nfs目錄
showmount -e 192.168.12.84
建目錄, 掛載
# 建目錄
cd /mnt
mkdir nfs_uploads
# 掛載
mount -t nfs 192.168.12.84:/data/uploads nfs_uploads
加入fstab, 以便開機自動掛咋
vi /etc/fstab
# 加入以下內容, 內容開始
192.168.12.84:/data/uploads /mnt/nfs_uploads nfs defaults 0 0
# 內容結束