NFS
Server
Ubuntu
1. 安装
apt update && apt install nfs-kernel-server
备注
安装失败,提示 1.2.6 版本
rpcbind缺少自动创建_rpc用户的脚本
- 手动创建
_rpc用户
sudo useradd -r -M -d /run/rpcbind _rpc
2. 指定版本
/etc/nfs.conf
[nfsd]
vers2=n
vers3=n
vers4=y # 总开关
vers4.0=n
vers4.1=n
vers4.2=y
tcp=y
udp=n
threads=16
3. 创建共享目录
groupadd -g 1000 hsieh
useradd -u 1000 -g hsieh -M -s /usr/sbin/nologin hsieh
mkdir -p /srv/nfs/shared
chown hsieh:hsieh /srv/nfs/shared
chmod 2770 /srv/nfs/shared
4. 配置导出
/etc/exports
/srv/nfs/shared <客户端网段>(rw,sync,no_subtree_check,root_squash)
/srv/nfs/shared 10.0.1.0/24(rw,sync,no_subtree_check,root_squash)
/srv/nfs/shared app01.example.internal(rw,sync,no_subtree_check,root_squash)
/srv/nfs/shared web01.example.internal(rw,sync,no_subtree_check,root_squash)
5. 启动服务及验证
systemctl enable --now nfs-server
# 重新同步所有 /etc/exports 和 /etc/exports.d/ 内容到 /var/lib/nfs/etab
exportfs -ra
# 取消所有 exports
# exportfs -ua
# 显示导出列表
exportfs -v
Rocky
1. 安装
dnf install -y nfs-utils
2. 指定版本
/etc/nfs.conf
[nfsd]
vers4.2=y
tcp=y
udp=n
3. 创建共享目录
groupadd -g 1000 hsieh
useradd -u 1000 -g hsieh -M -s /usr/sbin/nologin hsieh
sudo mkdir -p /srv/nfs/shared
sudo chown hsieh:hsieh /srv/nfs/shared
sudo chmod 2770 /srv/nfs/shared
4. 配置导出
/etc/exports
/srv/nfs/shared 10.0.1.0/24(rw,sync,no_subtree_check,root_squash)
5. 启动服务及验证
sudo systemctl enable --now nfs-server
sudo exportfs -ra
sudo exportfs -v
6. 防火墙放行
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --reload
Client
Ubuntu
1. 安装
sudo apt update
sudo apt install -y nfs-common
2. 临时挂载
sudo mkdir -p /mnt/shared
sudo mount -t nfs -o vers=4.2,rw,hard,timeo=600,_netdev nfs01:/srv/nfs/shared /mnt/shared
3. 验证
findmnt /mnt/shared
4. 持久化挂载
/etc/fstab
nfs01:/srv/nfs/shared /mnt/shared nfs4 vers=4.2,rw,hard,timeo=600,_netdev 0 0
生效:
systemctl daemon-reload
mount -a
5. 读写验证
groupadd -g 1000 hsieh
useradd -u 1000 -g hsieh -M -s /usr/sbin/nologin hsieh
sudo -u hsieh sh -c "echo 'OK' > /mnt/shared/hello.txt"
注意
服务端根据 uid 和 gid 判定权限,跟用户名和组名无关。
Rocky
1. 安装
dnf install nfs-utils