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

Для установки и сервера, и клиента необходимы одни и те же пакеты nfs-kernel-server и nfs-common

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

Все настройки сервера хранятся в файле /etc/exports . Открываем его на редактирование

и добавляем в конец файла строки вида (строк может быть произвольное количество):

/data –путь к папке, для которой раздается доступ;

192.168.1.1 –IP-адрес, которому раздается доступ к папке(можно указать всю сеть, тогда запись примет вид 192.168.1.0/24)

(rw,no_root_squash,sync) –набор опций, опции могут быть:

rw –чтение запись(может принимать значение ro-только чтение);

no_root_squash –по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;

nohide — NFS автоматически не показывает нелокальные ресурсы (например, примонтированые с помощью mount –bind), эта опция включает отображение таких ресурсов;

sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;

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

Необходимо добавить описание опций.

all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя

subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы. Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию. Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;

В последствии после внесения изменений в файл /etc/exports не обязательно перезапускать сервер, достаточно выполнить:

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

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

Монтирование вручную

Для монтирования папки вручную необходимо выполнить в терминале команду:

Монтирование с записью в fstab

Для большего удобства можно добавить запись с сетевой папкой в fstab. Целесообразно создать точку монтирования сетевой папки в /media, потому что каталоги, созданные там, будут отображаться в Nautilus в левой колонке, монтировать их можно будет одним кликом.

В файл /etc/fstab добавляем подобную запись:

опция «noauto» запрещает автоматическое монтирование сетевого диска при старте системы.

Использование на ноутбуке

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

Монтирование с помощью autofs

Данный способ монтирования позволяет автоматически монтировать папку после обращения к ней в наутилусе (к примеру, через закладки) или в терминале:

и автоматически отмонтировать при отсутствии активности.

Для реализации данного способа необходимо доустановить пакет autofs :

Для настройки autofs в файле /etc/auto.master необходимо добавить строку

Здесь –timeout=60 указывает отмонтировать раздел при отсутствии активности на нём более чем 60 секунд. Создаем в корне файловой системы папку /nfs :

В файле /etc/auto.nfs добавляем строку

-rw,soft,intr,rsize=8192,wsize=8192 – параметры монтирования;

server – папка, которая будет создаваться в каталоге /nfs при монтировании удаленных папок;

192.168.1.2:/path_to_share– IP-адрес и общая папка сервера.

Перезапускаем службу autofs :

Недоступность удаленного сервера

Если сеть с сервером NFS недоступна, возможна большая задержка (по умолчанию 3 минуты) при открытии nautilus, в закладках которого находится примонтированная удаленная папка NFS.
Для решения этой проблемы необходимо уменьшить время ожидания монтирования autofs, для этого в файле /etc/default/autofs необходимо раскомментировать или добавить следующие строки:

#время ожидания ответа от mount

#время ожидания при неудачной попытке монтирования

После этого autofs будет пытаться примонтировать удаленную папку только 10 секунд.

Использование

Проблемы с гибернацией или выключением

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

Для диагностирования смотрим лог dmesg, возможный вывод:

Пакет, являющийся причиной зависания указан в начале строки, следующей после сообщения об ошибке.

Причина №1: пакет NFS

Причиной данной проблемы является скрипт прерывания работы NetworkManager, необходимо запретить его выполнение переименовав его:

Причина №2: пакет updatedb.mloc

updatedb является частью пакета mlocate— удобного пакета для быстрого поиска файлов по системе. К сожалению, версия 0.23.1-1ubuntu2 1) , находящаяся в репозиториях Ubuntu содержит баг, при котором возникает ситуация, когда компьютер не может выключиться или отправиться в гибернацию, когда сервер NFS выключен. Для решения данной проблемы необходимо установить пакет версии 0.23.1-1 из репозитория debian-sid:

Настройка NFS сервера и клиента в Ubuntu 12.04/12.10

Если у Вас дома(или на работе) не один компьютер, то естественным желанием будет объединить их в сеть для использования совместных ресурсов на компьютерах. Ubuntu позволяет сделать это разными способами — SMB (Server Message Block) с использованием Samba (об этом способе напишу в следующий раз) и с использованием NFS (network file system). Если у вас в сети компьютеры работают под управлением разных операционных систем (Linux, Windows), то целесообразнее использовать Samba. Но если все компьютеры работают под Ubuntu, то имеет смысл поставить NFS

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

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

Конечно, в сети достаточно много информации по nfs, но приходится перелопачивать множество сайтов в поисках «подводных камней», поэтому я решил собрать свой опыт в данной статье.

Устанавливаем необходимые пакеты клиента (nfs-common) и сервера (nfs-kernel-server). В терминале выполняем следующую команду:

sudo apt-get install nfs-kernel-server nfs-common portmap

Настраиваем NFS-сервер.

Для примера мы предоставим общий доступ к папкам /common, /common1 и /common2, находящимся в домашней папке /user пользователя user, под чьим именем мы вошли в систему на компьютере с адресом 192.168.0.1.

