Linux nfs не подключается

Настройка NFS в Ubuntu

Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами. Вы можете использовать дисковое пространство на другой машине для своих файлов и работать с файлами, расположенными на других серверах. По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.

В этой статье будет рассмотрена установка NFS в Ubuntu. Мы разберем установку всех необходимых компонентов, настройку общей папки, а также подключение сетевых папок.

Немного теории

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

Установка компонентов NFS

Перед тем как мы сможем работать с NFS, нам придется установить несколько программ. На машину, которая будет сервером нужно установить пакет nfs-kernel-server, с помощью которого будет выполнено открытие шары nfs в ubuntu 16.04. Для этого выполните:

sudo apt install nfs-kernel-server

Теперь давайте проверим правильно ли установился сервер. Сервис NFS слушает соединения как для TCP, так и для UDP на порту 2049. Посмотреть действительно ли сейчас используются эти порты можно командой:

rpcinfo -p | grep nfs

Также важно проверить поддерживается ли NFS на уровне ядра:

cat /proc/filesystems | grep nfs

Видим, что работает, но если нет, нужно вручную загрузить модуль ядра nfs:

Давайте еще добавим NFS в автозагрузку:

sudo systemctl enable nfs-server

На клиентском компьютере вам нужно установить пакет nfs-common, чтобы иметь возможность работать с этой файловой системой. Вам необязательно устанавливать компоненты сервера, достаточно будет только этого пакета:

sudo apt install nfs-common

Вот и все, дальше настройка NFS в Ubuntu.

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

Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:

sudo mkdir /var/nfs

Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:

адрес_папки клиент (опции)

Адрес папки — это та папка, которую нужно сделать доступной по сети. Клиент — ip адрес или адрес сети, из которой могут получить доступ к этой папке. А вот с опциями немного сложнее. Рассмотрим некоторые из них:

  • rw — разрешить чтение и запись в этой папке;
  • ro — разрешить только чтение;
  • sync — отвечать на следующие запросы только тогда, когда данные будут сохранены на диск (по умолчанию);
  • async — не блокировать подключения пока данные записываются на диск;
  • secure — использовать для соединения только порты ниже 1024;
  • insecure — использовать любые порты;
  • nohide — не скрывать поддиректории при, открытии доступа к нескольким директориям;
  • root_squash — подменять запросы от root на анонимные, используется по умолчанию;
  • no_root_squash — не подменять запросы от root на анонимные;
  • all_squash — превращать все запросы в анонимные;
  • subtree_check — проверять не пытается ли пользователь выйти за пределы экспортированной папки;
  • no_subtree_check — отключить проверку обращения к экспортированной папке, улучшает производительность, но снижает безопасность, можно использовать когда экспортируется раздел диска;
  • anonuid и anongid — указывает uid и gid для анонимного пользователя.
Читайте также:  Красивый эмулятор терминала linux

Например, для нашей папки, если вы хотите разрешить к ней подключаться только с определённого IP адреса, эта строка может выглядеть вот так:

sudo vi /etc/exports

Можно разрешить только нужную подсеть, например:

Для того чтобы разрешить все адреса используйте подсеть 0.0.0.0/0 или символ *.

Открытие шары NFS в Ubuntu почти завершено. Осталось разобраться с правами. Кроме ограничений IP адреса работает обычная система полномочий UNIX, поэтому если вы хотите чтобы определённый пользователь мог получить доступ к папке, то на сервере должен существовать пользователь с таким же UID и эта папка должна принадлежать ему или группе в которой он состоит.

Кроме того, обратите внимание на то, что все подключения от имени пользователя root считаются по умолчанию анонимными (nfsnobody), чтобы это отключить добавьте опцию монтирования no_root_squash, но это не безопасно, потому что любой root пользователь сможет получить доступ на запись ко всем файлам. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.

Для того чтобы все пользователи могли получить доступ ко всем файлам можно создать пользователя с UID 1001 и попросить NFS все запросы считать запросами от анонимного пользователя, а анонимному пользователю присвоить UID 1001. Это делается такими опциями:

Когда все будет настроено, останется только обновить таблицу экспорта NFS:

sudo exportfs -a

Если на вашем сервере используется брандмауэр, то следует открыть порты 111 и 2049:

sudo ufw allow 111
sudo ufw allow 2049

Подключение NFS

Мы не будем подробно останавливаться на этом вопросе в сегодняшней статье. Это довольно большая тема, заслуживающая отдельной статьи. Но пару слов я все же скажу. Чтобы подключить сетевую папку вам не нужен никакой nfs клиент ubuntu, достаточно использовать команду mount:

sudo mount 127.0.0.1:/var/nfs/ /mnt/

Теперь вы можете попытаться создать файл в подключенной директории:

Также мы посмотрите подключенные файловые системы с помощью df:

127.0.0.1:/var/nfs 30G 6,7G 22G 24% /mnt

Чтобы отключить эту файловую систему достаточно использовать стандартный umount:

sudo umount /mnt/

Выводы

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

Читайте также:  Embedded industry pro версии windows

Источник

не монтируется nfs

Сервер — synology (linux)

Зри в корень dmesg, читай mount(8). Сказано же, неверная опция монтирования.

пробовал все что знаю

нет, та же ошибка

-o nfsvers=4, не? Хотя должен быть auto-negotiation по идее. Добавь -vv в опции монтирования и покажи выхлоп

я кажется забыл записать пользователя и пароль, возможно в этом и причина

нет, не получается

mount -o nfsvers=4,vv 192.168.1.5:/DOWNLOADS /media/test

mount -o nfsvers=4 -vv

я кажется забыл записать пользователя и пароль

у NFS нет авторизации по логину/паролю, либо uid mapping либо kerberos

