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

12 июля 2009
Рубрика: Linux, Заметки
Теги: , ,

Zeboton

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

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

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

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

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

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

sudo nano /etc/exports
/data 192.168.1.1/24(rw,no_root_squash,async)

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

Ещё пример:

/home/serg/ 192.168.1.34(ro,async)

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

Доступные опции:

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

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

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

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

sudo exportfs -a

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

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

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

sudo apt-get install portmap nfs-common

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

cd ~
mkdir data

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

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

nano ~/Рабочий\ стол/nfs-server-connect

Пишем в него:

#! /bin/bash
sudo mount -t nfs -o ro,soft,intr 192.168.1.2:/data ~/data

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

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

chmod +x ~/Рабочий\ стол/nfs-server-connect

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

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

sudo nano /etc/fstab

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

192.168.1.2:/data ~/data nfs rw,hard,intr 0 0

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

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

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

sudo mount ~/data

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

cd ~/data
ls -la

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

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

/data 192.168.1.1/24(rw,no_root_squash,async)

13 комментариев для “Установка и настройка NFS сервера и NFS клиента”

  1. Gurom20 июля 2009 ~ 01:54

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

  2. Zeboton20 июля 2009 ~ 05:31

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

  3. Softovick20 июля 2009 ~ 08:00

    Zeboton почти прав. Полноценно поддерживается только в *nix -подобных системах. Но в интернете можно найти неплохие бесплатные клиенты и для Windows. Я пробовал на Windows Vista, вполне нормально и стабильно работает. Названия только не помню…
    Update: Кстати и сама Microsoft предоставляет инструменты для работы с Unix сервисами, например этот http://www.microsoft.com/downloads/details.aspx?familyid=896C9688-601B-44F1-81A4-02878FF11778&displaylang=en .
    Update2: А вот похоже тот самый бесплатный клиент http://www.brothersoft.com/nfs-client-and-server-for-windows-pronfs-download-4041.html

  4. Gurom20 июля 2009 ~ 10:48

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

  5. Zeboton21 июля 2009 ~ 04:23

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

  6. sensor_ua10 января 2010 ~ 15:08

    При ручном монтировании на эту строку
    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 ~/data
    заработало

  7. Denisiuk23 января 2010 ~ 00:31

    Используйте sshfs http://aidsoid.org/?p=177

  8. Our life is just for fun » Blog Archive » Настройка NFS: сервер на FreeBSD, клиент на Ubuntu18 марта 2010 ~ 16:38

    […] Больше информации можно прочитать на: FreeBSD 8.0 Handbook Я и Ubuntu» […]

  9. user4 января 2013 ~ 02:48

    при ручном монтировании все понтируется
    mount //192.168.1.10/my /media/my -o username=user,password=pass
    showmount -e 192.168.1.10 ничего не дает и соответственно монтировать через /etc/fstab не дает
    сервер NFS на NASe
    подскажите че делать?

  10. Zeboton4 января 2013 ~ 18:06

    Я, если честно, не понял проблемы. Если при ручном запуске всё монтируется, то и при корректной прописке в fstab всё должно работать.

  11. Tiseua14 января 2013 ~ 22:11

    Господа,кто может помочь с монтированием? Куда я только не обращался… Может, хоть здесь кто-то откликнется?

  12. Zeboton19 января 2013 ~ 10:33

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

  13. aprogrammer6 ноября 2013 ~ 17:19

    Отличная статья. Настраивал по этой http://sysadmin.te.ua/linux/nfs-configuration.html там добавили для Windows поддержку.

Ваш комментарий

*