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