Условия использования папок (для примера):

  • /common — доступ на запись/чтение для всех компьютеров в локальной сети (из любой подсети);
  • /common1 — доступ на чтение компьютеру с адресом 192.168.0.100, остальным доступ запрещен;
  • /common2 — доступ на запись/чтение всем компьютерам с диапазона адресов 192.168.0.1 — 192.168.0.255 кроме компьютера с адресом 192.168.0.200.

Все данные о совместном использовании папок хранятся в файле /etc/exports. Выполняем в терминале команду:

sudo gedit /etc/exports

В появившемся редакторе записываем:

/home/user/common2 192.168.0.1/24(rw,sync) 192.168.0.200(noaccess)

Обратите внимание, что:

  • записывается полный путь к папке для совместного использования от самого корня;
  • пробелов между адресом компьютера и опциями монтирования нет!

Примечание на счет пробелов:

В этом случае доступ к папке /home/user/common1 получит компьютер с адресом 192.168.0.100 с правами на чтение/запись, остальные доступ не получат.

/home/user/common1 192.168.0.100 (rw,async)

В этом случае доступ к папке /home/user/common1 получит компьютер с адресом 192.168.0.100 с правами на чтение, остальные компьютеры получат доступ с правами на чтение/запись!

ro (rw) — Разрешает только запросы на чтение ( чтение/ запись).

subtree_check (no_subtree_check) — Если экспортируется подкаталог фаловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.

sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря информации.

wdelay (no_wdelay) — указывает серверу задерживать выполнение запросов на запись, если ожидается последующий запрос на запись, записывая данные более большими блоками. Это повышает производительность при отправке больших очередей команд на запись. no_wdelay указывает не откладывать выполнение команды на запись, что может быть полезно, если сервер получает большое количество команд не связанных друг с другом.

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

sudo /etc/init.d/nfs-kernel-server restart

в дальнейшем при изменении конфигурационного файла будет достаточно перечитать конфигурационный файл:

sudo exportfs -a

Настройка сервера закончена.

Настройка КЛИЕНТА

Установка и настройка NFS-клиента.

Установка (если мы не ставили сервер, в противном случае клиент уже установлен):

sudo apt-get install portmap nfs-common

Для начала создадим папки, в которые будут монтироваться сетевые ресурсы. Пусть они в нашем примере монтируются в домашнюю папку пользователя user2, в которой мы создадим папки общих ресурсов: /net/disk1, /net/disk2, /net/disk3. Для этого в терминале выполним команды:

mkdir net
cd /net
mkdir disk1
mkdir disk2
mkdir disk3

То же самое можно сделать просто в Nautilus.

Монтирование сетевых ресурсов возможно сделать как автоматически, так и вручную.

Для ручного монтирования в терминале выполняем команды:

sudo mount -t nfs -o rw,hard,intr 192.168.0.1:/home/user/common

/net/disk1
sudo mount -t nfs -o ro,soft,intr 192.168.0.1:/home/user/common1

/net/disk2
sudo mount -t nfs -o rw,soft,intr 192.168.0.1:/home/user/common2

Примечание:Опция hard жестко привязывает папку на клиенте к серверу и если сервер отвалится, то может зависнуть и ваш компьютер. Опция soft, как понятно из её названия, не такая категоричная. Полный спискок опций Вы можете посмотреть по команде man nfs, набранной в терминале.

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

Для автоматического монтирования редактируем файл /etc/fstab

sudo gedit /etc/fstab

В конец открытого файла добавляем наши данные

192.168.0.1:/home/user/common /home/user2/net/disk1 nfs defaults 0 0
192.168.0.1:/home/user/common1 /home/user2/net/disk2 nfs defaults 0 0
192.168.0.1:/home/user/common2 /home/user2/net/disk3 nfs defaults 0 0

Выполним монтирование дисков:

Теперь наши сетевые диски видны в проводнике как простые папки.

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

Вот настроили вы у себя на сервере Deluge для работы с torrent сетями, а что дальше? Как посмотреть фильмы и прослушать музыкальные файлы, которые скачались? Неужели нужно записывать их на диски и переносить их таким образом на компьютер с GUI? Или придётся копировать их по медленному SFTP? Нет! На помощь приходит NFS! Нет, это не серия гоночных игр, а Network File System (Сетевая Файловая Система).
Network File System (NFS) — это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными. Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине и доступны для других машин в сети. NFS — это клиент-серверное приложение. То есть в системе пользователя должен быть установлен NFS-клиент, а на компьютерах, которые предоставляют свое дисковое пространство — NFS-сервер.

Установка и настройка NFS-сервера (192.168.1.2)

1. Устанавливаем. Соединившись по SSH с компьютером сервером или же просто в его консоли вводим:

Это установит NFS-сервер, а также необходимый пакет portmap.

2. Настраиваем. Для настройки списка дирректорий которые мы хотим открыть и списка кому мы хотим их открыть отредактируем файл /etc/exports:

В указанном выше примере мы открыли на сервере директорию /data и её поддиректории в совместное пользование всем компьютерам с IP: 192.168.1.1 — 192.168.1.255 с правами чтения и записи.

