nfs 服務器的搭建
1.配置yum源
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repo.d/*.repo /etc/yum.repos.d/bak/
curl -o /etc/yum.repos.d/centos.repo http://10.26.210.101/centos/centos.repo
# 外網
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2.關閉防火墻和selinux
systemctl stop firewalld
systemctl disable firealldsed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
getenforce
3.安裝nfs 服務
yum -y install nfs-utils
4.配置
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 12M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 2.8G 48G 6% /
/dev/sda1 1014M 238M 777M 24% /boot
/dev/mapper/centos-home 42G 33M 42G 1% /home
tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/mapper/vg01-lvbkdata 600G 33M 600G 1% /bkdata
tmpfs 3.2G 0 3.2G 0% /run/user/1000# 編輯配置文件
# vi /etc/exports
/bkdata 10.26.43.200(rw,sync,no_all_squash,root_squash,no_subtree_check)# 生效exportfs -arvexporting 10.26.43.200:/bkdata#重啟服務 systemctl restart nfs
(rw,sync,no_all_squash,root_squash,no_subtree_check)里面的參數說明
1?? rw
Read-Write
客戶端可以對共享目錄進行讀寫操作。
對比項:
ro
(只讀)
2?? sync
數據同步寫入磁盤。
每次請求的數據都會先寫入磁盤再響應客戶端,保證數據一致性與安全性。
對比項:
async
(異步寫入,性能高但風險大)
3?? no_all_squash
不壓縮所有用戶權限。
客戶端上的任何用戶(包括 root 和普通用戶)都按其原始身份映射到服務器上。
對比項:
all_squash
:將所有客戶端用戶映射為匿名用戶(通常是nfsnobody
)anonuid=xxx
和anongid=xxx
:可指定匿名用戶的 UID/GID
4?? root_squash
壓縮遠程 root 用戶權限。
當客戶端以 root 身份訪問時,會被映射成一個匿名用戶(通常是nfsnobody
),防止客戶端 root 在服務器上擁有過高權限。
?? 安全建議:除非特別需要,否則應保留此選項。
對比項:
no_root_squash
:允許客戶端 root 擁有服務器上的 root 權限(不推薦)
5?? no_subtree_check
禁用子樹檢查。
NFS 默認會檢查文件是否屬于導出的目錄樹。禁用后提升性能,但在某些情況下可能降低安全性。
對比項:
subtree_check
(默認啟用):更嚴格地驗證訪問的文件是否屬于導出目錄。
🧾 總結表格
參數 | 含義 | 推薦 |
---|---|---|
rw | 客戶端可讀寫 | ? |
sync | 數據同步寫入磁盤 | ? |
no_all_squash | 保留客戶端用戶身份 | 根據需求選擇 |
root_squash | 客戶端 root 映射為匿名用戶 | ?(更安全) |
no_subtree_check | 禁用子樹檢查(提升性能) | ?(除非你需要嚴格的路徑控制) |
4.掛載
# 掛載命令如下
# mount -t nfs <nfs-server-ip>:/exports-dir /local-dirmount -t nfs 10.26.43.200:/bkdata /soft/nbubak