Установите сервер и клиент NFS в Ubuntu
NFS или Network File System — это протокол распределенной файловой системы, первоначально разработанный только компанией Sun Microsystems. С помощью NFS вы можете разрешить системе делиться каталогами и файлами с другими пользователями по сети. Совместно используя файлы NFS, пользователи и даже программы могут получать доступ к информации в удаленных системах почти так же, как если бы они находились на локальном компьютере.
NFS работает в среде клиент-сервер, где сервер отвечает за управление аутентификацией, авторизацией и администрированием клиентов, а также за все данные, совместно используемые в конкретной файловой системе. После авторизации любое количество клиентов может получить доступ к общим данным, как если бы они находились в их внутреннем хранилище. Настроить сервер NFS в вашей системе Ubuntu очень просто. Вам нужно всего лишь выполнить некоторые необходимые установки и настройки как на сервере, так и на клиентских машинах, и все готово.
В этой статье мы шаг за шагом объясним, как настроить сервер и клиент NFS, которые позволят вам обмениваться файлами из одной системы Ubuntu в другую.
Мы выполнили команды и процедуры, описанные в этой статье, в системе Ubuntu 18.04 LTS и недавно протестировали их с новой Ubuntu 20.04. Поскольку для выполнения всех операций мы используем командную строку Ubuntu, терминал, открыть его можно либо с помощью системного тире, либо с помощью комбинации клавиш Ctrl+Alt+T.
Настройка хост-сервера
Чтобы настроить хост-систему для совместного использования каталогов, нам нужно будет установить на нее сервер ядра NFS, а затем создать и экспортировать каталоги, к которым мы хотим, чтобы клиентские системы имели доступ. Пожалуйста, выполните следующие действия, чтобы плавно настроить хост-сторону:
Шаг 1. Установите сервер ядра NFS
Перед установкой сервера ядра NFS нам необходимо обновить индекс репозитория нашей системы индексом из Интернета с помощью следующей apt-команды как sudo:
sudo apt-get update
Приведенная выше команда позволяет нам установить последнюю доступную версию программного обеспечения через репозитории Ubuntu.
Теперь выполните следующую команду, чтобы установить сервер ядра NFS в вашей системе:
sudo apt install nfs-kernel-server
Система предложит вам выбрать вариант «Да/нет», чтобы подтвердить, хотите ли вы продолжить установку. Пожалуйста, введите Y и нажмите Enter, чтобы продолжить, после чего программное обеспечение будет успешно установлено в вашей системе.
Шаг 2. Создайте каталог экспорта
Каталог, который мы хотим использовать совместно с клиентской системой, называется каталогом экспорта. Вы можете назвать его по своему выбору; здесь мы создаем каталог экспорта с именем «sharedfolder» в каталоге mnt(mount) нашей системы.
Используйте следующую команду, указав имя папки монтирования в соответствии с вашими потребностями, выполнив следующую команду от имени пользователя root:
sudo mkdir -p /mnt/sharedfolder
Поскольку мы хотим, чтобы все клиенты имели доступ к каталогу, мы удалим ограничительные разрешения для папки экспорта с помощью следующих команд:
sudo chown nobody:nogroup /mnt/sharedfolder
sudo chmod 777 /mnt/sharedfolder
Теперь все пользователи из всех групп клиентской системы смогут получить доступ к нашей «общей папке».
Вы можете создать столько подпапок в папке экспорта, сколько захотите, чтобы клиент мог получить к ним доступ.
Шаг 3. Назначьте доступ к серверу клиентам через файл экспорта NFS.
После создания папки экспорта нам нужно будет предоставить клиентам разрешение на доступ к компьютеру хост-сервера. Это разрешение определяется через файл экспорта, расположенный в папке /etc вашей системы. Используйте следующую команду, чтобы открыть этот файл через редактор Nano:
sudo nano /etc/exports
Для редактирования этого файла требуется root-доступ; поэтому вам нужно будет использовать sudo со своей командой. Вы также можете открыть файл в любом из ваших любимых текстовых редакторов.
Открыв файл, вы можете разрешить доступ к:
- Один клиент, добавив в файл следующую строку:
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
- Несколько клиентов, добавив в файл следующие строки:
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check)
/mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
- Несколько клиентов, указав всю подсеть, к которой принадлежат клиенты:
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)
В этом примере мы указываем всю подсеть всех клиентов, которым мы хотим предоставить доступ к нашей папке экспорта (общей папке):
Добавьте необходимые строки в файл экспорта, а затем сохраните его, нажав Ctrl+X, введя Y, а затем нажав Enter.
Разрешения «rw,sync,no_subtree_check», определенные в этом файле, означают, что клиент(ы) могут выполнять:
- rw: операции чтения и записи.
- синхронизация: записывайте любые изменения на диск перед их применением.
- no_subtree_check: запретить проверку поддерева.
Шаг 4. Экспортируйте общий каталог
После выполнения всех вышеуказанных настроек в хост-системе пришло время экспортировать общий каталог с помощью следующей команды как sudo:
sudo exportfs -a
Наконец, чтобы все настройки вступили в силу, перезапустите сервер ядра NFS следующим образом:
$sudo systemctl restart nfs-kernel-server
Шаг 5: Откройте брандмауэр для клиента(ов)
Важным шагом является проверка того, что брандмауэр сервера открыт для клиентов, чтобы они могли получить доступ к общему контенту. Следующая команда настроит брандмауэр для предоставления доступа клиентам через NFS:
sudo ufw allow from [clientIP or clientSubnetIP] to any port nfs
В нашем примере мы предоставляем доступ ко всей подсети клиентских компьютеров с помощью следующей команды:
sudo ufw allow from 192.168.100/24 to any port nfs
Теперь, когда вы проверите состояние вашего брандмауэра Ubuntu с помощью следующей команды, вы сможете просмотреть статус действия как «Разрешить» для IP-адреса клиента.
sudo ufw status
Теперь ваш хост-сервер готов экспортировать общую папку указанным клиентам через сервер ядра NFS.
Настройка клиентского компьютера
Теперь пришло время выполнить несколько простых настроек на клиентском компьютере, чтобы общую папку с хоста можно было подключить к клиенту и затем беспрепятственно получить к ней доступ.
Шаг 1. Установите NFS Common
Перед установкой приложения NFS Common нам необходимо обновить индекс репозитория нашей системы индексом из Интернета с помощью следующей apt-команды как sudo:
sudo apt-get update
Приведенная выше команда позволяет нам установить последнюю доступную версию программного обеспечения через репозитории Ubuntu.
Теперь выполните следующую команду, чтобы установить общий клиент NFS в вашей системе:
sudo apt-get install nfs-common
Система предложит вам выбрать вариант «Да/нет», чтобы подтвердить, хотите ли вы продолжить установку. Пожалуйста, введите Y и нажмите Enter, чтобы продолжить, после чего программное обеспечение будет успешно установлено в вашей системе.
Шаг 2. Создайте точку монтирования для общей папки хоста NFS.
Системе вашего клиента необходим каталог, в котором можно получить доступ ко всему содержимому, совместно используемому хост-сервером в папке экспорта. Вы можете создать эту папку в любом месте вашей системы. Мы создаем папку монтирования в каталоге mnt на машине нашего клиента:
sudo mkdir -p /mnt/sharedfolder_client
Шаг 3. Подключите общий каталог на клиенте.
Папка, которую вы создали на предыдущем шаге, похожа на любую другую папку в вашей системе, если только вы не смонтируете общий каталог с вашего хоста в эту вновь созданную папку.
Используйте следующую команду, чтобы смонтировать общую папку с хоста в папку монтирования на клиенте:
sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client
В нашем примере мы запускаем следующую команду для экспорта нашей «общей папки» с сервера в папку монтирования «sharedfolder_client» на клиентском компьютере:
sudo mount 192.168.100.5:/mnt/sharedfolder /mnt/sharedfolder_client
Шаг 4. Проверьте соединение
Создайте или сохраните файл в папке экспорта хост-сервера NFS. Теперь откройте папку монтирования на клиентском компьютере; вы должны иметь возможность просматривать один и тот же файл, общий и доступный в этой папке.
Заключение
Настройка клиент-серверной среды NFS в системах Ubuntu — простая задача. Из этой статьи вы узнали, как установить необходимые пакеты NFS как на сервер, так и на клиенты. Вы также узнали, как настроить сервер NFS и клиентские компьютеры таким образом, чтобы папки можно было использовать совместно, а затем беспрепятственно получать к ним доступ без каких-либо проблем с брандмауэром или разрешениями. Теперь вы можете легко обмениваться контентом из одной системы Ubuntu в другую, используя протокол NFS.