Этот пример делает доступной домашнюю директорию пользователя serg в режиме только чтение для компьютера с IP 192.168.1.34. Все остальные компьютеры сети к этой директории доступа иметь не будут.

  • ro — права только на чтение. Можно и не указывать, так как она установлена по умолчанию;
  • rw — дает клиентам право на запись;
  • no_root_squash — по-умолчанию пользователь root на клиентской машине не будет иметь доступа к открытым директориям на сервере. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
  • noaccess — запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.

Теперь нужно перезапустить nfs-kernel-server:

Если после этого вы захотите поменять что-нибудь в файле /etc/exports, то для того, чтобы изменения вступили в силу, достаточно выполнить следующую команду:

Всё. NFS-сервер установлен и настроен. Можно переходить к NFS клиенту.

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

1. Установка. Выполняем в терминале компьютера, который будет подключаться следующее:

2. Настройка. Для начала создадим директорию в которую будет монтироваться удалённая папка:

Монтировать можно двумя способами — каждый раз вручную или прописав опции монтирования в файл /etc/fstab.

Способ 1. Монтирование вручную
Создаём на рабочем столе или в какой-либо другой папке текстовый файл:

Внимание! Вместо 192.168.1.2:/data впишите IP или имя сервера и путь к директории совместного пользования. Опции монтирования можно изменить.

Делаем его исполняемым:

Теперь когда необходимо присоединиться к серверу я выполняю этот сценарий в терминале для того чтобы можно было ввести пароль для sudo.

Способ 2. Добавление в /etc/fstab
Открываем /etc/fstab:

И дописываем строчку в конце файла:

Внимание! Вместо 192.168.1.2:/data впишите IP или имя сервера и путь к директории совместного пользования. Опции монтирования можно изменить.

Опция hard жёстко привязывает дирректорию на клиенте к серверу и если сервер отвалится, то может зависнуть и ваш компьютер. Опция soft, как понятно из её названия, не такая категоричная.

После сохранения файла можно монтировать удалённую папку:

Если все прошло успешно, то набрав в терминале:

вы увидите содержимое папки /data, находящейся на NFS-сервере. Можете проверить скорость работы и запустить, например, фильм с этого раздела.

Установка и настройка NFS сервера и NFS клиента: 13 комментариев

Вижу статья полезная. Но тут возник вопросик. Я бы с удовольствием использовал бы этот NFS для того чтобы обмениваться файлами с домашним сервером, и при этом сидеть на работе. А вопрос вот в чем… На работе у меня Win_XP. Как в винде настроить сетевой диск ? Это возможно?

На сколько мне известно, этот протокол поддерживается исключительно Linux/FreBSD системами. Для работы в смешанных сетях Linux/Windows нужно использовать Samba.

Zeboton почти прав. Полноценно поддерживается только в *nix -подобных системах. Но в интернете можно найти неплохие бесплатные клиенты и для Windows. Я пробовал на Windows Vista, вполне нормально и стабильно работает. Названия только не помню…
Update: Кстати и сама Microsoft предоставляет инструменты для работы с Unix сервисами, например этот http://www.microsoft.com/downloads/details.aspx?family > Update2: А вот похоже тот самый бесплатный клиент http://www.brothersoft.com/nfs-client-and-server-for-windows-pronfs-download-4041.html

Softovick
Спасибо за ссылочки, очень интересно.
Но тут же хочется развить мысль. Если нам нужен протокол для обмена файлами, да еще чтобы он был универсальным для все ОС…. Может для этого случая FTP есть идеальное решение? Как Вы думаете?

Для доступа к одному компьютеру извне можно FTP использовать, а для доступа к компьютерам в локальной сети Samba удобнее получается. Если же нужно иметь доступ к домашней локальной сети из офиса, то, мне кажется, лучше SFTP (через SSH) использовать, правда скорость этого протокола не очень большая.

При ручном монтировании на эту строку
sudo mount -t nfs -o ro,soft,intr 192.168.1.2:/data

/data
получил ругань насчёт неправильных опций монтирования.
В таком варианте
sudo mount -t nfs ro,soft,intr 192.168.1.2:/data

ИТ База знаний

ShareIT — поделись знаниями!

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Серверные решения

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Популярное и похожее

Пошаговый ввод в домен Windows 10

Погружение в Iptables – теория и настройка

Chef — управление сетью. Плюсы и минусы

PHPUnit тестирование – проще простого

Поднимаем NFS сервер на Ubuntu

Сетевые файловые системы

4 минуты чтения

Рассказываем как быстро и просто поднять свой NFS сервер на Ubuntu Linux Server 14-04.1, а также разберёмся с принципами работы протокола NFS и рассмотрим теорию.

Аббревиатура NFS расшифровывается как Need for Speed — Network File System. Это протокол для доступа к распределённым сетевым файловым системам, с помощью которого можно подмонтировать удалённые директории к своему серверу. Это позволяет использовать дисковое пространство другого сервера для хранения файлов и регулярно производить запись данных на него с нескольких серверов.

