Network File System СерверУстанавливаем пакет NFS. И Сервер и Клиент устанавливается одним пакетом nfs-utils.
- Код: выделить все
dnf install 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)
И перезапускаем сервер
- Код: выделить все
systemctl restart nfs-server
Смотрим какие шары экспортировались
- Код: выделить все
exportfs -av
Правим /etc/idmapd.conf. Это критично для NFSv4, чтобы правильно отображать имена пользователей и групп. Отредактируем тот же файл и на клиенте:
- Код: выделить все
[General]
Domain = free-adm.ru
после правки /etc/idmapd.conf
- Код: выделить все
systemctl restart nfs-idmapd
Настраиваем 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 не найден, то устанавливаем пакет
- Код: выделить все
dnf install policycoreutils-python-utils
Включаем сервис NFS
- Код: выделить все
systemctl enable --now nfs-server
Важно для NFSv4: включаем также сервисы для уведомления о монтировании и RPC-связки
systemctl enable --now rpcbind.service nfs-mountd.service
Настраиваем FirewallD
- Код: выделить все
firewall-cmd --permanent --add-service=nfs && firewall-cmd --reload
Разрешаем NFS (сервис) для внутренней зоны (обычно это зона для локальной сети)
- Код: выделить все
firewall-cmd --permanent --add-service=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, что и для Сервера
- Код: выделить все
dnf install nfs-utils
Правим /etc/idmapd.conf. Проверь, что на сервере в /etc/idmapd.conf прописан точно такой же Domain
- Код: выделить все
[General]
Domain = free-adm.ru
Правим /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
- Код: выделить все
systemctl daemon-reload
проверяем монтирование проходит без ошибок
- Код: выделить все
mount -a
убеждаемся, что всё примонтировалось
- Код: выделить все
df -h | grep nfs