跳到主要内容

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