Протокол имеет клиент-серверную модель, то есть один сервер (ещё его называют “шара” от слова share), с установленным пакетом NFS, будет обеспечивать доступ к своим каталогам и файлам, а клиентские компьютеры будут подключаться к нему по сети. Закрепим прочитанное схемкой:

Обращения к серверу NFS осуществляются в виде пакетов протокола RPC (Remote Call Procedure), который позволяет выполнить различные функции или процедуры в другом сетевом пространстве, то есть на удалённом сервере.

Авторизация пользователей, которые подключаются к серверу осуществляется по IP-адресу, а также по специальным идентификаторам пользователя UID и группы GID. Это не лучший способ относительно безопасности хранимых файлов, в сравнении с классической моделью «логин/пароль». Зато, благодаря такой архитектуре и тому, что NFS использовал протокол UDP без установления сессии, он практически невосприимчив к сбоям сети и самих клиентских компьютеров. Так, при каком-либо сбое, передача файла просто приостановится, а когда связь будет налажена, то передача возобновиться без необходимости какой-либо перенастройки.

Думаю, с теорией понятно, так что давайте переходить к практике. Как было сказано, все настройки будет проводить на Ubuntu 14.04.1

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

Итак, скачиваем пакет nfs-kernel-server , с помощью которого мы сможем раздать доступ (“расшарить”) директории. Для этого на будущем NFS сервере вводим команды:

Теперь создаём собственно директорию к которой хотим раздать доступ. Стоит отметить, что можно также “расшарить” уже имеющиеся на сервере директории, но мы создадим новую:

Далее мы должны сделать так, чтобы владельцем директории /var/nfs и группе, к которой он принадлежит стали все пользователи в нашей системе. Для этого вводим на сервере команду:

Вводите эту команду только для тех директорий, которые создали сами, не надо вводить её для уже имеющихся директорий, например /home .

Следующим шагом необходимо изменить конфигурацию самого NFS, она лежит в файле /etc/exports , открываем его для редактирования любимым редактором:

Перед вами откроется конфигурационный файл с закомментированными строками, которые содержат примеры настройки для разных версий NFS.

Закомментированные – это те, в начале которых стоит символ #, и это значит, что параметры, указанные в них, не имеют силы.

Нам необходимо внести в этот файл следующие не закомментированные строки:

  • /var/nfs — Директория, которую мы хотим расшарить
  • 10.10.0.10 — IP-адрес и маска клиентского компьютера, которому нужно раздать доступ к директории
  • rw — Разрешает клиенту читать (r) и записывать (w) файлы в директории
  • sync — Этот параметр заставляет NFS записывать изменения на диск перед ответом клиенту.
  • no_subtree_check — Данная опция отключает проверку того, что пользователь обращается именно к файлу в определённом подкаталоге. Если это проверка включена, то могут возникнуть проблемы, когда, например, название файла или подкаталога было изменено и пользователь попробует к ним обратиться.

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

После выполненных действий расшаренные директории должны стать доступными для доступа с клиентов.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

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

С протоколами передачи данных знаком не каждый. А вот соединить свои компьютеры в одну сеть или использовать сервер для хранения файлов хотели бы многие. Один из способов это осуществить: NFS. Как настроить NFS сервер в Ubuntu — читайте далее.

Правильно настроив NFS можно объединить в одну сеть компьютеры на разных ОС.

Что такое NFS?

Network File System — протокол сетевого доступа к файлам. Как водится, состоит из двух частей. Одна — клиентская, которая расположена на компьютере, с которого просматривают удалённые данные. Другая — серверная — расположена на компьютере, где эти данные хранятся. Довольно удобно использовать дополнительное дисковое пространство, особенно в локальной сети. А если речь идёт о каких-то корпоративных ПК, то это просто необходимо.

Чем отличается?

Сегодня существует большое число протоколов и самого разного программного обеспечения, которое выполняет те же самые функции. Чем выделяется NFS?

  • Возможность соединения в одну сеть компьютеров на разных операционных системах. Часто ОС Windows удобно соединить по NFS с Unix-системой, например, Ubuntu. Для этих же целей существует и применяется Samba, но NFS легче, проще и быстрее этой программы, поскольку реализован на уровне ядра. Поэтому настроить доступ через него, как правило, будет проще.
  • NFS предоставляет прозрачный доступ к файлам. Это означает, что все удалённые файлы воспроизводятся точно так же, как и локальные. Программы не надо апгрейдить, чтобы воспроизвести любой файл, находящийся на сервере.
  • NFS отправляет только запрашиваемую часть файла, а не весь файл.

Устанавливать Network File System для полноценной работы необходимо, как минимум, на два компьютера: сервер и клиент. Естественно, новичку больше всего попотеть придётся над серверной частью, поскольку именно там необходимо «расшаривать» (открывать доступ) папки. Однако всё это выполняется довольно легко.

Как и большинство протоколов передачи данных, NFS совсем не молод. Разработан он был в 1984 году и предназначался для UNIX-систем. Это и сейчас главная роль NFS, однако многие обнаружили, что при помощи его очень удобно соединять Windows-компьютеры с линуксовыми. Кроме того, NFS отлично подходит для воспроизведения мультимедийного контента по локальной домашней сети. Samba в этой роли часто подвисает и подтормаживает.

