Настройка сервера NFS на Linux Ubuntu

Обновлено и опубликовано Опубликовано:

Используемые термины: NFSUbuntu.

В инструкции мы кратко пробежим по процессу установки и настройки сервера NFS на Ubuntu Server. Также мы рассмотрим пример подключения клиентом к шаре сервера.

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

На сервере устанавливаем компонент для серверной части NFS:

apt install nfs-kernel-server

Открываем на редактирование файл:

vi /etc/exports

Добавим в него такую строку:

/data/nfs       192.168.0.0/24(rw,no_root_squash,no_subtree_check)

* предполагается, что мы создадим нашу первую шару из каталога /data/nfs, которая будет доступна для всех узлов сети 192.168.0.0/24. Также нам доступны для настройки следующие опции, которые мы перечисляем через запятую в скобках:

  • rw / ro — разрешить чтение и запись или только чтение.
  • sync / async — отвечать на запросы только когда данные будут сохранены на диск или не блокировать подключения пока данные записываются на диск.
  • secure / insecure — использовать для соединения только порты ниже 1024 или любые порты.
  • root_squash / no_root_squash — подменять запросы от root на анонимные или не делать этого.
  • subtree_check / no_subtree_check — проверять попытки пользователя выйти за пределы экспортированной папки или отключить данную проверку.
  • nohide — не скрывать поддиректории, если открыт доступ к нескольким каталогам.
  • crossmnt — эта опция аналогична nohide, но позволяет клиентам перемещаться с файловой системы, помеченной crossmnt, на смонтированные на ней экспортированные файловые системы. Таким образом, когда дочерняя файловая система «B» монтируется в родительской «A», установка crossmnt для «A» имеет тот же эффект, что и установка «nohide» для B.
  • all_squash — делать все запросы анонимными.
  • anonuid — указывает uid анонимного пользователя.
  • anongid — указывает gid анонимного пользователя.

Создадим каталог на сервере для нашей шары:

mkdir -p /data/nfs

Выполним экспорт данных (перечитаем наш конфигурационный файл /etc/exports, чтобы сервер начал отдавать настроенные шары):

exportfs -a

Сервер готов к работе. Состояние службы можно посмотреть командой:

systemctl status nfs-server

Если в нашей системе на сервере используется брандмауэр, нам нужно добавить порты 111 (udp, tcp) и 2049 (udp,tcp):

iptables -I INPUT -p udp --dport 111 -j ACCEPT

iptables -I INPUT -p tcp --dport 111 -j ACCEPT

iptables -I INPUT -p tcp --dport 2049 -j ACCEPT

iptables -I INPUT -p udp --dport 2049 -j ACCEPT

Для сохранения правил используем утилиту netfilter-persistent:

apt install netfilter-persistent

netfilter-persistent save

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

На стороне клиента может понадобиться поставить или обновить клиента NFS. В зависимости от используемого дистририбутива Linux, действия будут немного отличаться:

а) для систем на базе Deb (Ubuntu, Debian, Mint):

apt install nfs-common

б) для систем на базе RPM (Rocky Linux, CentOS):

yum install nfs-utils

Клиент будет установлен или обновлен.

Теперь можно попробовать примонтировать нашу шару:

mount -t nfs 192.168.0.15:/data/nfs /mnt

* в нашем примере мы подключимся к серверу с IP-адресом 192.168.0.15; каталог, который мы монтируем /data/nfs (тот, который настроили в файле exports; монтирование будет выполнено в каталог /mnt.

Для того, чтобы монтирование осталось после перезагрузки, открываем файл fstab:

vi /etc/fstab

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

192.168.0.15:/data/nfs        /mnt    nfs     auto    0 0

* где 192.168.0.15 — адрес сервера NFS; /mnt — каталог, куда будет примонтирована шара.

# Серверы # Ubuntu
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет