Короткий ответ

Живой ping NAS01 не равен живой шаре. Проверьте TCP 445, имя шары, dialect (клиент SMB1 vs сервер min SMB2), время (Kerberos ±5 минут) и учётку (локальный пользователь TrueNAS vs CONTOSO\user). Не ставьте chmod 777 на /mnt/tank/share и не включайте SMB1 «навсегда», чтобы Excel открылся.

Windows: Test-NetConnection, nltest, klist. TrueNAS: SMB service, ACL dataset, Directory Services.

Симптомы и как отличить

Типичная картина:

  • \\NAS01\share — «не найден сетевой путь», \\10.0.30.10\share открывается;
  • пароль отвергнут, в браузере UI NAS админ входит;
  • Mac/старый сканер требует SMB1;
  • один пользователь ок, другой Access denied на том же ПК.
Код / текстКуда
path not found, 445 закрытсеть NAS
BAD_NETWORK_NAME, 445 открытнет шары / опечатка / пул не смонтирован
LOGON_FAILURE / passwordучётка, время, SPN
ACCESS_DENIED после логонаACL dataset, не SMB-версию
NFS монтируетсяsmbd, не диск

Возможные причины

  1. SMB service stopped, bind только на mgmt NIC.
  2. Min protocol SMB2, клиент только SMB1.
  3. Clock skew NAS01 vs DC.
  4. TrueNAS не в AD / computer account disabled.
  5. Неверная NetBIOS alias, старый SPN на другом хосте.
  6. ACL NFSv4 на dataset режет Windows пользователя.
  7. Пул tank не imported — шара в конфиге, путь мёртв.
  8. Guest off, клиент шлёт anonymous.

Диагностика

1. Порт и имя

Resolve-DnsName NAS01.contoso.example
Test-NetConnection NAS01.contoso.example -Port 445
cmd /c 'net view \\NAS01'
Get-SmbConnection
Get-SmbClientConfiguration | Select-One EnableInsecureGuestLogons, RequireSecuritySignature

Get-SmbConnection после неудачного net use может быть пуст.

Ubuntu:

smbclient -L //NAS01.contoso.example -U 'CONTOSO\admin' -m SMB3

2. Dialect

На Windows 2022 клиент SMB1 по умолчанию выключен. Если NAS случайно min protocol SMB1 only (устаревший) — современные клиенты не договорятся. На TrueNAS: Services → SMB → Minimum Protocol. Цель: SMB2_10 или SMB3, не SMB1.

Лог клиента: Event Viewer Microsoft-Windows-SMBClient/Connectivity. Не выдумывайте Event ID: читайте фактический текст ошибки.

3. Время

w32tm /query /status

На NAS01: NTP к тем же DC, что у клиентов. Расхождение > 5 минут убивает Kerberos, симптомы «неверный пароль».

4. Учётка

Локальный пользователь SMB на TrueNAS ≠ доменный. CONTOSO\user требует Directory Services → Active Directory: joined, без expired machine password.

nltest /sc_query:contoso.example
klist

С NAS: статус AD в UI. Не сбивайте join «переприсоединить» без нужды — потеряете SPN.

5. ACL vs шара

После успешного net use файл не пишется: Permissions dataset (ACL). Смотрите пользователя Windows SID mapping (winbind/idmap). Это не dialect.

Пул:

zfs list tank/share

Решение

Сценарий A. Нет 445 / нет пути

Сеть, SMB service, имя шары как в Sharing → SMB. Путь /mnt/tank/share существует (том).

Сценарий B. Клиент SMB1 (сканер)

Отдельный legacy-шлюз или обновление устройства. Не включать SMB1 на NAS01 для всего офиса. Если временно — только isolated VLAN и план вывода.

Сценарий C. Время и Kerberos

Синхронизируйте NTP NAS01 с DC. Подождите выдачи билета, klist purge на клиенте, повторный вход.

Сценарий D. LOGON_FAILURE

Проверьте lockout, пароль, UPN vs SAM. Локальная учётка TrueNAS: правильный backend (SMB). Не смешивайте в одном net use домен и локаль без NAS01\localuser.

Сценарий E. ACCESS_DENIED на файлах

Выдайте группе AD права на dataset через UI ACL, не chmod 777. Для «все как на старом сервере» перенесите ACL осознанно.

Отдельно проверьте SPN: setspn -Q cifs/NAS01.contoso.example. Дубль на старом файловом сервере после миграции на TrueNAS даёт произвольные LOGON_FAILURE. Удалите SPN с выведенного хоста, не с NAS01.

SMB encryption и signing: клиент GPO требует encryption, NAS без него — сессия не встанет. Это не «нужен SMB1». Сверяйте параметры TrueNAS SMB только с документацией вашей версии SCALE, не с копипастой с форума 2017 года.

Домашние каталоги и Previous Versions: если snapshot task мёртв, пользователи думают, что шара сломалась, хотя не открывается только «предыдущая версия». Не чините dialect из-за пустого списка теней.

Как проверить, что проблема устранена

С проблемного ПК:

net use \\NAS01.contoso.example\share /user:CONTOSO\user
echo test > \\NAS01.contoso.example\share\write-test.txt

Файл виден другому клиенту. Get-SmbConnection Dialect SMB 3.x. Повтор после ребута ПК. Сканер, если был в скоупе, — отдельный тест.

Если не помогло

  • Mac NT_STATUS_MORE_PROCESSING_REQUIRED: signing/NTLM, версия macOS — не отключайте signing на всём NAS.
  • DFS namespace поверх NAS: чините DFS, не TrueNAS.
  • Только после 18:00: AD site, DC недоступен, NTLM fallback странный.
  • Многоканальный SMB: один NIC без IP в подсети клиента — обрывы, не «права».

Профилактика

  • SMB3, signing по политике организации.
  • NTP на NAS01.
  • Мониторинг smbd и AD join.
  • Документ: какие шары локальные, какие AD.
  • Запрет SMB1 на сервере.
  • Не публиковать одну шару и в интернет.

Имеет смысл держать «золотой» тест: одна доменная учётка без лишних групп, один локальный SMB-пользователь для аварийного входа, когда AD лежит, и запрет guest. После любого патча SCALE прогоните smbclient -L и запись файла с Windows 2022 — это ловит смену min protocol раньше, чем бухгалтерия.

Не смешивайте в одной шаре NFSv4 ACL и «простые» POSIX chmod как два источника истины: Windows увидит отказ, Linux — успех, и вы неделю будете крутить dialect. Выберите модель ACL датасета и документируйте её в паспорте NAS01.

FAQ

Включить SMB1 на час?

Только изолированно и с записью в тикет, что выключите. Не «навсегда для совместимости».

Почему с IP работает, с именем нет?

Kerberos/SPN/DNS. Зарегистрируйте имя, не учите пользователей на IP.

Нужен ли guest?

Нет для корпоративных данных. Guest + writable share — прощай конфиденциальность.

TrueNAS «Reset SMB» поможет?

Перезапуск службы — да при зависшем smbd. Reset конфига — нет, потеряете шары.

Windows говорит «policy does not allow unauthenticated guest»

Это клиент 2022+. Не включайте insecure guest, заведите учётку.