Использование клиента NFS в Windows 10 редакции Professional

Windows 10

В Unix-подобных операционных системах подключить каталога NFS (Network File System) довольно просто, однако если вам понадобится использовать NFS шару в Windows, придется выполнить ряд дополнительных действий. В этой статье мы покажем, как в Windows 10 подключить NFS каталог, который находинся на UNIX системе. Все описанные инструкции будут работать в Windows 10 Pro (версия 10.0.14393 и выше).

Содержание:Установка клиента NFS (службы для NFS)</li>Как разрешить запись в NFS каталог анонимному пользователю</li>Как подключить NFS каталог в Windows 10</li></ul>

Установка клиента NFS (службы для NFS)

В первую очередь в Windows 10 нужно установить клиент NFS. Для установки необходимо выполнить следующие шаги:

  1. Откройте раздел «Programs and Features».windows-10-programs-and-features.png
  2. Щелкните по пункту «Turn Windows features on or off».windows-10-turn-windows-features-on-or-off.png
  3. В появившемся списке в разделе Services for NFS включите NFS клиента (Client for NFS), а затем нажмите «ОК».
  4. После установки нажмите кнопку «Close» и вернитесь на рабочий стол.

Как разрешить запись в NFS каталог анонимному пользователю

По умолчанию при подключении NFS каталога с UNIX системы, анонимному пользователю (anonymous) предоставляются права только на чтение. Чтобы предоставить анонимным пользователям право записи, необходимо изменить значения UID и GID, которые используются для монтирования NFS каталога в Windows. Пример стандартных настроек представлен на рисунке ниже.

Чтобы изменить значение полей UID и GID, нам потребуется внести изменения в реестр Windows.

  1. Откройте редактор реестра regedit.
  2. Перейдите в ветку реестра — HKEY_LOCAL_MACHINESOFTWAREMicrosoftClientForNFSCurrentVersionDefault.
  3. В каталоге «Default» создайте новый параметр типа DWORD (32бит) с именем AnonymousUid и назначьте UID, назначенный на каталог в UNIX, к которому открыт доступ через NFS.
  4. В ветке Default создайте ещё один параметр DWORD (32-бит) с именем AnonymousGid и назначьте GID, назначенный данному каталогу в UNIX.
  5. Для того, чтобы изменения вступили в силу вам необходимо перезапустить клиент NFS или перезагрузить компьютер.

Список подключенных NFS каталогов и параметры монтирования можно вывести с помощью команды Mount без параметров.

Результат работы команды mount теперь должен выглядеть следующим образом:

Local Remote Properties-------------------------------------------------------------------------------Z: \10.1.1.211mntvms UID=0, GID=0rsize=1078756, wsize=1078756mount=soft, timeout=1.6retry=1, locking=yesfileaccess=755, lang=ANSIcasesensitive=nosec=sys

Обратите внимание на значение полей UID и GID, которое равно 0. UID=0, GID=0 — означает, что общий ресурс монтируется под пользователем root.

Как подключить NFS каталог в Windows 10

Смонтировать NFS каталог в Windows 10 можно с помощью команды mount. Например, смонтируем NFS каталог и назначим ему букву диска Z:. Предположим, что ваше NAS устройство находится в той же сети, что и ваш компьютер с установленной операционной системы Windows, а IP-адрес устройства — 10.1.1.211. С помощью следующей команды можно смонтировать общий ресурс NFS в /mnt/vms.

Mount –o anon \10.1.1.211mntvms Z:

Z: is now successfully connected to \10.1.1.211mntvmsThe command completed successfully.

Теперь общий ресурс создан, и мы можем получить доступ к данным. В нашем примере сетевой ресурс (диск) обозначается буквой «Z».

На этом настройка NFS завершена и вы сможете сохранять данные на свое NAS устройство через смонтированный NFS каталог. Обратите внимание, что при в первый раз открытие этого каталога выполняется довольно долго.

Администрируя серверы на базе ОС Linux в среде, где в качестве основной клиентской ОС используется Windows, время от времени приходится сталкиваться с необходимостью что-либо скопировать с клиентской Windows на Linux-систему или наоборот, с Linux-системы на Windows. Чаще всего для этого используются возможности протоколов SSH/SCP с помощью таких инструментов, как например, утилита pscp.exe. Но когда приходится сталкиваться с файловыми Linux-серверами, позволяющими использовать возможности протокола NFS, мы можем задаться вопросами типа “может ли клиентская ОС Windows выступать в качестве NFS-клиента?”, “есть ли в клиентской ОС Windows какая-то встроенная реализация клиента NFS?”. Именно такие вопросы у меня возникли в период времени, который совпал с периодом, когда мы перебирались с Windows 8.1 на первый релиз Windows 10. Информация, которую в тот момент удалось найти по этому вопросу, заключалась в том, что функциональность NFS-клиента имеют только “старшие” редакции клиентских ОС Windows, такие как Windows 7 Ultimate/Enterprise, Windows 8/8.1 Enterprise и Windows 10 Enterprise. Однако в нашем случае использовалась ОС Windows 10 редакции Professional, поэтому пришлось отбросить эти мысли.

