Home » Как настроить монтирование NFS на Ubuntu 24.04
Как настроить монтирование NFS на Ubuntu 24.04

Как настроить монтирование NFS на Ubuntu 24.04

Сегодня разберёмся, как быстро и без боли настроить монтирование NFS на Ubuntu 24.04. Почему это важно? Потому что NFS — это один из самых простых и надёжных способов расшарить папки между серверами или рабочими станциями в одной сети. Если вы когда-нибудь сталкивались с задачей: «А как бы мне быстро подключить общий каталог к нескольким машинам, чтобы не городить велосипед с rsync или scp?» — вот оно, решение. В этой статье — только практические советы, реальные кейсы, схемы и команды, которые работают. Без воды, только мясо. Погнали!

Как работает NFS и зачем он нужен?

NFS (Network File System) — это сетевой протокол, который позволяет монтировать удалённые каталоги так, будто они локальные. То есть, у вас есть сервер с папкой /srv/data, и вы хотите, чтобы на другом сервере эта папка была доступна по пути /mnt/data. Всё, что внутри — файлы, права, структура — будет видно и доступно, как будто это обычная локальная папка.

  • Прозрачность: Пользователь или процесс не видит разницы между локальным и удалённым каталогом.
  • Гибкость: Можно расшарить хоть весь диск, хоть отдельную папку.
  • Скорость: На локальной сети NFS работает очень быстро, особенно с правильными настройками.
  • Универсальность: Работает на Linux, BSD, macOS и даже Windows (через сторонние клиенты).

NFS — это не только про «шаринг». Это про автоматизацию, масштабирование и удобство. Например, если у вас несколько серверов приложений, а данные должны храниться централизованно, NFS — ваш друг. Или если вы хотите быстро развернуть тестовую среду, где все машины видят одни и те же файлы.

Как быстро и просто всё настроить?

Давайте разложим по шагам: что нужно сделать, чтобы всё заработало. Будем считать, что у нас есть два сервера: nfs-server (где хранятся файлы) и nfs-client (который будет монтировать расшаренную папку).

  1. Установить необходимые пакеты.
  2. Настроить экспорт (экспортируемую папку) на сервере.
  3. Открыть нужные порты в firewall (если он есть).
  4. Смонтировать папку на клиенте.
  5. Добавить монтирование в автозагрузку (fstab).

1. Установка пакетов


# На сервере:
sudo apt update
sudo apt install nfs-kernel-server

# На клиенте:
sudo apt update
sudo apt install nfs-common

2. Настройка экспорта на сервере

Допустим, вы хотите расшарить папку /srv/data для клиента с IP 192.168.1.100. Открываем /etc/exports:


sudo nano /etc/exports

Добавляем строку:


/srv/data 192.168.1.100(rw,sync,no_subtree_check)

  • rw — разрешить запись
  • sync — операции записи синхронны (безопаснее, но чуть медленнее)
  • no_subtree_check — отключить проверку поддерева (ускоряет работу, если не нужно ограничивать доступ к подкаталогам)

Если нужно расшарить для всей подсети:


/srv/data 192.168.1.0/24(rw,sync,no_subtree_check)

Применяем изменения:


sudo exportfs -ra
sudo systemctl restart nfs-server

3. Открываем порты в firewall (если используется UFW)


sudo ufw allow from 192.168.1.0/24 to any port nfs
sudo ufw reload

Если firewall другой — откройте порты 2049 (NFS), 111 (rpcbind).

4. Монтируем папку на клиенте


sudo mkdir -p /mnt/data
sudo mount -t nfs 192.168.1.10:/srv/data /mnt/data

Где 192.168.1.10 — IP вашего NFS-сервера.

5. Добавляем в автозагрузку (fstab)


echo "192.168.1.10:/srv/data /mnt/data nfs defaults 0 0" | sudo tee -a /etc/fstab

Теперь при перезагрузке всё смонтируется автоматически.

Примеры, схемы, практические советы

Вот типичная схема:

+-------------------+         +-------------------+
|    nfs-server     | <-----> |    nfs-client     |
|  /srv/data        |         |  /mnt/data        |
+-------------------+         +-------------------+

А теперь — реальные кейсы из жизни.

Кейс Что сделали Результат Рекомендации
Быстрый деплой тестовой среды Расшарили папку с образами Docker через NFS на несколько VM Экономия места, ускорение CI/CD Используйте опцию no_root_squash только для доверенных клиентов
Бэкапы на отдельный сервер Монтировали NFS как целевой каталог для rsync Простота, надёжность, скорость Проверяйте права доступа, чтобы не получить “Permission denied”
Проблемы с производительностью Монтировали NFS через Wi-Fi Лаги, таймауты, потеря файлов Используйте только проводную сеть для NFS
Масштабирование веб-приложения Общий каталог для статики на нескольких веб-серверах Удобно, но возможны гонки при одновременной записи Для write-heavy нагрузок рассмотрите GlusterFS или Ceph

