Установка сервера и клиента NFS на Ubuntu

NFS или Network File System - это протокол распределенной файловой системы, первоначально разработанный только компанией Sun Microsystems. С помощью NFS вы можете позволить системе обмениваться каталогами и файлами с другими системами по сети. Благодаря совместному использованию файлов NFS, пользователи и даже программы могут получать доступ к информации на удаленных системах почти так же, как если бы они находились на локальной машине.

NFS работает в среде клиент-сервер, где сервер отвечает за управление аутентификацией, авторизацией и администрированием клиентов, а также за все данные, совместно используемые в конкретной файловой системе. После авторизации любое количество клиентов может получить доступ к общим данным, как если бы они находились в их внутреннем хранилище. Установить NFS-сервер в вашей системе Ubuntu очень просто. Вам нужно только выполнить несколько необходимых установок и конфигураций, как на сервере, так и на клиентских машинах, и вы готовы к работе.

В этой статье мы шаг за шагом объясним, как настроить NFS-сервер и клиент, позволяющие обмениваться файлами с одной системы Ubuntu на другую.

Настройка хост-сервера

Чтобы настроить хост-систему для совместного доступа к каталогам, нам нужно установить на ней сервер NFS Kernel, а затем создать и экспортировать каталоги, к которым мы хотим предоставить доступ клиентским системам. Для плавной настройки хост-системы выполните следующие шаги:

Шаг 1: Установка сервера ядра NFS

Перед установкой сервера NFS Kernel нам необходимо обновить индекс репозитория нашей системы с индексом репозитория Интернета с помощью следующей команды apt от имени sudo:

Вышеуказанная команда позволяет нам установить последнюю доступную версию программного обеспечения через репозитории Ubuntu.

Теперь выполните следующую команду, чтобы установить NFS Kernel Server в вашей системе:

Установите NFS Kernel Server

Система предложит вам ввести Y/n, чтобы подтвердить, хотите ли вы продолжить установку. Введите Y и нажмите Enter для продолжения, после чего программное обеспечение будет успешно установлено на вашу систему.

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

Каталог, которым мы хотим поделиться с клиентской системой, называется экспортным каталогом. Вы можете назвать его по своему усмотрению; здесь мы создаем каталог экспорта с именем "sharedfolder" в каталоге mnt(mount) нашей системы.

Используйте следующую команду, указав имя папки mount в соответствии с вашими потребностями, с помощью следующей команды от имени root:

Поскольку мы хотим, чтобы все клиенты имели доступ к каталогу, мы снимем ограничительные разрешения с папки экспорта с помощью следующих команд:

Теперь все пользователи всех групп на клиентской системе смогут получить доступ к нашей "общей папке". Вы можете создать столько вложенных папок в папке экспорта, сколько захотите, чтобы клиент мог получить к ним доступ.

Шаг 3: Назначение доступа к серверу клиенту(ам) через файл экспорта NFS

После создания папки экспорта нам нужно будет предоставить клиентам разрешение на доступ к серверной машине. Это разрешение определяется через файл exports, расположенный в папке /etc вашей системы. Чтобы открыть этот файл через редактор Nano, выполните следующую команду:

Для редактирования этого файла требуется доступ root, поэтому вам необходимо использовать команду sudo. Вы также можете открыть этот файл в любом из ваших любимых текстовых редакторов.

Открыв файл, вы можете разрешить доступ:

Одному клиенту, добавив в файл следующую строку:

Нескольким клиентам, добавив следующие строки в файл:

Несколько клиентов, указав всю подсеть, к которой принадлежат клиенты:

В этом примере мы указываем целую подсеть всех клиентов, которым мы хотим предоставить доступ к нашей папке экспорта (sharedfolder):

NFS Exports

Добавьте необходимые строки в файл экспорта и сохраните его, нажав Ctrl+X, введя Y, а затем нажав Enter.

Разрешения "rw,sync,no_subtree_check", определенные в этом файле, означают, что клиент(ы) могут выполнять:

  • rw: операции чтения и записи
  • sync: записывать любые изменения на диск перед их применением
  • no_subtree_check: предотвратить проверку поддеревьев

Шаг 4: Экспорт общего каталога

После выполнения всех вышеперечисленных настроек в хост-системе пришло время экспортировать общий каталог с помощью следующей команды sudo:

Наконец, чтобы все конфигурации вступили в силу, перезапустите сервер NFS Kernel следующим образом:

Шаг 5: Откройте брандмауэр для клиента (-ов)

Важным шагом является проверка того, что брандмауэр сервера открыт для клиентов, чтобы они могли получить доступ к общему содержимому. Следующая команда настроит брандмауэр для предоставления доступа клиентам через NFS:

В нашем примере мы предоставляем доступ к целой подсети клиентских машин с помощью следующей команды:

Теперь, когда вы проверите статус вашего брандмауэра Ubuntu с помощью следующей команды, вы сможете увидеть статус действия как "Разрешить" для IP клиента.

Статус брандмауэра UFW

Теперь ваш хост-сервер готов экспортировать общую папку на указанный клиент(ы) через сервер ядра NFS.

Настройка клиентской машины

Теперь настало время выполнить несколько простых настроек клиентской машины, чтобы общая папка с хоста могла быть смонтирована на клиенте, а затем к ней можно было беспрепятственно получить доступ.

Шаг 1: Установите NFS Common

Перед установкой приложения NFS Common нам необходимо обновить индекс репозитория нашей системы с индексом репозитория Интернета с помощью следующей команды apt от имени sudo:

apt update

Приведенная выше команда позволяет нам установить последнюю доступную версию программного обеспечения через репозитории Ubuntu.

Теперь выполните следующую команду, чтобы установить клиент NFS Common в вашей системе:

Установите пакет nfs common

Система предложит вам ввести Y/n, чтобы подтвердить, хотите ли вы продолжить установку. Пожалуйста, введите Y и нажмите Enter для продолжения, после чего программное обеспечение будет успешно установлено на вашу систему

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

Системе вашего клиента необходим каталог, в котором будет доступен весь контент, совместно используемый хост-сервером в папке экспорта. Вы можете создать эту папку в любом месте вашей системы. Мы создаем папку mount в каталоге mnt машины нашего клиента:

Шаг 3: Смонтируйте общий каталог на клиенте

Папка, которую вы создали в вышеописанном шаге, похожа на любую другую папку в вашей системе, пока вы не смонтируете общий каталог с хоста в эту вновь созданную папку.

Используйте следующую команду для монтирования общей папки с хоста в монтируемую папку на клиенте:

В нашем примере мы выполняем следующую команду для экспорта нашей "sharedfolder" с сервера в папку монтирования "sharedfolder_client" на клиентской машине:

Шаг 4: Протестируйте соединение

Создайте или сохраните файл в папке экспорта хост-сервера NFS. Теперь откройте папку mount на клиентской машине; вы должны иметь возможность просмотреть тот же файл, доступный в этой папке.

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

я проверяю подключение выполнив на клиентской машине (192.168.153.141) следующую команду

Результат проверки на сервере

Результат проверки на сервере

Заключение

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий