Установка NFS-сервера — это только первый шаг. Его грамотная настройка определяет безопасность, стабильность и производительность общего доступа к файлам. Эта статья посвящена ключевому этапу — конфигурации сервера. Мы детально разберем работу с файлом экспорта, права доступа, интеграцию с брандмауэром и управление службами, чтобы ваш сетевой ресурс работал надежно.
Шаг 1: Базовая настройка и файл /etc/exports
Сердце NFS-сервера — файл /etc/exports. В нем указывается, какие каталоги экспортируются и на каких условиях.
Формат записи:
Практические примеры настройки:
Чтение и запись для всей подсети:
Только чтение для конкретного клиента:
Экспорт для нескольких клиентов с разными правами:
Ключевые параметры доступа:
-
rw/ro: Чтение и запись / Только чтение. -
sync/async: Гарантирует запись на диск перед подтверждением (sync) или кэширует (async). Для надежности используйтеsync. -
no_subtree_check: Ускоряет работу, отключая проверку поддеревьев. Рекомендуется. -
no_root_squash: Отключает «схлопывание» прав пользователя root с клиента. Используйте с большой осторожностью, только в доверенных сетях. По умолчанию включенroot_squash. -

Примеры конфигурации файла /etc/exports с разными правами доступа для подсетей и отдельных хостов
Шаг 2: Применение настроек и управление службами
После редактирования файла /etc/exports необходимо применить изменения и перезапустить службы.
Проверить синтаксис файла:
Перезапустить службу NFS:
Добавить службу в автозагрузку:

Шаг 3: Настройка прав доступа к файлам и каталогам
Параметры в /etc/exports регулируют сетевой доступ. Локальные права файловой системы также критически важны.
Простейший вариант (для тестов):
Безопасный вариант: Создайте специальную группу для пользователей NFS, назначьте её каталогу и дайте права.
Шаг 4: Настройка брандмауэра для NFS
NFS использует несколько служб и портов. Чтобы клиенты могли подключиться, настройте брандмауэр.
Для firewalld (Fedora, RHEL, CentOS):
Для ufw (Ubuntu, Debian):

Шаг 5: Проверка работоспособности сервера
Убедитесь, что сервер корректно экспортирует ресурсы:
Эта команда покажет все активные экспорты с их параметрами.
Краткое обновление системы в разных дистрибутивах
Перед настройкой и периодически после неё обновляйте систему для безопасности.
-
Ubuntu/Debian:
sudo apt update && sudo apt upgrade -
Fedora/RHEL:
sudo dnf update -
Arch Linux:
sudo pacman -Syu -
openSUSE:
sudo zypper update
FAQ: Решение проблем с настройкой NFS-сервера
1. Клиент получает ошибку «Permission denied» даже при правильных настройках.
Основная причина — несовпадение UID/GID пользователей на сервере и клиенте. Пользователь с UID=1000 на клиенте будет «отображаться» в UID=1000 на сервере. Решение: синхронизировать пользователей (NIS, LDAP) или использовать одинаковые UID вручную.
2. Запись в каталог работает, но владельцем файлов становится «nobody».
Это действие параметра root_squash (включен по умолчанию). Если нужно сохранять права, используйте no_root_squash или настройте all_squash с параметрами anonuid и anongid, указав UID/GID нужного пользователя.
3. Как безопасно добавить новый каталог для экспорта?
-
Создайте каталог, настройте локальные права (
chown,chmod). -
Добавьте запись в конец файла
/etc/exports. -
Примените изменения:
sudo exportfs -ra. Полный перезапуск службы обычно не требуется.
4. NFS подключение работает, но очень медленно.
Попробуйте:
-
Добавить параметр
asyncв/etc/exports(рискуете потерей данных при сбое питания). -
Убедиться, что в сети нет потерь пакетов (
ping -f <клиент>). -
Использовать более производительную сеть (Gigabit Ethernet вместо Wi-Fi).
5. Клиент «зависает» при потере связи с сервером.
Это стандартное поведение при параметре hard (жесткое монтирование, используется по умолчанию). Клиент будет бесконечно ждать ответа сервера. Для чувствительных к таймаутам задач используйте параметр soft на стороне клиента при монтировании (mount -o soft ...).
6. Как посмотреть, кто подключен к моему NFS-серверу?
Используйте утилиту showmount:
Если IP не указан, команда покажет подключения к локальному серверу.
Заключение
Успешная настройка NFS-сервера строится на трех китах: точная конфигурация файла /etc/exports, корректные права файловой системы и правильная настройка брандмауэра. Понимание таких параметров, как sync, root_squash и no_subtree_check, позволяет найти баланс между производительностью, удобством и безопасностью. Регулярная проверка логов (journalctl -u nfs-server) и подключений (showmount) поможет поддерживать стабильную работу сетевого хранилища.
