Полное руководство по установке и настройке NFS-сервера в Linux

NFS (Network File System) — это сетевой протокол, позволяющий монтировать удалённые файловые системы по сети. Установка NFS-сервера превращает ваш компьютер с Linux в мощный сетевой накопитель, к которому могут подключаться другие машины в локальной сети. Это идеальное решение для общего доступа к файлам в домашней сети, офисной среде или между виртуальными машинами.

Установка NFS-сервера в разных дистрибутивах Linux

Перед началом убедитесь, что у вас есть статический IP-адрес в сети.

В дистрибутивах на основе Debian/Ubuntu (Ubuntu, Linux Mint, Debian):

sudo apt update

sudo apt install nfs-kernel-server

Терминал Ubuntu с командами установки NFS-сервера: sudo apt install nfs-kernel-server
Установка NFS-сервера в Ubuntu и дистрибутивах на основе Debian

В дистрибутивах на основе Fedora/RHEL (Fedora, CentOS, AlmaLinux, Rocky Linux):

sudo dnf install nfs-utils

В Arch Linux и производных (Manjaro, EndeavourOS):

sudo pacman -S nfs-utils

В openSUSE:

sudo zypper install nfs-kernel-server

Базовая настройка NFS-сервера

Шаг 1: Создание и настройка общего каталога
Создайте каталог для общего доступа и задайте ему соответствующие права:

sudo mkdir -p /srv/nfs/share

sudo chown nobody:nogroup /srv/nfs/share

sudo chmod 777 /srv/nfs/share

Шаг 2: Настройка экспорта (файл /etc/exports)
Главный файл конфигурации — /etc/exports. В нём указывается, какие каталоги и кому доступны. Откройте его в редакторе:

sudo nano /etc/exports

Добавьте строку с параметрами экспорта. Базовый синтаксис:

<каталог> <клиент>(<параметры>)

Примеры:

Для всей сети (небезопасно, только для тестов):

/srv/nfs/share *(rw,sync,no_subtree_check)

Для конкретной подсети с ограничением прав:

/srv/nfs/share 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

Для конкретного IP-адреса только для чтения:

/srv/nfs/share 192.168.1.100(ro,sync,no_subtree_check)

Ключевые параметры:

  • rw/ro: чтение-запись или только чтение.

  • sync/async: синхронная или асинхронная запись (sync надёжнее).

  • no_subtree_check: повышает производительность и надёжность.

  • no_root_squash: позволяет root-пользователю клиента иметь права root на сервере (используйте с осторожностью).

Файл /etc/exports в редакторе nano с примерами настроек для разных клиентов и подсетей
Настройка прав доступа к общим каталогам в файле /etc/exports

Шаг 3: Применение настроек и запуск службы
Примените настройки из /etc/exports и запустите (или перезапустите) службы:

# Для Debian/Ubuntu:

sudo exportfs -ra

sudo systemctl restart nfs-kernel-server

sudo systemctl enable nfs-kernel-server

# Для Fedora/RHEL/Arch:

sudo exportfs -ra

sudo systemctl restart nfs-server

sudo systemctl enable nfs-server

Команда systemctl status nfs-server, показывающая активную и работающую службу NFS
Проверка статуса и управления службой NFS с помощью systemctl

Шаг 4: Настройка брандмауэра (если включён)
Разрешите NFS в firewall:

Firewall-cmd (Fedora/RHEL):

sudo firewall-cmd —permanent —add-service=nfs

sudo firewall-cmd —permanent —add-service=rpc-bind

sudo firewall-cmd —permanent —add-service=mountd

sudo firewall-cmd —reload

UFW (Ubuntu):

sudo ufw allow from <client_subnet> to any port nfs

sudo ufw allow 111/udp

sudo ufw reload

Проверка работы NFS-сервера

Убедитесь, что сервер корректно экспортирует каталоги:

sudo exportfs -v

Команда покажет все активные экспорты с параметрами.

Обновление системы и NFS-сервера

Для поддержания безопасности регулярно обновляйте систему:

  • Ubuntu/Debian: sudo apt update && sudo apt upgrade

  • Fedora/RHEL: sudo dnf update

  • Arch: sudo pacman -Syu

  • openSUSE: sudo zypper update

Удаление NFS-сервера

Если сервер больше не нужен:

  • Ubuntu/Debian: sudo apt purge nfs-kernel-server

  • Fedora/RHEL: sudo dnf remove nfs-utils

  • Arch: sudo pacman -Rns nfs-utils

  • openSUSE: sudo zypper remove nfs-kernel-server

FAQ: Решение частых проблем с NFS-сервером

1. Клиенты не могут подключиться, ошибка «access denied»

  • Проверьте правильность настроек в /etc/exports.

  • Убедитесь, что IP-адрес клиента входит в разрешённый диапазон.

  • Проверьте настройки брандмауэра на сервере.

  • Убедитесь, что службы NFS работают: sudo systemctl status nfs-server.

2. Клиенты видят файлы, но не могут их изменять

  • Проверьте параметры rw в /etc/exports.

  • Убедитесь в правильности прав на файловой системе: sudo chmod -R 777 /srv/nfs/share (для тестов).

  • Проверьте параметры root_squash/no_root_squash.

3. Ошибка «Stale file handle» на клиенте

  • На сервере перезагрузите NFS: sudo systemctl restart nfs-server.

  • На клиенте размонтируйте и смонтируйте заново.

  • Убедитесь, что экспортируемый каталог не был переименован или удалён.

4. Как добавить новый каталог для экспорта?

  1. Создайте каталог и настройте права.

  2. Добавьте строку в /etc/exports.

  3. Выполните sudo exportfs -ra.

  4. Перезапустите службу NFS.

5. NFS медленно работает

  • Используйте параметр async вместо sync (риск потери данных при сбое).

  • Убедитесь в хорошем сетевом соединении.

  • Проверьте, не перегружен ли сервер.

6. Как настроить автоматический запуск NFS при загрузке?
Служба должна автоматически включаться после systemctl enable. Проверьте: sudo systemctl is-enabled nfs-server.

Заключение

Установка NFS-сервера в Linux — процесс, состоящий из трёх основных этапов: установка пакетов, настройка файла /etc/exports и управление службами. Ключ к успешной настройке — правильное задание параметров доступа и прав. После настройки сервер обеспечит надёжный и производительный общий доступ к файлам в вашей сети.