Недавно, читая обсуждения на форумах TechNet, я столкнулся с информацией о том, что с какого-то момента времени в ОС Windows 10 редакции Professional появилась возможность использовать функционал NFS-клиента. По информации из некоторых источников такая возможность появилась в Windows 10 версии 1607 (10.0.14393 / Anniversary Update).

Решив проверить эту информацию на имеющейся у меня под руками Windows 10 1803 (10.0.17134 / April 2018 Update) редакции Professional, я обнаружил, что теперь у нас действительно имеется возможность использования этого функционала.

Чтобы включить NFS-клиента, можем воспользоваться оснасткой управления программами и компонентами appwiz.cpl. Здесь в перечне “компонентов Windows” можно найти доступные к включению “Службы для NFS“.

После завершения установки компонент в Панели управления в разделе “Администрирование” появится оснастка “Службыдля NFS” (nfsmgmt.msc), в которой мы сможем управлять некоторым параметрами работы NFS-клиента.

Предполагаем, что на стороне NFS сервера уже настроены разрешения для доступа с клиентской системы, например, явно разрешён доступ по IP адресу клиента. Простейший пример установки и настройки NFS-сервера на стороне CentOS Linux можно найти в статье Вики “Установка и настройка сервера и клиента NFS в CentOS Linux 7.2”.

После настройки прав доступа на стороне NFS-сервера переходим на Windows 10 и выполняем подключение сетевого каталога с помощью утилиты “mount“. Простейший пример анонимного подключения к сетевому каталогу выглядит так:

mount -o anon\KOM-FS01mntvdo-vd1ovirt-iso-domain I:

где:

  • “-o anon” – подключаться с правами анонимного пользователя;
  • “KOM-FS01” – имя NFS-сервера;
  • “mntvdo-vd1ovirt-iso-domain” – локальный путь к каталогу на NFS-сервере;
  • “I” – буква диска Windows

Другие доступные параметры и ключи утилиты, можно посмотреть командой “mount /?“. Например, при подключении мы явно можем указать имя пользователь и пароль на NFS-сервере.

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

При повторном выполнении команды mount без указания параметров, мы получим сведения о текущий подключениях NFS-клиента и свойствах этих подключений:

Здесь мы сможем увидеть то, с какими UID и GUID, выполнено подключение. Для анонимных подключений это по умолчанию -2/-2. Если по какой-то причине у нас возникнет необходимость изменить эти идентификаторы для всех анонимных клиентских подключений, то мы можем добавить пару отсутствующих по умолчанию параметров реестра типа DWORD (32-бита):

  • AnonymousUid
  • AnonymousGid

в ключ реестра:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftClientForNFSCurrentVersionDefault

В значениях созданных параметров можно записать нужные UID и GUID, которые будут использоваться при всех анонимных подключениях. На скриншоте ниже используется пример со значениями 1000:1000 (десятичное).

Если мы хотим, чтобы все анонимные подключения использовали root-овые идентификаторы, то в соответствующих параметрах реестра нужно указать AnonymousUid = и AnonymousGid = . Указание root-овых идентификаторов может быть полезно в случае, если, например, нам требуется не только чтение, но запись в подключенном NFS-каталоге, а удалённый NFS-сервер разрешает запись только root-пользователю и/или членам группы root.

Для вступления изменений в силу потребуется выполнить остановку и повторный запуск службы клиента NFS из ранее упомянутой оснастки “Службы для NFS” (nfsmgmt.msc).

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

Здесь хочу сделать маленькое отступление относительно перезапуска службы клиента NFS и поделиться своими наблюдениями.

Мои попытки перезапускать системную службу “Клиент для NFS” (NfsClnt) через стандартные механизмы, такие как оснастку управления службами services.msc или утилиту “net“, показали, что это по какой-то причине приводит к невозможности запуска службы после её остановки. Поэтому для перезапуска NFS-клиента лучше использовать именно “родную” оснастку. Хотя, опять же, замечено, что многократные остановки/запуски службы в оснастке “Службы для NFS” также могут привести к неадекватной работе NFS-клиента. В результате чего, например, утилита “mount” может перестать подключать NFS-каталоги, выдавая ошибку сети:

В таких случаях помогает только перезагрузка клиентского компьютера, после которой всё снова начинает работать.

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

Как видим, теперь в качестве идентификаторов безопасности выступают именно те, что были ранее нами указаны в реестре.

Отключение подключенных по протоколу NFS сетевых ресурсов выполняется также просто, как и подключение, только с помощью другой утилиты – “umount

В общем это хорошо, что теперь у пользователей ОС Windows 10 редакции Professional есть штатная возможность работать с сетевыми файловыми ресурсами по протоколу NFS. Будем использовать это в работе.

Недавно задался вопросом: «А возможно ли примонтировать удаленную файловую систему Linux сервера по протоколу NFS к Windows 10?». Оказывается можно, даже более того… для этого есть стандартные средства.

Первым делом пойдем в Панель управления -> Приложения -> (справа выбираем ссылку) Программы и компоненты -> (в открывшемся окне слева) Включение или отключение компонентов Windows -> (в списке находим) Службы для NFS. Выделяем все компоненты и нажимает кнопку ОК.

