Сервер
Устанавливаем пакет NFS. И Сервер и Клиент устанавливается одним пакетом nfs-utils.
Создаем папки (/srv/nfs4, /srv/nfs4/data, /srv/nfs4/backup) и правим /etc/exports.
Код: Выделить всё
mkdir -p /srv/nfs4/{backup,data}
??? chown -R nobody:nogroup /srv/nfs4/data
??? chown -R nobody:nogroup /srv/nfs4/backup
chmod -R 777 /srv/nfs4/data
chmod -R 777 /srv/nfs4/backup
Откроем файл /etc/exports для редактирования и добавим следующие строки:
Код: Выделить всё
# Корневая директория для NFSv4, fsid=0 помечает её как корень.
/srv/nfs4 192.168.1.0/24(rw,sync,fsid=0,no_subtree_check,crossmnt)
#Наши реальные шары. Они "видны" как /data и /backup относительно корня.
/srv/nfs4/data 192.168.1.0/24(rw,sync,no_subtree_check,no_hide)
/srv/nfs4/backup 192.168.1.0/24(rw,sync,no_subtree_check,no_hide)
И перезапускаем сервер
Смотрим какие шары экспортировались
Правим /etc/idmapd.conf. Это критично для NFSv4, чтобы правильно отображать имена пользователей и групп. Отредактируем тот же файл и на клиенте:
после правки /etc/idmapd.conf
Настраиваем SELinux (если путь нестандартный). Если NFS не видит файлы, нужно навесить правильный контекст:
Код: Выделить всё
semanage fcontext -a -t nfs_t "/srv/nfs4/data(/.*)?"
semanage fcontext -a -t nfs_t "/srv/nfs4/backup(/.*)?"
restorecon -Rv /srv/nfs4/data
restorecon -Rv /srv/nfs4/backup
Если semanage не найден, то устанавливаем пакет
Включаем сервис NFS
Важно для NFSv4: включаем также сервисы для уведомления о монтировании и RPC-связки
systemctl enable --now rpcbind.service nfs-mountd.service
Настраиваем FirewallD
Код: Выделить всё
firewall-cmd --permanent --add-service=nfs && firewall-cmd --reload
Разрешаем NFS (сервис) для внутренней зоны (обычно это зона для локальной сети)
Или если нужно совсем точно ограничить для сети (замени сеть на свою):
Код: Выделить всё
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="nfs" accept'
firewall-cmd --reload
Клиент
Устанавливаем тот же самый пакет NFS, что и для Сервера
Правим /etc/idmapd.conf. Проверь, что на сервере в /etc/idmapd.conf прописан точно такой же Domain
Правим /etc/fstab и монтируешь (mount -a).
Код: Выделить всё
<IP-сервера>:/data /mnt/nfs_data nfs4 rw,hard,intr,noatime,vers=4.2,timeo=600,rsize=1048576,wsize=1048576 0 0
<IP-сервера>:/backup /mnt/nfs_backup nfs4 rw,hard,intr,noatime,vers=4.2,timeo=600,rsize=1048576,wsize=1048576 0 0
После изменения fstab нужно обновить конфигурацию systemd
проверяем монтирование проходит без ошибок
убеждаемся, что всё примонтировалось