Вот настроили вы у себя на сервере 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.
Вижу статья полезная. Но тут возник вопросик. Я бы с удовольствием использовал бы этот NFS для того чтобы обмениваться файлами с домашним сервером, и при этом сидеть на работе. А вопрос вот в чем… На работе у меня Win_XP. Как в винде настроить сетевой диск ? Это возможно?
На сколько мне известно, этот протокол поддерживается исключительно Linux/FreBSD системами. Для работы в смешанных сетях Linux/Windows нужно использовать Samba.
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
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 ~/data
заработало
Используйте sshfs http://aidsoid.org/?p=177
при ручном монтировании все понтируется
mount //192.168.1.10/my /media/my -o username=user,password=pass
showmount -e 192.168.1.10 ничего не дает и соответственно монтировать через /etc/fstab не дает
сервер NFS на NASe
подскажите че делать?
Я, если честно, не понял проблемы. Если при ручном запуске всё монтируется, то и при корректной прописке в fstab всё должно работать.
Господа,кто может помочь с монтированием? Куда я только не обращался… Может, хоть здесь кто-то откликнется?
С NFS я достаточно намучился, так давайте постараюсь помочь. Создайте тему на форуме.
Отличная статья. Настраивал по этой http://sysadmin.te.ua/linux/nfs-configuration.html там добавили для Windows поддержку.