Steps to set up a free NFS server on Windows 10
1. Install the NFS Client
- Click on the Cortana search box -> type in Control Panel -> choose the first option from the top.
- Click the Programs and Features option.
- Click the option Turn Windows features on or off from the left side menu.
- Inside the Windows Features window -> scroll down and check the box next to Services for NFS -> press Ok.
- This will start the installation process.
- After the process is completed, you can Close the Windows Features window and follow the next method.
Is Bluestacks not connecting to the server on Windows 10? Try this
2. Enable Write permissions for the Anonymous User (default)
- Press the Win+R keys on your keyboard -> type Regedit -> press Enter.
- Navigate to:
- Open the Default folder by double-clicking on it.
- Right-click the right-side pane -> create a New DWORD (32-bit) Value -> name it AnonymousUid -> assign the UID found on the UNIX directory (shared by the NFS system).
- Create a new NEW DWORD (32-bit) Value -> name it AnonymousGid -> assign GID found on the UNIX directory.
- Reboot your PC.
3. Mounting a free NFS share server on Windows 10
For the sake of this example, we will assume that your NAS device is located on the same network as your Windows 10 PC and the IP address is xx.x.x.xxx.
Follow these steps to mount the NFS share:
- Press Win+X and launch the PowerShell (Admin).
- Type the following command C:Userswindows>mount -o anon xx.x.x.xxxmntvms Z:
- Press Enter
- After the command is entered, your NFS share server is ready to be accessed by visiting the Z: drive.
Note: It is worth knowing that the first time you will try to write to the NAS device, the share takes a long time. Please be patient.
In today’s article, we answered the question ‘how to set up a free NFS server on Windows 10 ‘.
Please make sure to follow the steps presented in this list carefully, as modifying any registry data incorrectly can affect the overall health and performance of your PC.
We would love to know if this guide helped you set up a free NFS server on Windows 10. If it did, please let us know by using the comment section below.
Was this page helpful?
Thanks for letting us know! You can also help us by leaving a review on MyWOT or Trustpilot.
Get the most from your tech with our daily tips
Развертывание инфраструктуры NFS
Необходимо развернуть следующие компьютеры и подключить их в локальной сети (LAN):
- Один или несколько компьютеров под управлением Windows Server 2012, на которых будут установлены две основные службы для компонентов NFS: сервер для NFS и клиент для NFS. Эти компоненты можно установить на одном компьютере или на разных компьютерах.
- Один или несколько компьютеров на базе UNIX, на которых выполняется NFS-сервер и клиентское программное обеспечение NFS. На компьютере UNIX под управлением NFS-сервера размещается файловый ресурс NFS или экспорт, доступ к которому осуществляется с помощью компьютера под управлением Windows Server 2012 в качестве клиента с клиентом для NFS. Вы можете установить сервер NFS и клиентское программное обеспечение на одном компьютере UNIX или на разных компьютерах с ОС UNIX.
- Контроллер домена, работающий на функциональном уровне Windows Server 2008 R2. Контроллер домена предоставляет сведения о проверке подлинности пользователя и сопоставление для среды Windows.
- Если контроллер домена не развернут, можно использовать сервер служба NIS (NIS) для предоставления сведений о проверке подлинности пользователя для среды UNIX. Или, при желании, можно использовать файлы паролей и группы, которые хранятся на компьютере, на котором запущена служба сопоставление имен пользователей.
Установите сетевую файловую систему на сервере с диспетчер сервера
- В мастере добавления ролей и компонентов в разделе ролей сервера выберите файловые службы и службы хранилища (если они еще не установлены).
- В разделе файлы и службы iSCSI выберите файловый сервер и сервер для NFS. Выберите Добавить компоненты , чтобы включить выбранные компоненты NFS.
- Нажмите кнопку установить , чтобы установить компоненты NFS на сервере.
Установка сетевой файловой системы на сервере с помощью Windows PowerShell
- Запустите Windows PowerShell. Щелкните правой кнопкой мыши значок PowerShell на панели задач и выберите Запуск от имени администратора.
- Выполните следующие команды Windows PowerShell:
Mount the NFS shared Folder on Linux Client (Ubuntu Machine):
25. On the Ubuntu machine, verify the local IP address and network connectivity with the NFS server.
26. To mount an NFS shared folder on a Linux machine, open terminal. Type command: mkdir /data
This command will create one directory name data under the root directory.
27. Type command:
Syntax: mount -t nfs <NFS-Server-IP>/<NFS-Shared-Folder-Name> /<Mount-Point>
For example, to mount an NFS shared folder named share1 of the NFS server that is configured with IP address 172.18.72.5, the folder should be mapped on the /data mount point.
In our case command will look like:
mount –t nfs 172.18.72.5:/share1 /data
28. Verify the content of the text file which we have created earlier on the NFS server.
In this blog post, we have learned the steps on how to install and configure NFS in Windows Server 2019.
I hope, you enjoyed it. Thank you for reading.
Mounting the share
Now we have our NFS Client and we have our export policy from whichever NAS device you are looking to mount onto your Windows, next we actually need to mount the share for use.
Some people will ask now, why you are using NFS when you can use SMB, certain applications, certain environments may require this method and protocol. If this was a traditional Windows environment and this share was going to house predominately user shares and home drives, then absolutely the way to do this would most likely be with the SMB protocol.
Next up is open up a command prompt with Administrator privileges, the mount command is going to be the command you use and then you will be using the NAS IP Address followed by the share name and then which letter you would like to mount this to on your Windows system.
Mount 10.1.1.4:/vZillaANFShare n:
Providing you have the correct configuration, mostly down to the export policy on your NAS device then this process should take seconds. And then by seeing the success message as per above but then checking this now as a mapped network drive as per below.
Quick post hope that it is useful for somebody. This was something I was working on so that I could test Azure NetApp Files without access to Azure Active Directory services (due to corporate policy) this stopped me from being able to use SMB but allowed me to test the functionality via NFS on Windows and Ubuntu.
Justin Parisi did a great blog on this at the start of the year – Windows NFS? WHO DOES THAT???
Настройка NFSv4 без Kerberos
1.1., 1.2. Настройка NFSv4 сервера и клиента
Я решил объединить эти 2 пункта, т.к. они содержат очень похожие шаги. Поэтому начнем настройку с общих этапов для клиента и сервера. Итак, и на клиенте и на сервере необходимо настроить сеть в Debian. (Так же можно почитать статью основные понятия сетей). На сервере и клиенте необходим с необходимыми зависимостями (portmap). Для того чтобы протокол Kerberos работал корректно, необходимо обязательно правильно настроить файлы , , , ну и конечно /etc/network/interfaces. Для того чтобы избавиться от возможных ошибок при работе к Kerberos, необходимо учесть некоторые нюансы (хотя и без этих нюансов скорей всего заработает), которые я отмечу комментариями:
:~# cat /etc/hosts 10.0.0.51 nfsc.DOMAIN.local nfsc 127.0.0.1 localhost # для Kerberos советуют указывать именно такой порядок # то есть первой строкой именно 10.0.0.51 (внешний IP, не loopback) :~# cat /etc/hostname nfsc :~# cat /etc/resolv.conf domain DOMAIN.local search DOMAIN.local nameserver 10.0.0.4 :~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.51 netmask 255.255.0.0 gateway 10.0.0.254 ================================== :~# cat /etc/hosts 10.0.0.50 nfsd.DOMAIN.local nfsd 127.0.0.1 localhost :~# cat /etc/hostname nfsd :~# cat /etc/resolv.conf domain DOMAIN.local search DOMAIN.local nameserver 10.0.0.4 :~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.50 netmask 255.255.0.0 gateway 10.0.0.254
с:~# service nfs-common restart Stopping NFS common utilities: gssd idmapd statd. Starting NFS common utilities: statd idmapd gssd.
Далее, настройка производится на cервере. На сервере NFS необходимо установить . И задать экспортируемые каталоги в , перезапустить сервер и проверить сделанное :
:~# mkdir /nfs :~# vim /etc/exports :~# cat /etc/exports /nfs 10.0.0.51(rw,sync,no_subtree_check) 10.0.0.50(rw,sync,no_subtree_check) :~# service nfs-kernel-server restart Stopping NFS kernel daemon: mountd nfsd. Unexporting directories for NFS kernel daemon.... Exporting directories for NFS kernel daemon.... Starting NFS kernel daemon: nfsd mountd. :~# showmount -e Export list for nfsd: /nfs 10.0.0.50,10.0.0.51
На этом настройка сервера и клиента завершена. Давайте проверим наши настройки. Сначал необходимо попробовать смонтировать экспортированный каталог локально на сервере по протоколу NFSv4:
:~# mount -v -t nfs4 10.0.0.50:/nfs /mnt mount.nfs4: timeout set for Fri Nov 18 12:20:52 2011 mount.nfs4: trying text-based options 'addr=10.0.0.50,clientaddr=10.0.0.50' 10.0.0.50:/nfs on /mnt type nfs4 (rw) :~# mount | grep nfs4 10.0.0.50:/nfs on /mnt type nfs4 (rw,addr=10.0.0.50,clientaddr=10.0.0.50)
Как видно, монтирование произошло удачно. Более подробно о а еще подробней — в . Теперь проверим возможность удаленного монтирования с клиентской машины:
:~# mount -v -t nfs4 10.0.0.50:/nfs /mnt mount.nfs4: timeout set for Fri Nov 18 11:01:16 2011 mount.nfs4: trying text-based options 'addr=10.0.0.50,clientaddr=10.0.0.51' 10.0.0.50:/nfs on /mnt type nfs4 (rw) :~# mount | grep nfs4 10.0.0.50:/nfs on /mnt type nfs4 (rw,addr=10.0.0.50,clientaddr=10.0.0.51)
Как видно, опять все удачно. На этом можно считать, что NFS корректно работает по протоколу NFSv4. Теперь можно приступить к настройке протокола Kerberos на Debian.
Mount NFS Persistently
Most of the time we will want our NFS mount to survive a system reboot and mount automatically after boot so that we don’t have to manually mount it every time.
There are a couple of different ways that we can achieve this task:
Map Network Drive
I personally prefer this method, as we can see the space remaining much more easily.
- First open up “This PC” and select Computer from the menu at the top. From here click on Map network drive, as shown below.
-
The Map Network Drive window will open, select the drive letter that you want to assign to the NFS share, followed by the IP address or hostname of the NFS server as well as the path to the exported NFS directory. Click the Finish button when complete.
You may see a pop up window showing that the connection is being attempted. Once complete the shared NFS folder will open up.
- When you view “This PC” you will see the mapped network drive under Network location. This method is better than adding the network location as we’ll discuss next as it clearly shows how much disk space on the NFS share is in use and how much is still available.
Add A Network Location
This will basically create a shortcut to the mounted NFS directory for you to access at any time, it will also be available after restart just like the map network drive method above.
- First open up “This PC” and right click in the white space area and select “Add a network location”.
- On the welcome screen click Next to proceed.
- Select that you want to choose a custom network location, followed by the Next button.
- Enter in two back slashes, followed by the IP address or hostname of your NFS server, followed by the path that is being exported by the NFS server. Click Next once you’ve filled this in.
- You can now select a custom name for the network location, click Next once you’ve set one.
- To complete the process, simply click the Finish button on the completion screen.
-
We can optionally open the NFS mount now, or we can browse to “This PC” and see the folder shortcut listed under the “Network locations” setting as shown below.
As mentioned note that this does not show the disk space in use like the network drive mapping option.
Install NFS File Services
- Launch Server Manager.
- On the top menu, click Manage.
- Click Add Roles and Features.
- On the Before you begin screen, click Next.
- On the Select installation type screen, ensure Role-based or feature-based installation is selected, and then click Next.
- On the Server selection screen, click Next.
- On the Select server roles screen, expand File and Storage Services, expand File and iSCSI Services, and then check Server for NFS.
- Click Next.
- If an Add features that are required for Server NFS dialog box appears, click Add Features.
- On the Select feature screen, click Next.
- Confirm the installation details, and then click Install.
Практическое применениеPractical applications
Ниже приведены некоторые способы использования NFS.Here are some ways you can use NFS:
- Используйте файловый сервер Windows NFS для предоставления многопротокольного доступа к одному и тому же файловому ресурсу по протоколам SMB и NFS с многоплатформенных клиентов.Use a Windows NFS file server to provide multi-protocol access to the same file share over both SMB and NFS protocols from multi-platform clients.
- Разверните файловый сервер Windows NFS в среде операционной системы, отличной от Windows, чтобы предоставить клиентским компьютерам, не являющимся клиентскими Windows, доступ к файловым ресурсам NFS.Deploy a Windows NFS file server in a predominantly non-Windows operating system environment to provide non-Windows client computers access to NFS file shares.
- Перенос приложений из одной операционной системы в другую путем хранения данных в общих файловых ресурсах, доступных через протоколы SMB и NFS.Migrate applications from one operating system to another by storing the data on file shares accessible through both SMB and NFS protocols.
Развитие на сегодняшний день
К 21-му столетию протоколы-конкуренты DFS и AFS не достигли какого-либо крупного коммерческого успеха по сравнению с Network File System. Компания IBM, которая ранее приобрела все коммерческие права на вышеуказанные технологии, безвозмездно передала большую часть исходного кода AFS сообществу свободных разработчиков программного обеспечения в 2000 году. Проект Open AFS существует и в наши дни. В начале 2005 года IBM объявила о завершении продаж AFS и DFS.
В свою очередь, в январе 2010 года компания Panasas предложила NFS v 4.1 на основе технологии, позволяющей улучшить возможности параллельного доступа к данным. Протокол Network File System v 4.1 определяет метод разделения метаданных файловой системы из местоположения определенных файлов. Таким образом, он выходит за рамки простого разделения имен/данных.
Что такое NFS этой версии на практике? Вышеуказанная особенность отличает его от традиционного протокола, который содержит имена файлов и их данных под одной привязкой к серверу. При реализации Network File System v 4.1 некоторые файлы могут распределяться между многоузловыми серверами, однако участие клиента в разделении метаданных и данных ограничено.
При реализации четвертого дистрибутива протокола NFS-сервер представляет собой набор серверных ресурсов или компонентов; предполагается, что они контролируются сервером метаданных.
Клиент по-прежнему обращается к одному серверу метаданных для обхода или взаимодействия с пространством имен. Когда он перемещает файлы на сервер и с него, он может напрямую взаимодействовать с набором данных, принадлежащих группе NFS.
Версии
Версия 1
Детали реализации определены в RFC 1094. Версия 1 была только для внутреннего пользования в экспериментальных целях. Когда команда разработчиков добавила существенные изменения в NFS версии 1, была выпущена версия 2, которая уже использовалась за пределами компании.
Версия 2
Версия 2 протокола NFS (RFC 1094, март 1989 года) первоначально полностью работала по протоколу UDP. Разработчики решили не хранить данных о внутреннем состоянии внутри протокола, как пример, блокировка, реализованная вне базового протокола. Люди, вовлечённые в создание NFS версии 2 — Расти Сендберг (Rusty Sandberg,) Боб Лайон (Bob Lyon), Билл Джой (Bill Joy) и Стив Клейман (Steve Kleiman).
Версии 3
- Описатели файлов в версии 2 — это массив фиксированного размера — 32 байта. В версии 3 — это массив переменного размера с размером до 64 байт. Массив переменной длины в XDR определяется 4-байтным счётчиком, за которым следуют реальные байты. Это уменьшает размер описателя файла в таких реализациях, как, например, UNIX, где требуется всего около 12 байт, однако позволяет не-Unix реализациям обмениваться дополнительной информацией.
- Версия 2 ограничивает количество байт на процедуры READ или WRITE RPC размером 8192 байта. Это ограничение не действует в версии 3, что, в свою очередь, означает, что с использованием UDP ограничение будет только в размере IP датаграммы (65535 байт). Это позволяет использовать большие пакеты при чтении и записи в быстрых сетях.
- Размеры файлов и начальное смещение в байтах для процедур READ и WRITE стали использовать 64-битную адресацию вместо 32-битной, что позволяет работать с файлами большего размера.
- Атрибуты файла возвращаются в каждом вызове, который может повлиять на атрибуты. Это уменьшает количество вызовов GETATTR, требуемых клиентом.
- Записи (WRITE) могут быть асинхронными, тогда как в версии 2 они должны были быть синхронными. Это может улучшить производительность процедуры WRITE.
- Одна процедура была удалена (STATFS) и семь были добавлены: ACCESS (проверка прав доступа к файлу), MKNOD (создание специального файла Unix), READDIRPLUS (возвращает имена файлов в директории вместе с их атрибутами), FSINFO (возвращает статистическую информацию о файловой системе), FSSTAT (возвращает динамическую информацию о файловой системе), PATHCONF (возвращает POSIX.1 информацию о файле) и COMMIT (передает ранее сделанные асинхронные записи на постоянное хранение).
На момент введения версии 3, использование разработчиками TCP как транспортного протокола начало расти. Хотя некоторые разработчики уже добавили поддержку протокола TCP для NFS версии 2 в качестве транспортного, Sun Microsystems добавили поддержку TCP в NFS версии 3. Использование TCP сделало использование NFS через глобальную сеть более осуществимым.
Версия 4
NFSv4 (RFC 3010, декабрь 2000 г., RFC 3530, пересмотренная в апреле 2003), под влиянием AFS и CIFS, включила в себя улучшение
производительности, высокую безопасность, и предстала полноценным протоколом. Версия 4 стала первой версией, разработанной совместно с Internet Engineering Task Force (IETF), после того, как Sun Microsystems передала развитие протоколов NFS. NFS версии v4.1 была одобрена IESG в январе 2010 года, и получила номер RFC 5661 (новая спецификация, объёмом 612 страниц, стала известна как самый длинный документ, одобренный IETF).
Важным нововведением версии 4.1 является спецификация pNFS — Parallel NFS, механизма параллельного доступа NFS-клиента к данным множества распределенных NFS-серверов. Наличие такого механизма в стандарте сетевой файловой системы поможет строить распределённые «облачные» («cloud») хранилища и информационные системы.
Install Server for NFS role service in Windows Server 2019:
To install the Server for NFS role service in Windows Server 2019, follow the below steps:
1. Open Server Manager. Click on Tools and select Add Role and Features.
2. On the Before you begin page, click Next.
3. Select Role-based or feature-based installation and click Next.
4. Select a server from the server pool on which you want to install the Network File System for Server role service, click Next.
5. On select server roles page, expand File and Storage Services, expand File and iSCSI Services. Select Server for NFS checkbox.
6. A new window will pop up, click on Add Features to include required features and management tools needed by the NFS server.
7. Make sure that the Server for NFS role service is selected. Click Next.
8. On select features, click Next.
9. Click Install and complete the installation process.
10. Click Close to finish the installation.
Экспорт разделяемого ресурса
Для экспорта созданного ранее разделяемого ресурса (каталога) /srv/nfsshare добавить в конфигурационный файл строку
Где:
— постоянный IP-адрес компьютера-клиента (может быть использовано имя компьютера), или, для указания группы компьютеров, можно использовать адрес сети или подстановочный знак «*» (подробнее см. справку man exports);
- (rw,no_root_squash,sync) –набор опций, опции могут быть:
- rw –чтение запись (может принимать значение ro – только чтение);
- no_root_squash – по умолчанию в общих ресурсах NFS пользователь root становится обычным пользователем nfsnobody. Таким образом, владельцем всех файлов, созданных root, становится nfsnobody, что предотвращает загрузку на сервер программ с установленным битом setuid. Использование параметра no_root_squash не рекомендуется, так как потенциально создает угрозы безопасности, связанные с возможностью удаленного внедрения в файловую систему вредоносного ПО.
- nohide — NFS автоматически не показывает нелокальные ресурсы (например, примонтированные с помощью mount –bind), эта опция включает отображение таких ресурсов;
- sync – синхронный режим доступа (может принимать обратное значение- async). Значение sync указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Параметр async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;
- noaccess – запрещает доступ к указанной директории. Применяется, если доступ к определенной директории выдан всем пользователям сети , и необходимо ограничить доступ для некоторых пользователей;
- all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя;
- subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы.Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию.Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;
- anonuid=1000– привязывает анонимного пользователя к «местному» пользователю;
- anongid=1000– привязывает анонимного пользователя к группе «местного» пользователя.
Строк с записями о разделяемых ресурсах может быть добавлено несколько. После внесения изменений для того, чтобы они вступили в силу, нужно выполнить команду
sudo exportfs -ra