У меня уже есть небольшая инструкция по установке NFS-клиент-серверного взаимодействия в CentOS, и теперь нужно дополнить её вариантом для Ubuntu Linux. В этой статье мы подробно разберём настройку NFS-клиента на Ubuntu — от установки необходимых пакетов до автоматического монтирования удалённых директорий при загрузке системы.
Установка необходимых пакетов
Прежде всего, откройте терминал и выполните обновление списка пакетов, а затем установите клиентскую часть NFS. Для этого введите следующие команды:
# apt update
# apt install nfs-common
Что такое nfs-common?
Это пакет, который содержит все необходимые клиентские утилиты для работы с NFS, включая программу mount.nfs, которая отвечает за монтирование удалённых файловых систем. Без этого пакета вы не сможете подключиться к NFS-серверу.
Примечание: Если вы используете Ubuntu Server или десктопную версию, пакет
nfs-commonобычно не установлен по умолчанию, поэтому его нужно добавить вручную.
2. Проверка доступности NFS-сервера
После установки клиента убедитесь, что NFS-сервер доступен в сети и экспортирует нужные вам директории. Для этого используйте команду showmount:
# showmount -e <IP_адрес_или_имя_сервера>
Пример:
# showmount -e 192.168.1.100
В ответ вы должны увидеть список экспортированных (доступных для монтирования) директорий, например:
/shared 192.168.1.0/24
/backups 192.168.1.0/24
Если команда не выводит ничего или выдаёт ошибку, проверьте, работает ли NFS-сервер и не блокирует ли его фаервол.
Совет: Для диагностики можно также использовать
pingиtelnetк порту 2049 (стандартный порт NFS).
3. Создание точки монтирования
Теперь создайте локальный каталог, в который будет монтироваться удалённая NFS-директория. Обычно такие точки размещают в /mnt или /media, но вы можете выбрать любое удобное место.
# sudo mkdir /mnt/nfs
Пример с другим именем:
# mkdir /mnt/shared
Зачем создавать отдельную точку монтирования?
Это позволяет организовать файловую систему: вы точно знаете, где находятся удалённые данные, и можете легко отмонтировать их при необходимости.
4. Ручное монтирование NFS-директории
Для разового подключения используйте команду mount с указанием типа файловой системы nfs:
# mount -t nfs <сервер>:<экспортированная_директория> <точка_монтирования>
Пример:
# mount -t nfs 192.168.1.100:/shared /mnt/nfs
После этого вы сможете обращаться к файлам на сервере через каталог /mnt/nfs.
Основные опции монтирования
При монтировании можно задать дополнительные параметры через ключ -o.
rw— монтирование с правами на чтение и запись.ro— монтирование только для чтения.soft— мягкий режим: при недоступности сервера операция завершится с ошибкой, а не будет бесконечно ждать.hard— жёсткий режим (по умолчанию): при недоступности сервера операции будут повторяться бесконечно.intr— позволяет прерывать операции NFS (например, с помощьюCtrl+C) в случае зависания. Устарела в новых ядрах.nointr— запрещает прерывание операций NFS.timeo=N— устанавливает время ожидания (в десятых долях секунды) до повторной попытки отправки запроса при отсутствии ответа от сервера.retrans=N— задаёт количество повторных попыток отправки запроса при отсутствии ответа от сервера.actimeo=N— устанавливает время кэширования атрибутов файлов (в секундах). Уменьшение значения снижает нагрузку на сеть, но увеличивает число запросов к серверу.mountport=N— указывает порт для монтирования (используется для старых версий NFS).port=N— задаёт порт для подключения к NFS-серверу.
Безопасность и аутентификация
sec=mode— задаёт режим аутентификации:sec=sys— стандартная аутентификация (по умолчанию);sec=krb5— аутентификация через Kerberos;sec=krb5i— аутентификация Kerberos с проверкой целостности данных;sec=krb5p— аутентификация Kerberos с шифрованием данных.
rwuser=userlist— список пользователей, которым разрешено чтение и запись на клиенте.rouser=userlist— список пользователей, которым разрешено только чтение на клиенте.
Управление кэшированием и производительностью
noac— отключает кэширование атрибутов файлов. Повышает согласованность данных, но снижает производительность.directio— включает прямой ввод‑вывод (обходит системный кэш), что может быть полезно для определённых рабочих нагрузок.rsize=N— задаёт максимальный размер блока чтения (в байтах).wsize=N— задаёт максимальный размер блока записи (в байтах).
Дополнительные опции
bg— при использовании сhard: если первый запрос к серверу не удался, последующие попытки монтирования выполняются в фоновом режиме, позволяя продолжить загрузку системы.fg— при использовании сhard: если первый запрос к серверу не удался, все последующие попытки монтирования выполняются в переднем плане (система «зависнет» до восстановления соединения).nfsvers=N— задаёт версию протокола NFS (например,nfsvers=3илиnfsvers=4).vers=N— аналогичнаnfsvers=N, задаёт версию протокола NFS.tcp— использует протокол TCP для передачи данных (более надёжный, чем UDP).udp— использует протокол UDP для передачи данных (менее надёжный, но может быть быстрее в локальных сетях).nolock— отключает блокировку файлов (file locking). Может быть полезен, если блокировка не требуется или вызывает проблемы.noexec— запрещает выполнение файлов на смонтированном разделе.nodev— игнорирует специальные устройства (например,/dev) на смонтированном разделе.nosuid— игнорирует битыsetuidиsetgidна файлах в смонтированном разделе.
Пример с опциями:
# mount -t nfs -o nfsvers=4,soft,timeo=10,retry=0 192.168.1.100:/shared /mnt/nfs
Разница между soft и hard:
—soft— если сервер перестал отвечать, клиент через некоторое время выдаст ошибку и продолжит работу. Риск: возможна потеря данных при записи.
—hard— клиент будет ждать восстановления связи бесконечно. Процессы, обращающиеся к файлам, могут «зависнуть». Рекомендуется использовать с опциейintr, чтобы можно было прервать операцию.
5. Автоматическое монтирование при загрузке (fstab)
Чтобы NFS-директория монтировалась автоматически каждый раз при старте системы, добавьте соответствующую строку в файл /etc/fstab. Отредактируйте его с правами root:
# nano /etc/fstab
Добавьте строку следующего вида:
192.168.1.100:/shared /mnt/nfs nfs defaults,nofail,nfsvers=4,soft,timeo=10,retry=0 0 0
Пояснение полей:
- 192.168.1.100:/shared — адрес сервера и экспортированная директория.
- /mnt/nfs — локальная точка монтирования (должна существовать).
- nfs — тип файловой системы.
- defaults,nofail,nfsvers=4,soft,timeo=10,retry=0 — опции монтирования.
- defaults — стандартный набор (rw, suid, dev, exec, auto, nouser, async).
nofail— система продолжит загрузку, даже если NFS-сервер недоступен (иначе загрузка может зависнуть).- Остальные опции мы уже разобрали выше.
- 0 — поле
dump(0 — не создавать резервную копию утилитой dump). - 0 — поле
pass(0 — не проверять файловую систему при загрузке).
После сохранения файла проверьте корректность монтирования командой:
# mount -a
Если ошибок нет, удалённая директория будет смонтирована. Чтобы убедиться, выполните df -h — вы должны увидеть строку с NFS-ресурсом.
Важно: Если вы изменили точку монтирования в fstab, не забудьте создать соответствующий каталог (например,
/mnt/nfs), иначе монтирование не сработает.
Дополнительные советы и примеры
Монтирование нескольких директорий
Вы можете добавить несколько строк в /etc/fstab для разных серверов или разных экспортов:
192.168.1.100:/shared /mnt/shared nfs defaults,nofail 0 0
192.168.1.101:/backups /mnt/backups nfs defaults,nofail 0 0
Использование autofs (автоматическое монтирование по требованию)
Если вы не хотите, чтобы NFS-директории монтировались постоянно, можно настроить autofs. Это демон, который монтирует ресурс только при обращении к нему. Установка:
# apt install autofs
Настройка выходит за рамки данной статьи, но это удобный способ для экономии ресурсов.
Проверка версии NFS
Узнать, какая версия NFS используется при монтировании, можно командой:
mount | grep nfs
Вы увидите что-то вроде 192.168.1.100:/shared on /mnt/nfs type nfs4 (rw,...) — версия указана как nfs4.
Заключение
Мы подробно рассмотрели настройку NFS-клиента в Ubuntu Linux: от установки пакетов до автоматического монтирования через fstab. Теперь вы можете легко подключаться к удалённым файловым хранилищам и работать с ними как с локальными. Не забывайте про опции безопасности (например, nfsvers=4 и soft) и всегда проверяйте доступность сервера перед монтированием.
Если у вас остались вопросы или вы столкнулись с ошибками, пишите в комментариях — постараюсь помочь!