Похожие решения, альтернативы и утилиты

  • Samba (SMB/CIFS): Хорош для смешанных сетей (Windows/Linux), но чуть сложнее в настройке и медленнее на больших файлах.
  • SSHFS: Монтирование через SSH. Просто, но медленно и не для больших нагрузок.
  • GlusterFS, CephFS: Распределённые файловые системы для масштабируемых кластеров. Сложнее, но мощнее.
  • rsync: Для односторонней синхронизации, не для монтирования.
Решение Плюсы Минусы Когда использовать
NFS Просто, быстро, нативно для Linux Без шифрования, не для WAN Внутри локальной сети, для Linux
Samba Кроссплатформенно, поддержка Windows Сложнее настройка, чуть медленнее Гетерогенные сети (Windows + Linux)
SSHFS Безопасно, просто Медленно, не для больших файлов Временное монтирование, удалённый доступ
GlusterFS/CephFS Масштабируемо, отказоустойчиво Сложно, ресурсоёмко Кластеры, большие проекты

Официальная документация по NFS: https://wiki.archlinux.org/title/NFS

Интересные факты и нестандартные способы использования

  • Можно монтировать NFS не только на серверах, но и на Android-устройствах (через Termux и nfs-utils).
  • С помощью NFS можно расшарить папку между виртуальными машинами на одном хосте, минуя виртуальные диски.
  • Некоторые NAS (Synology, QNAP) поддерживают экспорт NFS «из коробки» — удобно для резервного копирования.
  • Можно использовать NFS для хранения контейнеров LXC/LXD, чтобы быстро мигрировать их между хостами.
  • В Kubernetes Persistent Volumes можно подключать через NFS — удобно для stateful приложений.

Автоматизация и скрипты: новые возможности

NFS отлично ложится в автоматизацию. Например, вы можете:

  • Автоматически монтировать каталоги при старте контейнеров или виртуальных машин.
  • Использовать Ansible или bash-скрипты для массового деплоя и настройки.
  • Организовать централизованное хранение логов или бэкапов.
  • Сделать «горячую» миграцию сервисов между серверами без копирования данных.

Пример простого bash-скрипта для монтирования NFS на нескольких клиентах:


#!/bin/bash
NFS_SERVER="192.168.1.10"
NFS_SHARE="/srv/data"
MOUNT_POINT="/mnt/data"

for HOST in client1 client2 client3; do
ssh $HOST "sudo mkdir -p $MOUNT_POINT && sudo mount -t nfs $NFS_SERVER:$NFS_SHARE $MOUNT_POINT"
done

Статистика и сравнение

  • В крупных компаниях (Google, Facebook) NFS используется для быстрого прототипирования и тестовых сред, но для продакшена — только в изолированных сетях.
  • Средняя скорость передачи по NFS на гигабитной сети — 80-110 МБ/с (почти как локальный диск, если нет узких мест).
  • В отличие от Samba, NFS проще масштабируется на десятки клиентов без потери производительности.
  • В Ubuntu 24.04 улучшена поддержка NFSv4, теперь можно использовать Kerberos-авторизацию и ACL для тонкой настройки прав.

Выводы и рекомендации

NFS — это быстрый, надёжный и проверенный временем способ расшарить файлы между Linux-серверами. Если вам нужно быстро организовать общий доступ к данным, автоматизировать деплой, централизовать бэкапы или просто упростить жизнь — берите на вооружение. Главное — не забывайте про безопасность: не открывайте NFS в интернет, ограничивайте доступ по IP, используйте NFSv4 и Kerberos, если нужно шифрование и авторизация.

  • Используйте NFS для локальных сетей, тестовых и продакшн-сред, где важна скорость и простота.
  • Для сложных сценариев (кластеризация, отказоустойчивость) смотрите в сторону GlusterFS и CephFS.
  • Не забывайте про автоматизацию — NFS отлично интегрируется в скрипты и CI/CD пайплайны.
  • Если нужен VPS для тестов — заказать VPS, если нужен выделенный сервер — заказать выделенный сервер.

Пробуйте, экспериментируйте, не бойтесь ломать — NFS легко настраивается и так же легко чинится. Если остались вопросы — гуглите, читайте официальную документацию или спрашивайте на StackOverflow. Удачи в автоматизации!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked