С протоколами передачи данных знаком не каждый. А вот соединить свои компьютеры в одну сеть или использовать сервер для хранения файлов хотели бы многие. Один из способов это осуществить: NFS. Как настроить NFS сервер в Ubuntu — читайте далее.
Что такое 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
После этого нелишним будет проверить корректность установки. Делать это не обязательно, но мы всё же проверим. Вводим команду:
rpcinfo -p | grep nfs
Порт везде должен быть 2049.
Теперь проверяем, поддерживает ли ядро NFS. Для этого вводим:
cat /proc/filesystems | grep nfs
Полученное значение должно выглядеть так: nodev nfsd
Это означает, что всё функционирует правильно. Если нет, то вводим команду:
modprobe nfs
При помощи её мы ставим модуль ядра самостоятельно.
Добавляем протокол в автозапуск. Делать это необязательно, но самому каждый раз включать его очень неудобно. Добавить, опять же, можно, пользуясь специальным пунктом меню в настройках, а можно самостоятельно при помощи команды:
sudo systemctl enable nfs
Итак, серверную часть мы установили, осталось правильно её настроить и перейти к клиентской.
Настройка
Настройка 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. Там хранятся все файлы и папки с открытым сетевым доступом. Запись должна выглядеть так:
/var/network168.1.1(rw,async,no_subtree_check)
192.168.1.1 — это IP, по которому мы осуществляем передачу. Указывать его обязательно.
Обновляем таблицу экспорта:
sudo exportfs –a
Теперь попробуем получить доступ к папке со стороны клиента.
Установка и настройка клиентской части NFS
Ubuntu
На Убунту подключить настроенный сервер не составит труда. Делается это всего за пару команд.
Устанавливаем специальный клиентский пакет:
sudo apt install nfs-common
Дальше просто пользуемся командой:
sudo mount 192.168.1.1:/var/network/ /mnt/
Сетевая папка подключена. С помощью df можно проверить все подключенные сетевые папки:
df –h
Также можно проверить свой уровень доступа специальной командой:
touch /mnt/test
Отключаем файловую систему следующим образом:
sudo umount /mnt/
Почти везде используется команда mount. Она отвечает за процесс монтирования, то есть, подготовки пространства на жёстком диске для использования его операционной системой. Звучит сложно, но если упростить, получится, что мы просто перекидываем сетевые файлы на наш компьютер в новоявленную папку. Здесь она называется /mnt/.
Windows
С Виндой, как правило, всё складывается куда сложнее. NFS клиент без проблем можно запустить на всех серверных Windows. Из стандартных он присутствует на:
- Windows 7 Ultimate/Enterprise
- Windows 8/8.1 Enterprise
- Windows 10 Enterprise
Больше нигде не найти. Если у вас одна из этих версий, делаем следующее:
- Открываем меню «Программы и компоненты».
- Жмём «Добавление компонентов».
- Находим там NFS и ставим только «Клиент для NFS», другой компонент нам не нужен.
После подключения монтируется всё такой же командой:
mount 192.168.1.1:/var/network/ /mnt/
Размонтировать можно следующим образом:
umount Z: -F
Команды вводятся в командную строку, запущенную от лица администратора. После этого вы без труда, пользуясь Проводником, сможете найти нужный сетевой диск.
А что делать, если клиента для NFS на компьютере нет? Можно попробовать загрузить софт через сайт Microsoft или со сторонних ресурсов. Возможно, что здесь понадобятся другие команды или действия.
Теперь у вас появились базовые представления о том, как можно использовать NFC и провести простейшую настройку. Этих знаний хватит, чтобы наладить доступ с одного компьютера к другому. Причём в роли клиента может выступить и ПК на Windows.