Установка серверной части NFS

Серверную часть протокола мы будем ставить на Ubuntu 16.04. Естественно, если у вас стоит редакция Server, то процесс никоим образом не отличается. Просто в традиционной версии Убунту некоторые действия можно выполнить при помощи графического интерфейса.

Устанавливаем программу. Для этого можно воспользоваться центром загрузки приложений, а можно просто ввести команду:

sudo apt install nfs-kernel-server

После этого нелишним будет проверить корректность установки. Делать это не обязательно, но мы всё же проверим. Вводим команду:

Порт везде должен быть 2049.

Теперь проверяем, поддерживает ли ядро NFS. Для этого вводим:

Полученное значение должно выглядеть так: nodev nfsd

Это означает, что всё функционирует правильно. Если нет, то вводим команду:

При помощи её мы ставим модуль ядра самостоятельно.

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

Итак, серверную часть мы установили, осталось правильно её настроить и перейти к клиентской.

Настройка NFS в Ubuntu заключает в себе расшаривание определённых папок.

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

  • rw — reading and writing этот параметр разрешает чтение и запись файлов в папке.
  • ro — reading only — разрешает только чтение папки.
  • sync (по умолчанию) — параметр обеспечивает надёжность передачи. Если включен он, то нельзя будет одновременно передавать несколько файлов или на разные компьютеры. Эта настройка не даст отвечать на другие запросы. Предотвращает утерю данных, но передача может идти медленнее.
  • async — обратный предыдущему параметр. Передача идёт быстрее, но возникает риск потери информации.
  • secure — опция разрешает использовать только порты, номер которых ниже 1024. Включена по умолчанию.
  • insecure — разрешает использование любых портов.
  • nohide — если вы монтируете несколько директорий, среди которых есть вложенные, то вложенные в отличие от родительской будут отображаться как пустые. Исправить это поможет параметр
  • anonuid — указывает uid для анонимов. Это специальный идентификатор пользователя.
  • anongid — указывает gid для анонимов. GID (Group ID) — ещё один идентификатор пользователя.
  • no_subtree_check — функция отключает контроль поддерева. Дело в том, что без неё NFS дополнительно проверяет, что пользователи обращаются только в нужные разделы каталога. Это замедляет работу. Параметр позволяет ускорить её, но понижает безопасность.

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

Создадим новую папку. Можно использовать и новую. Наша папка будет /var/network.

Теперь необходимо добавить эту папку в файл /etc/exports. Там хранятся все файлы и папки с открытым сетевым доступом. Запись должна выглядеть так:

192.168.1.1 — это IP, по которому мы осуществляем передачу. Указывать его обязательно.

Обновляем таблицу экспорта:

Теперь попробуем получить доступ к папке со стороны клиента.

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

На Убунту подключить настроенный сервер не составит труда. Делается это всего за пару команд.

Устанавливаем специальный клиентский пакет:

Дальше просто пользуемся командой:

Сетевая папка подключена. С помощью df можно проверить все подключенные сетевые папки:

Также можно проверить свой уровень доступа специальной командой:

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

Почти везде используется команда mount. Она отвечает за процесс монтирования, то есть, подготовки пространства на жёстком диске для использования его операционной системой. Звучит сложно, но если упростить, получится, что мы просто перекидываем сетевые файлы на наш компьютер в новоявленную папку. Здесь она называется /mnt/.

С Виндой, как правило, всё складывается куда сложнее. NFS клиент без проблем можно запустить на всех серверных Windows. Из стандартных он присутствует на:

  • Windows 7 Ultimate/Enterprise
  • Windows 8/8.1 Enterprise
  • Windows 10 Enterprise

Больше нигде не найти. Если у вас одна из этих версий, делаем следующее:

  1. Открываем меню «Программы и компоненты».
  2. Жмём «Добавление компонентов».
  3. Находим там NFS и ставим только «Клиент для NFS», другой компонент нам не нужен.

После подключения монтируется всё такой же командой:

Размонтировать можно следующим образом:

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

А что делать, если клиента для NFS на компьютере нет? Можно попробовать загрузить софт через сайт Microsoft или со сторонних ресурсов. Возможно, что здесь понадобятся другие команды или действия.

Теперь у вас появились базовые представления о том, как можно использовать NFC и провести простейшую настройку. Этих знаний хватит, чтобы наладить доступ с одного компьютера к другому. Причём в роли клиента может выступить и ПК на Windows.

Настройка nfs в Ubuntu 16.04

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

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

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

Как уже было сказано, 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

На клиентском компьютере вам нужно установить пакет 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 на анонимные
  • all_squash — превращать все запросы в анонимные
  • anonuid и anongid — указывает uid и gid для анонимного пользователя.

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

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

sudo exportfs -a

Вот и все, открытие шары nfs в ubuntu 16.04 завершено. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.