Далее открываем меню «Пуск» и начинаем вводить «NFS». Выбираем пункт «Службы для NFS».

Либо идем в «Администрирование» и там выбираем «Службы для NFS».

В открывшимся окне выбираем «Клиент для NFS» -> Свойства. Выставляем разрешения для файлов которые будут по умолчанию.

По стандарту подключение к NFS в Windows происходит под анонимным пользователем UID и GID которого -2:-2

Нам же нужно подключаться к NFS под пользователем которому даны права со стороны сервера. Предположим пользователь 1000:1000

(по стандарту первый пользователь во многих системах на базе linux).

Идем в «Пуск» и вводим «regedit». Переходим по адресу:

Создаем два DWORD ключа:

  • AnonymousUid
  • AnonymousGid

C десятичным значением: 1000 (у обоих)

Собственно, с настройкой все. Переходим в файловый медеждер (эксплорер/»этот компьютер») и в строку браузера вводим следующее:

«-o anon» — подключаемся как аноним

«\192.168.1.171homealexfolder» — директория на сервере

«I:» — диск для монтирования в windows

Так же, через командную строку доступна информация по примонтированным фс: mount

Отключение примонтированной фс: umount I:

Сегодня мы разберемся, как установить и настроить клиент NFS (Network File System) в Windows Server 2012 R2 / Windows 8. Итак, чтобы подключить каталог (шару) с NFS сервера в Windows Server 2012 R2 / Win 8, нужно, как и в предыдущих версиях Windows, установить отдельный компонент — клиент  NFS (Client for NFS). Дополнительно, для возможности управления настройками NFS подключения, можно установить компонент служб NFS (Services for Network File System).

Клиент NFS входит в состав ОС Microsoft, начиная с Windows 7. В Windows 2012 / 8 клиент NFS получил небольшие изменения. Теперь NFS клиент поддерживает аутентификацию по протоколу Krb5p — Kerberos версии 5 (в дополнение к Krb5 и Krb5i, поддержка которых появилась еще в Windows 7), поддерживаются большие NFS пакеты – до 1024KB (в Win 7 максимальный размер пакета 32KB)

Клиент NFS можно установить через GUI или с помощью Powershell. Для установки в графическом режиме, откройте консоль Server Manager и выберите компонент (Features) под названием Client for NFS.

По умолчанию вместе с этим компонентом не устанавливается графическая консоль управления NFS, чтобы исправить это, установим опцию Services for Network File System Management Tools в разделе Remote Server Administration Tools -> Role Administration Tools -> File Services Tools.

Для установки NFS-клиента в Windows 8 нужно активировать компонент Services for NFS ->Client for NFS, через установку/удаление компонентов (Turn Windows features on or off) в Панели управления (Control Panel -> Programs -> Programs and Features).

Примечание. В отличии от Windows 7, в которой NFS клиент присутствовал в  редакциях Enterprise и Ultimate, в Windows 8 клиент Network File System поддерживается только в старшой версии — Windows 8 Enterprise.

Все перечисленные выше компоненты системы можно установить всего одной командой Powershell:

Install-WindowsFeature NFS-Client, RSAT-NFS-Admin

После окончания установки, запустите консоль Services for Network File System Managemen и откройте окно свойств NFS клиента (Client for NFS).

В настройках NFS клиента можно задать:

  • Используемый транспортный протокол (Transport protocols) – по умолчанию TCP+UDP
  • Тип монтирования NFS шар: hard или soft
  • На вкладке File Permissions указываются дефолтные права для создаваемых папок и файлов на NFS шарах
  • На вкладке Security указываются протоколы аутентификации,  с помощью которых можно аутентифицироваться на NFS сервере

После настройки установки, администраторы смогут смонтировать NFS каталог с помощью команды mount:

Mount \lx01.abc.labnfs z:

В этом примере мы смонтировали под буквой Z: каталог NFS, расположенный на сервере lx01.abc.lab.

После монтирования, подключенный таким образом каталог на NFS сервере доступен в системе как отдельный диск с буквой Z: .

Смонтировать NFS шару можно и с помощью Powershell:

New-PSdrive -PSProvider FileSystem -Name Z -Root \lx01.abc.labnfs

Примечание. Подключенный таким образом nfs каталог будет доступен только внутри сессии Powershell, в которой была выполнена команда монтирования. Чтобы смонтировать NFS каталог в системе на постоянной основе, в конце Powershell команды нужно добавить ключ –Persist.

Отключить смонтированный каталог можно так:

Remove-PSdrive -Name Y

Используемые источники:

  • https://vmblog.ru/kak-podklyuchit-nfs-katalog-v-windows-10/
  • https://blog.it-kb.ru/2018/10/16/using-the-nfs-client-in-windows-10-professional-edition/
  • https://webnoob.ru/linux/klient-nfs-dlya-windows-10-professional-enterprise/
  • https://winitpro.ru/index.php/2014/08/19/podklyuchaem-nfs-sharu-v-windows-server-2012-r2/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий