· 14 мин чтения

NFS-клиент на Windows: правильное подключение Linux-шар

NFS-клиент на Windows: правильное подключение Linux-шар

Привет! Это Евгений Семёнов, я директор ITFresh. За пятнадцать с лишним лет в IT-аутсорсинге чего только не повидал! Сотни гибридных инфраструктур прошли через мои руки: тут тебе и Linux-серверы, где хранятся базы данных с файлами, и Windows-машины для пользователей, плюс серверы приложений. Знаете, что самое интересное? Очень часто, буквально через раз, всплывает один и тот же вопрос: как заставить Windows-машину увидеть Linux-шару по NFS. Казалось бы, ерунда, но нюансов хватает: UID/GID, тонкости с правами доступа, squashing. Сейчас всё расскажу, что сам знаю, и, конечно, поделюсь проверенными командами.

Когда NFS на Windows — правильное решение

По моему опыту, Microsoft годами смотрит на Services for NFS как на что-то несерьёзное. Ну, вы поняли, второстепенный, не главный инструмент для работы с файлами. Конечно, у них есть свой, родной SMB, и он многим привычнее. Но позвольте мне кое-что сказать: NFS, вопреки всему, живее всех живых. Более того, порой он становится просто незаменимым!

Наш опыт показывает: в проектах со смешанной инфраструктурой, NFS-клиент для Windows нужен примерно в каждой пятой ситуации, то есть в 20% случаев. Это не ежедневная задача, нет. Но, поверьте, встречается это куда регулярнее, чем кажется.

В каких Windows есть штатный NFS-клиент

Почему этот вопрос так актуален? Потому что NFS-клиент пропал далеко не из всех версий. Раньше его можно было найти во всех Pro-редакциях Windows, но потом Microsoft, скажем так, урезал функционал.

РедакцияNFS-клиент
Windows 11/10 HomeНет
Windows 11/10 ProНет (с Win10 1803 убрали)
Windows 11/10 Pro for WorkstationsДа
Windows 11/10 Enterprise / EducationДа
Windows Server 2016–2025Да, во всех редакциях

Если у вас Windows 10 или 11 Pro, но без приставки Workstations, то, увы, штатного клиента NFS там не ждите. Что же делать в таком случае? Варианты, конечно, есть. Можно, например, обновить систему до Enterprise-версии, или установить бесплатный Allegro NFS Client. Но знаете, что я обычно советую первым делом? Попробуйте переключиться на SMB, если, конечно, есть такая возможность.

Установка Services for NFS

А если у вас Windows Server, клиент ставится просто – через роль. Для Windows 10/11 Enterprise его можно легко найти и активировать прямо в «Компонентах Windows».

Windows Server 2019/2022/2025:

Install-WindowsFeature NFS-Client -IncludeManagementTools
# или полный пакет с сервером
Install-WindowsFeature FS-NFS-Service, NFS-Client -IncludeManagementTools

Windows 10/11 Enterprise:

# PowerShell от администратора
Enable-WindowsOptionalFeature -Online -FeatureName "ServicesForNFS-ClientOnly","ClientForNFS-Infrastructure"

Или вот путь через графический интерфейс: «Панель управления → Программы и компоненты → Включение или отключение компонентов Windows → Службы для NFS → Клиент для NFS». Важный момент: перезагрузка системы после этого не понадобится. А вот как проверить, всё ли встало как надо:

Get-Service NfsClnt
# Статус должен быть Running, StartType Automatic

Настройка NFS-сервера на Linux

Окей, а чтобы подключиться, что нужно? Самое главное – на другой стороне должна быть уже настроена и готова к экспорту сетевая шара. Вот минимальный /etc/exports, чтобы отдать доступ Windows-клиентам:

# /etc/exports на Linux-сервере
/srv/share 10.10.10.0/24(rw,sync,no_subtree_check,no_root_squash,insecure)
/srv/ro    10.10.10.0/24(ro,sync,no_subtree_check,insecure)

Опция insecure обязательна для Windows-клиента — он подключается с порта выше 1024, и без этой опции сервер откажет. no_root_squash нужен, если Windows будет писать от административных операций. После правки:

exportfs -rav
systemctl restart nfs-server
showmount -e localhost

Монтирование шары на Windows

Простой вариант — из командной строки:

mount -o anon \\10.10.10.50\srv\share Z:
# или с параметрами производительности
mount -o anon,nolock,rsize=65536,wsize=65536,mtype=hard \\10.10.10.50\srv\share Z:

Что означают ключи:

Просмотр смонтированных шар:

mount
showmount -e 10.10.10.50

Отключение:

umount Z:
umount -f Z:   # принудительно

Маппинг пользователей: UID/GID

Вот она, наша вечная головная боль в связке NFS между Linux и Windows: несовместимость моделей прав. Linux оперирует своими UID/GID, а Windows – совсем другими SID'ами. Services for NFS, конечно, предлагают решение через «маппинг», но, признаюсь честно, на своей практике я всегда поступаю проще – просто прописываю фиксированные AnonymousUid/Gid:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
  -Name AnonymousUid -Value 1000 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" `
  -Name AnonymousGid -Value 1000 -Type DWord

Restart-Service NfsClnt