Подключение 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 16.04, как видите, все делается очень просто и прозрачно. Подключение NFS шары выполняется в несколько кликов, с помощью стандартных команд, а открытие шары nfs в ubuntu 16.04 ненамного сложнее подключения. Если у вас остались вопросы, пишите в комментариях!

Debian / Ubuntu Linux: Настройка NFS v4 файловый сервер

Как установить и настроить NFS 4 для серверных операционных систем Debian или Ubuntu Linux с использованием проверки подлинности на основе хоста?

Вы должны установить следующие пакеты на сервере Debian / Ubuntu Linux:

  1. nfs-kernel-server: Linux ядро NFS сервера версии 3 и 4.
  2. portmap: назначения портов служб RPC.
  3. nfs-common: NFS поддержка файлов общие для клиента и сервера.Он также включает в себя следующие библиотеки:
    1. liblockfile1 — NFS-safe замок библиотека, включает dotlockfile программу.
    2. libnfsidmap2 — NFS idmapping библиотека.

№ 1: Установка NFSv4 сервера

Откройте терминал командной строки (выберите Приложения> Стандартные> Терминал) и введите следующие команды. Вы также можете войти, используя команду SSH. Переключитесь на суперпользователя, введя su — и введя пароль суперпользователя, когда будет предложено. Введите команду apt-get update && apt-get upgrade для обновления информации о пакетах, запросив у настроенных репозиториев и затем обновить всю систему:

Введите следующую команду, чтобы установить пакеты NFSv4 сервера:

№ 2: Настройка Portmap

Для редактирования /etc/default/portmap, введите:

Убедитесь, что все OPTIONS будут установлены следующим образом, так ка он может принимать входящие подключения LAN:

Сохраните и закройте файл. Отредактируйте /etc/hosts.allow и добавте список хостов (IP адрес или подсеть), которым разрешено получать доступ к системе с использованием Portmap, введите:

Например разрешить 192.168.1.0/24 для доступа к Portmap:

Сохраните и закройте файл. TCP Wrapper работают аналогично спискам доступа (Access Control List, ACL) на основе имён хостов, используется для фильтрации доступа к сети Интернет и / или LAN.

№ 3: Настройка idmapd

Rpc.idmapd является NFS 4 ID отображение имя демона. Это обеспечивает функциональность для клиента и сервера NFSv4, к которому он общается с помощью upcalls, переводя ID пользователей и групп в имена, и наоборот. Для редактирования /etc/default/nfs-common, введите:

Запустите idmapd демон, для NFSv4:

Сохраните и закройте файл. По умолчанию файл /etc/idmapd.conf:

Я собираюсь использовать значения по умолчанию. Но, вы можете настроить отображение согласно вашим потребностям. Смотреть idmapd.conf (5) справочную страницу для получения дополнительной информации.

№ 4: Настройка NFS

Сначала создайте каталог, используя команду MKDIR , введите:

Отредактируйте файл /etc/exports установите список контроля доступа для файловых систем, которые экспортируется клиентам NFS, введите

Добавьте следующую конфигурацию в файл:

Сохраните и закройте файл. Значение параметров:

  1. /exports: каталог установленный в качестве корневого для монтирования систмемы. Вы можете установить другие тома с помощью команды монтирования.
  2. 192.168.1.0/255.255.255.0: Только клиенты в 192.168.1.0/24 имеют доступ к NFSv4 серверу.
  3. RW: Разрешить пользователям читать и писать запросы на этом томе NFS.
  4. no_root_squash: Позволяет пользотелю root (на стороне клиента) иметь доверенный полный доступ к разделу. Эта опция в основном полезна для бездисковых клиентов.
  5. no_subtree_check: Если монтируется только часть тома, то сервер будет выполнять проверку принадлежности файла запрошенного клиентом, именно к той части с тома которая примонтирована. Это замедляет передачу данных, по этому зачастую данная опция включена в список параметров.
  6. crossmnt: Этот параметр похож на noh >В /exports выступать в качестве корня псевдо файловой системы для экспорта. Вам нужно смонтировать все необходимые файловые системы в этом каталоге. Например, вы можете поделиться /home, /sales, /usr каталогами в /exports с помощью команды MKDIR:

Интересные и полезные заметки связанные с ОС Linux

четверг, 7 мая 2009 г.

Установка и настройка NFS сервера и NFS клиента в [K]Ubuntu.

Установка и настройка NFS-сервера.

Устанавливаем NFS-сервер:

Чтобы изменения вступили в силу без перезапуска демона, выполните команду:

Если вы хотите сделать ваш разделённый NFS каталог открытым и с правом записи, вы можете использовать опцию all_squash в комбинации с опциями anonuid и anongid.

Например, чтобы установить права для пользователя ‘nobody’ в группе ‘nobody’, вы можете сделать следующее:

Это также означает, что если вы хотите разрешить доступ к указанной директории, nobody.nobody должен быть владельцем разделённой директории:

/etc/hosts.allow

Чтобы разрешить доступ по сети к nfs серверу для IP 192.168.0.1, вам надо добавить следующие строчки в /etc/hosts.allow.

