NFS, сокращение от Network File System, является протоколом распределенной файловой системы. Это может помочь вам обмениваться файлами и целыми каталогами с другими людьми по сети. Он позволяет программам в удаленных системах обмениваться информацией и получать доступ друг к другу, как если бы она была доступна на локальном компьютере.
NFS работает в среде клиент-сервер. То есть, если вы хотите настроить NFS для обмена файлами между двумя системами, тогда одна из них должна быть настроена как сервер, а другая как клиент.
Сервер функционирует как администратор, который аутентифицирует и разрешает клиенту (-ам) доступ к общим данным. Практически любое количество клиентов может получить доступ к общим данным так же просто, как и к любому другому файлу или каталогу в их локальном хранилище.
Как настроить сервер NFS на сервере Ubuntu
Итак, если вас это заинтересовало, мы составили подробное пошаговое руководство, которое поможет вам установить и настроить NFS-сервер в Ubuntu, чтобы вы тоже могли начать обмениваться данными с другими клиентскими системами. Он разделен на разделы, в первой части обсуждается, как настроить хост-сервер, а во второй части показано, как настроить клиентскую сторону. В этом руководстве мы будем использовать Ubuntu 20.04 LTS.
Настройка хост-сервера
Чтобы настроить хост-сервер, сначала необходимо установить сервер ядра NFS. После этого вы можете создавать и экспортировать файлы и каталоги, которыми хотите поделиться со всеми клиентскими системами.
Итак, давайте перейдем к этому.
Шаг 1. Установка сервера ядра NFS
Перво-наперво, нам нужно установить пакет NFS Kernel Server в системе Ubuntu, который будет работать как сервер. Но перед этим, чтобы убедиться, что во время процесса ничего не выйдет из строя, давайте обновим системные пакеты.
Для этого введите в терминал следующую команду:
$ sudo подходящее обновление
После всех обновлений системных пакетов пора установить пакет «nfs-kernel-server», используя следующую команду:
$ sudo apt установить nfs-kernel-server
Это также установит некоторые дополнительные пакеты в вашей системе, включая «nfs-common», а также «rpcbind», которые необходимы для настройки общего доступа к файлам.
Шаг 2. Создайте каталог для экспорта NFS
Установив пакет «nfs-kernel-server», вы теперь можете создать каталог экспорта NFS (известный как «каталог экспорта»), который будет использоваться всеми клиентскими системами. Для этого введите следующую команду внутри терминала.
$ sudo mkdir -p / mnt / nfs_share
Все файлы, которые вы хотите сделать доступными для клиентов, должны быть созданы внутри этого каталога. Поскольку мы хотим, чтобы клиентские системы имели полный доступ к этому общему каталогу, нам необходимо удалить все разрешения каталога, которые ограничивают доступ.
Это можно сделать с помощью следующей команды:
$ sudo chown -R никто: nogroup / mnt / nfs_share /
Когда закончите с приведенной выше командой, переходите к следующему шагу.
Шаг 3. Назначьте доступ к серверу NFS для клиентских систем
Когда каталог экспорта готов, вам необходимо предоставить разрешение системам ваших клиентов на доступ к хост-серверу. Это разрешение определяется в файле «exports», который находится в папке / etc вашей системы.
Вам нужно будет отредактировать этот файл и добавить несколько дополнительных строк команд, чтобы предоставить системам ваших клиентов доступ к каталогу экспорта. Таким образом, откройте его с помощью редактора Nano, введя эту команду в терминал:
$ sudo nano / etc / exports
Отсюда вы можете предоставить доступ к серверу NFS одному клиенту, нескольким клиентам или всей подсети. Для этого чтения мы будем предоставлять доступ всей подсети к общему ресурсу NFS.
Для этого вам нужно будет добавить эту строку в файл «экспорт».
/ mnt / nfs_share подсеть(rw, синхронизация, no_subtree_check)
Здесь вам нужно заменить подсеть вашей системы в предоставленном заполнителе.
Помимо этого, вот что означают другие части команды:
- rw: команда чтения / записи
- синхронизировать: изменения сначала вносятся на диск, прежде чем они будут применены
- no_subtree_check: убирает проверку поддерева
Однако, если вы хотите предоставить доступ только одному клиенту, вы можете сделать это, используя следующий синтаксис:
/ mnt / nfs_share client_IP_1 (rw, sync, no_subtree_check)
В то время как для добавления нескольких клиентов вам нужно делать это по одному:
/ mnt / nfs_share client_IP_1 (rw, sync, no_subtree_check) / mnt / nfs_share client_IP_2 (rw, sync, no_subtree_check)
Поскольку клиентская система имеет доступ к серверу NFS, пора перейти к следующему шагу.
Шаг 4. Экспорт общего каталога NFS
Имея все указанные выше конфигурации, пришло время экспортировать общий каталог NFS и сделать его доступным для клиентских систем.
Это быстро делается с помощью этой команды:
$ sudo exportfs -a
Затем следует перезапуск сервера ядра NFS, чтобы убедиться, что все настройки вступили в силу.
Наконец-то пора перейти к последнему этапу этой настройки.
Шаг 5. Разрешите клиентам проходить через брандмауэр
Даже после предоставления клиентам доступа к серверу NFS и экспорта общего каталога клиенты по-прежнему не смогут получить доступ к файлам, если они заблокированы брандмауэром. Таким образом, вам нужно будет открыть брандмауэр для своих клиентов. На вашем ПК с Ubuntu уже есть брандмауэр по умолчанию - UFW (несложный брандмауэр).
Чтобы проверить, работает ли он в вашей системе, вы можете ввести следующую команду:
$ sudo ufw статус
Если он показывает, что он неактивен, вам нужно будет снова включить его с помощью этой команды:
$ sudo ufw enable
Однако, если по какой-то причине он не установлен в вашей системе, вы можете использовать эту команду для его установки:
$ sudo apt install
После того, как вы установили и включили UFW в вашей системе Ubuntu, вам нужно будет настроить его так, чтобы он разрешал доступ вашим клиентам.
Поскольку мы предоставили NFS-доступ ко всей подсети, нам нужно использовать эту команду:
$ sudo ufw разрешить от подсеть в любой порт nfs
Однако, если вы разрешили доступ NFS только для каждого клиента, вам нужно будет ввести IP-адрес клиента следующим образом:
$ sudo ufw разрешить от client_IP_1 в любой порт nfs
Вот и все! Вы успешно установили и настроили службу NFS на сервере.
Настройка клиентской системы
Затем нам нужно будет установить и настроить NFS в клиентской системе для доступа к общему каталогу. Как и раньше, вот пошаговое руководство, которое поможет вам.
Шаг 1. Установка общего пакета NFS
При настройке клиентской системы для общего доступа NFS нам необходимо установить пакет «nfs-common». Как и раньше, вы должны сначала обновить системный пакет, а затем установить nfs-common, используя следующие команды:
Чтобы обновить пакеты:
$ sudo подходящее обновление
Чтобы установить пакет nfs-common:
$ sudo apt install nfs-common
После этого переходите к следующему шагу.
Шаг 2: Создайте точку монтирования
Далее вам нужно будет создать точку монтирования. Он будет использоваться для монтирования общих файлов NFS с сервера NFS. Для этого введите в терминале эту команду:
$ sudo mkdir -p / mnt / nfs_clientshare
Шаг 3. Смонтируйте общий каталог NFS в клиентской системе
Папка, созданная вами на предыдущем шаге, работает как любая другая папка в вашей системе. Чтобы получить доступ к общему каталогу NFS с хост-сервера, вам необходимо подключить его к этой новой папке: «nfs_clientshare».
Для этого сначала необходимо знать IP-адрес сервера NFS. Введите в терминале серверной системы следующую команду:
$ ifconfig
Появится конфигурация сетевого интерфейса. IP-адрес сервера - это тот, который указан в разделе «inet», который в нашем случае равен 10.0.2.15.
Используя этот IP-адрес, введите следующую команду в терминале клиента NFS, чтобы наконец смонтировать общий каталог NFS в клиентской системе:
$ sudo mount 10.0.2.15: / mnt / nfs_share / mnt / nfs_clientshare
Шаг 4. Проверьте соединение, чтобы убедиться, что все работает
Выполнив указанные выше шаги по порядку, вы успешно создали сервер NFS для обмена файлами и папками между серверной системой и несколькими клиентскими системами.
Остается только проверить, все ли работает правильно.
Для этого создайте новый файл в общем каталоге NFS на сервере. Вы можете сделать это с помощью этой команды:
$ cd / mnt / nfs_share / $ touch file1.txt file2.txt file3.текст
После этого проверьте клиентскую систему, чтобы увидеть, отображаются ли эти файлы в общем каталоге NFS, используя следующую команду:
$ ls -l / mnt / nfs_clientshare /
Если вы видите файлы - «file1.txt »,« файл2.txt »и« file3.txt »в списке, значит, сервер NFS работает, и теперь вы можете начать совместное использование и получение файлов между клиентской и серверной системами.