Что это даёт? Теперь Windows при обращении к NFS-шаре всегда будет использовать UID=1000 и GID=1000. На стороне Linux вам остаётся только сделать владельцем нужного каталога соответствующего пользователя. Проще некуда!

chown -R 1000:1000 /srv/share
chmod -R 775 /srv/share

Если уж совсем приспичило с доменным маппингом, то тогда да – на Linux-сервер ставите nfs-idmapd, а на Windows – IDMU. Но, честно говоря, для большинства задач, а это 9 из 10, вполне достаточно этих самых anonuid/anongid.

Постоянное монтирование при входе

Кстати, имейте в виду: флаг -p у команды mount уже давно сломан, не работает. Поэтому я всегда делаю так: пишу небольшой батник и вешаю его в Task Scheduler. Там он срабатывает при каждом входе в систему по событию «At log on».

@echo off
rem nfs-mount.cmd
mount -o anon,nolock,rsize=65536,wsize=65536 \\10.10.10.50\srv\share Z:
mount -o anon,nolock                          \\10.10.10.50\srv\ro    Y:
exit /b 0

Создаём задачу:

schtasks /Create /TN "NFS-AutoMount" /TR "C:\Scripts\nfs-mount.cmd" /SC ONLOGON /RL HIGHEST /F

Реальный кейс: CAD-бюро и ZFS-сервер

Помню, в октябре 2025-го к нам обратился клиент – инженерное бюро, двадцать четыре рабочих места. Жаловались на то, что «тормозит общий проектный диск». Приехал я к ним разбираться: стоит Linux-сервер, на нём ZFS, объем – 24 ТБ, и всё это отдаётся через Samba. А на нём одновременно работают двадцать инженеров, да не просто так, а в AutoCAD и Revit! Естественно, каждая операция «открыть файл» занимала от сорока до шестидесяти секунд.

Однажды я сам переводил шары с SMB на NFSv3 – клиенты тогда использовали Windows 10 Enterprise. Я не только настроил AnonymousUid/Gid через GPO для всего подразделения с рабочими станциями, но и обязательно увеличил rsize/wsize до 65536. Сервер, кстати, был что надо: Dell с Xeon Platinum 8280, 128 ГБ оперативки, да ещё и 40G Mellanox до свича. Самое удивительное? После всех этих манипуляций время на «открыть файл» упало до каких-то 3-6 секунд. Вот это скорость! Инженеры, конечно, разницу моментально почувствовали.

На всю эту работу у меня ушло два дня: первый день я полностью посвятил тестам, второй – уже самой раскатке. Что по деньгам? Внедрение обошлось клиенту в 48 000 рублей, плюс к этому – ежемесячное обслуживание по 15 000 рублей. И знаете, какой самый классный итог? Клиент по сей день в восторге от результата!

Типичные ошибки и диагностика

Когда лучше отказаться от NFS в пользу SMB

Сразу скажу, как есть: мы в ITFresh всегда советуем клиентам SMB на Windows, если нет особых требований. Ну правда, зачем себе жизнь усложнять? Это же просто сказка! Отлично дружит с Active Directory, мгновенно считывает права через ACL, и забудьте про муторные UID/GID. А вот NFS… его мы достаём из рукава только в двух, очень конкретных случаях. Первый — если видим, что SMB на Linux ну совсем не тянет по производительности. И второй, когда специфические сервисы, такие как Hyper-V или Oracle DB, буквально кричат: 'Нам нужен NFS!'

Настроим NFS и гибридное хранилище

Я лично настраиваю NFS-экспорт на Linux-серверах и клиентов на Windows — от 1 шары до целого гибридного файл-сервера на 100+ пользователей. Подскажу, когда лучше NFS, а когда SMB. Первичная консультация — бесплатно.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы

В какой редакции Windows есть NFS-клиент?
В Windows 10/11 Pro for Workstations и Enterprise, а также во всех редакциях Windows Server. На Home — штатного клиента нет, нужны сторонние решения.
NFSv3 или NFSv4 выбирать?
Встроенный клиент Microsoft поддерживает только NFSv3. Для NFSv4.1 на Windows нужны сторонние клиенты. На практике для Linux-шар использую v3 с anonuid/anongid.
Как задать UID/GID для Windows-пользователя?
Через реестр HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default параметры AnonymousUid и AnonymousGid. После этого Windows-клиент всегда ходит на шару с указанными UID/GID.
Почему не сохраняется Z: после перезагрузки?
Потому что у mount -p флаг persistent не всегда переживает отзывы kerberos/credentials. Я обычно ставлю mount в батник на автозапуск или создаю задачу в Task Scheduler at logon.
Access denied при попытке записи — что делать?
Причина почти всегда в несовпадающих UID/GID. Проверьте на Linux ls -lan и сравните с тем, что возвращает Windows showmount. Выставьте AnonymousUid/Gid равными владельцу каталога или используйте no_root_squash.

Подпишитесь на рассылку ITfresh

Каждую неделю мы выпускаем свежие, по-настоящему практические гайды, которые будут в самый раз и для руководителя IT, и для сисадмина. Ждёте? Здесь всё самое нужное: от кибербезопасности и тонкостей работы с 1С до безболезненных миграций и надёжных резервных копий. И, конечно, наши любимые лайфхаки, проверенные годами на реальных проектах!

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.