Чтобы все машины могли иметь доступ, напишите в файл /etc/hosts.allow следующие строчки:

Для запуска nfs сервера, вам требуется запустить несколько демонов:

Вы можете добавить эти демоны в список в файл /etc/rc.conf, чтобы они запускались при загрузке системы.

Теперь нужно перезапустить nfs-kernel-server:

Все. NFS-сервер установлен и настроен. Можно переходить к настройке NFS клиента.

Установка и настройка NFS-клиента.

Файловые системы NFS могут быть добавлены в файл /etc/fstab так же, как и локальные, но существует некоторые отличия: тип файловой системы должен быть nfs и значения dump и fsck order (последние две записи в строчке) должны быть равны 0.

и в конце дописываем следующую строку:

Опции монтирования можно изменить.

Записав и сохранив изменения, можно монтировать:

Если все прошло успешно, то набрав в терминале

вы увидете содержимое папки /data, находящейся на NFS-сервере. Можете проверить скорость работы и запустить, например, фильм с этого раздела.

Монтирование удалённых директорий

Монтирование удалённых каталогов происходит так же, как и локальных (предположим, что точка монтирование /mnt/home существует):

Отмонтировать можно так же, как и локальный каталог:

soft или hard монтирование

nfs клиент может обрабатывать сбои сервера в работе. Есть две опции монтирования: hard и soft.

Если запрос на получение файла не выполнен, NFS клиент сообщит об ошибке процессу, который пытается получить доступ к файлу. Некоторые программы умеют это обрабатывать, большая же часть — нет. Разработчики nfs не рекомендуют использовать эту опцию; это прямой путь к повреждённым данным и потере информации.

Программа, осуществляющая доступ к файлу повиснет при смерти сервера. Процесс не может быть прерван или убит (только «sure kill»), пока вы не укажете опцию intr. Когда NFS сервер вернётся к работе, программа продолжит работу с того места, где остановилась. Разработчики NFS рекомендуют использование опций hard,intr со всеми монтируемые NFS файловые системы.

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

дело было вечером — делать было нечего (точнее дело было ночью)

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

сервер — ubuntu 9.04 desktop там торрнент клиент крутиться ну и немного софта для просмотра видео ну и много HDD

рабочая станция тут уже как месяц тоже ubuntu 9.04 desktop естественно немного винчестера и опять торрнет только уже для часто меняющихся загрузок ну и торрент естественно скачивает на серверную машину

сеть — 100 мегабит инет и 1G локально (сервер-раб.станции)

немного погуглив нашел немного (гуглил русский сегмент инета), но того что нашел я посчитал будет предостаточно. Так что начинаем (статья писалась в процессе установки-настройки)

Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports:

В приведенном ниже примере я выделил директорию /data (директория с данными на сервере) в совместное пользование всем компьютерам с IP — 192.168.0.1 — 192.168.3.255 с правами чтения и записи:

домашняя директория пользователя samnick стала доступной в режиме только чтение для компьютера с IP 192.168.2.96. Все остальные компьютеры сети к этому разделу доступа не имеют.

  • ro — права только на чтение. Можно и не указывать, так как она установлена по умолчанию.
  • rw — дает клиентам право на запись.
  • no_root_squash — по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать.
  • noaccess — запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.

О других опция можно почитать тут:

про /22 (маску подсети) читаем тут:

http://ru.wikipedia.org/wiki/CIDR сам оч чясто смотрю (запомнить никак не могу)

Теперь нужно перезапустить дабы все заработало nfs-kernel-server:

в дальнейшем при изменении конфигурационного файла будет достаточно перечитать конфигурационный файл тут все просто

все радуемся сервер подняли и настроили теперь беремся за клиента

Установка и настройка NFS-клиента.

создаем точку монтирования (папку к которой будет монтирована папка с сервера)

я лично предпочитаю все монтировать в каталог /media/

