Главная » Linux Ubuntu/Mint » Файловые системы » Настройка NFS (Network File System) на Ubuntu Server и Clients

📑 Настройка NFS (Network File System) на Ubuntu Server и Clients

Логотип NFSNFS (Network File System) позволяет вам совместно использовать файлы и каталоги между Linux/Unix-подобными системами по сети.

Вот как настроить NFS на сервере Ubuntu и клиентах:

1. Настройка NFS Server (Ubuntu Server):

Установка NFS Server:

sudo apt update
sudo apt install nfs-kernel-server

Создание каталога для экспорта:

Создайте каталог, который вы хотите сделать доступным для клиентов NFS. Например:

sudo mkdir -p /mnt/nfs_share
sudo chown nobody:nogroup /mnt/nfs_share
sudo chmod 777 /mnt/nfs_share # Временно, для простоты. В production используйте более строгие права.
  • /mnt/nfs_share: Каталог, который будет экспортироваться.
  • chown nobody:nogroup: Изменяет владельца и группу каталога на nobody:nogroup. Это необходимо, чтобы клиенты NFS могли читать и записывать файлы в каталог.
  • chmod 777: Устанавливает права доступа к каталогу на 777 (чтение, запись и выполнение для всех). В production-окружении не рекомендуется использовать chmod 777. Вместо этого используйте более строгие права доступа, которые соответствуют вашим требованиям безопасности.

Настройка экспорта NFS:

Отредактируйте файл /etc/exports, чтобы указать, какие каталоги экспортировать и какие клиенты имеют к ним доступ.

sudo nano /etc/exports

Добавьте строку, определяющую каталог для экспорта и параметры доступа. Например:

/mnt/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check)
  • /mnt/nfs_share: Каталог, который будет экспортироваться.
  • 192.168.1.0/24: IP-адрес или диапазон IP-адресов клиентов, которым разрешен доступ к каталогу. В данном случае, это все IP-адреса в сети 192.168.1.0/24. Вы можете указать конкретный IP-адрес, например 192.168.1.100.
  • rw: Разрешает чтение и запись для клиентов.
  • sync: Требует, чтобы изменения были записаны на диск до отправки ответа клиенту. Это обеспечивает целостность данных, но может снизить производительность.
  • no_subtree_check: Отключает проверку поддеревьев. Это может улучшить производительность, но может также создать проблемы безопасности, если вы экспортируете подкаталоги, которые не должны быть доступны клиентам.

Другие полезные опции:

  • ro: Разрешает только чтение.
  • async: Разрешает запись изменений на диск асинхронно. Это может повысить производительность, но может также привести к потере данных в случае сбоя сервера.
  • root_squash: Преобразует запросы от пользователя root на клиенте в запросы от пользователя nobody на сервере. Это повышает безопасность, предотвращая возможность злоупотребления правами root на клиенте.
  • no_root_squash: Не преобразует запросы от пользователя root на клиенте. Это может быть необходимо в некоторых случаях, но снижает безопасность.
  • all_squash: Преобразует запросы от всех пользователей на клиенте в запросы от пользователя nobody на сервере.
  • anonuid и anongid: Указывают UID и GID пользователя, которому будут сопоставлены запросы от анонимных пользователей.

Экспорт каталогов:

sudo exportfs -a

Перезапуск NFS Server:

sudo systemctl restart nfs-kernel-server

Проверка статуса NFS Server:

sudo systemctl status nfs-kernel-server

Настройка Firewall (если необходимо):

Если у вас включен firewall (например, ufw), разрешите трафик NFS:

sudo ufw allow from 192.168.1.0/24 to any port 2049
sudo ufw enable
  • 192.168.1.0/24: Диапазон IP-адресов клиентов, которым разрешен доступ к NFS.
  • 2049: Порт NFS.

2. Настройка NFS Client (Ubuntu Client):

Установка NFS Client:

sudo apt update
sudo apt install nfs-common

Создание точки монтирования:

Создайте каталог, в который вы хотите монтировать общую папку NFS. Например:

sudo mkdir -p /mnt/nfs_client

Монтирование общей папки NFS:

sudo mount -t nfs <server_ip>:/mnt/nfs_share /mnt/nfs_client
  • <server_ip>: IP-адрес NFS-сервера.
  • /mnt/nfs_share: Каталог, экспортированный на сервере.
  • /mnt/nfs_client: Точка монтирования на клиенте.

Проверка монтирования:

df -h

Вы должны увидеть смонтированную файловую систему NFS в списке.

Автоматическое монтирование при загрузке (опционально):

Чтобы автоматически монтировать общую папку NFS при загрузке системы, добавьте запись в файл /etc/fstab.

sudo nano /etc/fstab

Добавьте строку:

<server_ip>:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0
  • <server_ip>: IP-адрес NFS-сервера.
  • /mnt/nfs_share: Каталог, экспортированный на сервере.
  • /mnt/nfs_client: Точка монтирования на клиенте.
  • nfs: Тип файловой системы.
  • defaults: Опции монтирования по умолчанию.
  • 0 0: Параметры для dump и fsck (обычно устанавливаются в 0).

После редактирования /etc/fstab выполните команду:

sudo mount -a

Чтобы проверить, что монтирование работает правильно.

3. Устранение неполадок:

Проверьте сетевое соединение: Убедитесь, что клиент и сервер могут пинговать друг друга.
Проверьте настройки firewall: Убедитесь, что firewall не блокирует трафик NFS.
Проверьте файл /etc/exports: Убедитесь, что каталог экспортируется правильно и что клиенту разрешен доступ.
Проверьте права доступа к каталогу: Убедитесь, что у клиента есть права на чтение и запись в каталог.
Проверьте логи NFS: Логи NFS могут содержать полезную информацию об ошибках. Обычно они находятся в /var/log/syslog или /var/log/messages.

Пример более безопасной конфигурации:

Вместо chmod 777 и no_root_squash, рассмотрите использование root_squash, anonuid и anongid для более безопасной конфигурации. Например:

На сервере:

sudo chown nobody:nogroup /mnt/nfs_share
sudo chmod 755 /mnt/nfs_share
/mnt/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000)
  • chmod 755: Разрешает владельцу (nobody) чтение, запись и выполнение, а группе (nogroup) и остальным — только чтение и выполнение.
  • root_squash: Преобразует запросы от пользователя root на клиенте в запросы от пользователя nobody на сервере.
  • anonuid=1000 и anongid=1000: Указывают UID и GID пользователя, которому будут сопоставлены запросы от анонимных пользователей. В данном случае, это пользователь с UID
  • 1000 (обычно первый пользователь, созданный в системе). Вам нужно заменить 1000 на UID пользователя, которому вы хотите предоставить доступ к общей папке.

На клиенте:

Убедитесь, что пользователь с UID 1000 существует на клиенте и имеет права на чтение и запись в точку монтирования /mnt/nfs_client.

Заключение:

Настройка NFS позволяет легко обмениваться файлами между Linux-системами. Не забудьте уделить внимание безопасности при настройке NFS, чтобы предотвратить несанкционированный доступ к вашим файлам. Используйте более строгие права доступа, root_squash, anonuid и anongid для повышения безопасности.

При перепечатке просьба вставлять активные ссылки на oslogic.ru
Copyright oslogic.ru © 2025 . All Rights Reserved.