nfs4 не поддерживается хранилищем или клиентом.

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

Источник

Монтирование NFS

Network File System (NFS) — протокол доступа к файловым системам по сети. NFS позволяет удаленно подключаться к общим папкам. Подключая общую папку мы работаем с ней как с локальной директорией. Давайте разберемся как происходит монтирование NFS на популярных дистрибутивах Linux.

В качестве NFS сервера у меня будет выступать FreeNAS — бесплатная сборка NAS на FreeBSD. Вероятно на вашей системе уже установлен клиент NFS, если нет установим его. Я буду монтировать NFS на Centos 8. Настройки для Ubuntu подобных также привожу.

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

Перед началом работы советую установить все текущие обновления.

Установка клиента NFS на Centos (и прочие на yum)

Установка клиента NFS на Ubuntu (и прочие на apt)
Монтирование NFS

Создадим в нашей системе папку куда будем монтировать NFS

Расположение и название папки может быть любым.

Монтирование NFS директории в папку /opt/nas

Разберем указанные параметры:

  • -t — указывает тип файловой системы
  • 192.168.20.2 — ip адрес моего NAS сервера
  • :/mnt/GENERAL — путь к монтируемой папке на NAS сервере
  • /opt/nas — папка на клиенте куда монтируем

Путь к монтируемой папке необходимо точно указывать. На разных серверах путь разный. В моём случае:

Если монтирование прошло удачно никаких сообщений не будет. Когда возникает ошибка, на экране это обязательно отобразится. У меня все прошло без ошибок.

У команды mount множество возможных ключей. Например можно подключить папку и сделать ее только для чтения, используя ключ -r. Полный список возможностей можно узнать прочитав man.

Либо посмотреть список ключей касательно монтирования NFS

Увидеть подключенные файловые системы с указанием точки монтирования можно так

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

Ручной тип подключения файловых систем, а именно монтирование, работает до перезагрузки. Перезагрузив компьютер потребуется снова монтировать папку. Чтобы автоматизировать данный процесс переходим к следующему пункту.

Автоматическое монтирование NFS

Автоматическое монтирование NFS происходит путем редактирования файла /etc/fstab. Указанный файл содержит список файловых систем с параметрами, которые автоматически монтируются при старте системы. Добавим в /etc/fstab монтирование NFS.

Читайте также:  Puppy linux ��� ����

Добавляем в конец файла новую строку

  • 192.168.20.2 — адрес моего сервера NAS
  • :/mnt/GENERAL — папка на сервере
  • /opt/nas — папка на клиенте куда монтируем
  • nfs — тип файловой системы
  • defaults — использовать параметры монтирования по умолчанию
  • 0 — не использовать дамп
  • 0 — не проверять файловую систему при старте программой fsck

Сохраняем файл и перезагружаемся. Если все заполнили верно, после перезагрузки появится подключенная папка с файловой системой NFS.

Размонтирование NFS

При автоматическом монтировании размонтировать NFS папку можно удалив строку в файле /etc/fstab. После перезагрузки папка NFS не будет подключена. Отключить файловую систему без перезагрузки можно командой umount

Если размонтировать не получилось, по причине того что накопитель используется, поможет ключ -l

Ключ -l позволяет размонтировать файловую систему когда она больше не используется. Есть еще ключ -f позволяющий отключить файловую систему если она более не доступна. Однако использовать его нужно с осторожность, т.к. данные могут быть потеряны.

Источник

Mount nfs через fstab в ubuntu 16.04

Всем доброго дня.
Необходимо подключить Windows shara в ubuntu 16.04 через nfs.
Подключаю через /etc/fstab

Команда выполняется бесконечно, пока не оборвёшь, но шара не монтируется.

А, так бы и написал. Это надо уже на стороне сервера смотреть. Порты открыты, NFS-сервер нормально настроен?

Обратите внимание, я подключаю Windows шару.

Что бы это ни было, ты уверен что оно вообще поддерживает протокол NFS?

Необходимо подключить Windows shara
Через cifs подключается без проблем.

при чем тут nfs?

Обратите внимание, я подключаю Windows шару.

И? Ты на Windows NFS поставил, настроил, чтобы по NFS шару подключать? У тебя там FreeNFS или SFU?

NFS на Windows не поставил.
Спасибо за подсказку.
Ветку пока закрывать не буду, позже отпишусь.

У тебя справка есть, что ты не идиот?

На Windows запускаю FreeNFS от имени администратора.
Указываю каталог для шары D:\test
Пробую подключить и получаю сообщение:
mount.nfs: access denied by server while mounting 192.168.1.1:/test

Ну это уже сервер надо настраивать, access denied говорит о том, что либо он ждёт от тебя авторизации, либо такого имени нет, либо ты подключаешься с неразрешённого IP.

Такое имя шары есть.
В списке разрешённых IP ничего не указывал.
А вот как указать данные для авторизации это вопрос.

Ещё могу предоставить такую информацию:

Что тебе мешает прописать в fstab монтирование cifs ?

mount.nfs: portmap query failed: RPC: Authentication error

Отключи авторизацию на стороне сервера, иначе тебе придётся получать на клиенте Kerberos-тикет, а для этого на сервере придётся поднимать AD. Геморроя многовато, не?

P.S. А тебе вообще зачем всё это? 🙂

bdfy, через cifs всё подключается без проблем (Смотрите описание в сомом начале ветки).
Aceler, Microsoft пишет, что отключение авторизации не поможет:
https://support.microsoft.com/en-us/kb/324073#bookmark-2
Ищу Windows Services for UNIX Version 3.5 (sfusetup.msi)
Может у кого есть рабочий линк?

через cifs всё подключается без проблем

Источник

Оцените статью