так как каталог системный то нам необходимы права root`a

способов монтирования несколько одн это постоянно вручную (то есть после каждой перезагрузки) а второй это автоматически

первый вариант я допишу чуть позднее

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

для этого отредактируем файл /etc/fstab (в нем описаны файловые системы, что куда и как монтировать)

для прописывания нашего сетевого диска просто допишем в конец файла наши данные

  • 192.168.2.98:/hard -адрес_вашего_сервера:папака_на_вашем_сервере
  • /media/hard -/папка_куда_будем_монтировать
  • nfs rw,hard,intr 0 -опции монтирования (в подробности вдаваться не будем)

после того как записали свои данные сохраняем файл конфигурации монтируем нашу NFS

все готово теперь мы можем лицезреть наш диск в проводнике как простой физический диск

Install NFS Server and Client on Ubuntu 18.04 LTS

NFS or Network File System is a distributed file system protocol, originally built but the Sun Microsystems. Through NFS, you can allow a system to share directories and files with others over a network. In NFS file sharing, users and even programs can access information on remote systems almost as if they were residing on a local machine.

NFS is operated in a client-server environment where the server is responsible for managing the authentication, authorization, and management of clients, as well as all the data shared within a specific file system. Upon authorization, any number of clients can access the shared data as if it was present in their internal storage. Setting up an NFS server on your Ubuntu system is very simple. All you need to do is make some necessary installations and configurations, both on the server and client machines and you are good to go.

In this article, we will explain step by step how to set up an NFS server and client which will enable you to share files from one Ubuntu system to the other.

We have run the commands and procedures described in this article on a Ubuntu 18.04 LTS system. Since we are using the Ubuntu command line, the Terminal, to perform all the operations; you can open it either through the system dash or the Ctrl+Alt+T shortcut.

Setting up the host server

In order to set up the host system to share directories, we will need to install the NFS Kernel server on it, and then create and export the directories that we want the client systems to access. Please follow these steps in order to smoothly set up the host side:

Step 1: Install NFS Kernel Server

Before installing the NFS Kernel server, we need to update our system’s repository index with that of the Internet through the following apt command as sudo:

The above command lets us install the latest available version of a software through the Ubuntu repositories.

Now, run the following command in order to install the NFS Kernel Server on your system:

The system will prompt you with a Y/n option to confirm if you want to continue with the installation. Please enter Y and then hit Enter to continue, after which the software will be successfully installed on your system.

Step 2: Create the Export Directory

The directory that we want to share with the client system is called an export directory. You can name it according to your choice; here, we are creating an export directory by the name of “sharedfolder” in our system’s mnt(mount) directory.

Use the following command, by specifying a mount folder name according to your need, through the following command as root:

As we want all clients to access the directory, we will remove restrictive permissions of the export folder through the following commands:

Now all users from all groups on the client system will be able to access our “sharedfolder”.

You can create as many sub-folders in the export folder as you want, for the client to access.

Step 3: Assign server access to client(s) through NFS export file

After creating the export folder, we will need to provide the clients the permission to access the host server machine. This permission is defined through the exports file located in your system’s /etc folder. Please use the following command in order to open this file through the Nano editor:

Editing this file needs root access; therefore you will need to use sudo with your command. You can also open the file in any of your personal favorite text editors.

Once you have opened the file, you can allow access to:

  • A single client by adding the following line in the file:
  • Multiple clients by adding the following lines in the file:
  • Multiple clients, by specifying an entire subnet that the clients belong to:

In this example, we are specifying an entire subnet of all the clients we want to grant access to our export folder (sharedfolder):

Add the required line(s) to your exports file and then save it by hitting Ctrl+X, entering Y, and then hitting Enter.

The permissions “rw,sync,no_subtree_check” permissions defined in this file mean that the client(s) can perform:

  • rw: read and write operations
  • sync: write any change to the disc before applying it
  • no_subtree_check: prevent subtree checking

Step 4: Export the shared directory

After making all the above configurations in the host system, now is the time to export the shared directory through the following command as sudo:

Finally, in order to make all the configurations take effect, restart the NFS Kernel server as follows:

Step 5: Open firewall for the client (s)

An important step is to verify that the server’s firewall is open to the clients so that they can access the shared content. The following command will configure the firewall to give access to clients through NFS:

In our example, we are giving access to an entire subnet of clients machines through the following command:

Now when you check the status of your Ubuntu firewall through the following command, you will be able to view the Action status as “Allow” for the client’s IP.

Your host server is now ready to export the shared folder to the specified client(s) through the NFS Kernel Server.

Configuring the Client Machine

Now is the time to make some simple configurations to the client machine, so that the shared folder from the host can be mounted to the client and then accessed smoothly.

Step 1: Install NFS Common

Before installing the NFS Common application, we need to update our system’s repository index with that of the Internet through the following apt command as sudo:

The above command lets us install the latest available version of a software through the Ubuntu repositories.

Now, run the following command in order to install the NFS Common client on your system:

The system will prompt you with a Y/n option to confirm if you want to continue with the installation. Please enter Y and then hit Enter to continue, after which the software will be successfully installed on your system.

Step 2: Create a mount point for the NFS host’s shared folder

Your client’s system needs a directory where all the content shared by the host server in the export folder can be accessed. You can create this folder anywhere on your system. We are creating a mount folder in the mnt directory of our client’s machine:

Step 3: Mount the shared directory on the client

The folder that you created in the above step is like any other folder on your system unless you mount the shared directory from your host to this newly created folder.

Use the following command in order to mount the shared folder from the host to a mount folder on the client:

In our example, we are running the following command to export our “sharedfolder” from the server to the mount folder “sharedfolder_client” on the client machine:

Step 4: Test the connection

Please create or save a file in the export folder of the NFS host server. Now, open the mount folder on the client machine; you should be able to view the same file shared and accessible in this folder.

Conclusion

Setting up an NFS client-server environment on Ubuntu systems is an easy task. Through this article, you learned how to install the required NFS packages on both the server and the clients. You also learned how to configure the NFS server and client machines so that folders can be shared and then accessed smoothly without any firewall or permissions-related glitch. Now you can easily share content from one Ubuntu system to the other using the NFS protocol.

Ссылка на основную публикацию