Короткий ответ
Живой 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, не диск |
Возможные причины
- SMB service stopped, bind только на mgmt NIC.
- Min protocol SMB2, клиент только SMB1.
- Clock skew NAS01 vs DC.
- TrueNAS не в AD / computer account disabled.
- Неверная NetBIOS alias, старый SPN на другом хосте.
- ACL NFSv4 на dataset режет Windows пользователя.
- Пул
tankне imported — шара в конфиге, путь мёртв. - 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, RequireSecuritySignatureGet-SmbConnection после неудачного net use может быть пуст.
Ubuntu:
smbclient -L //NAS01.contoso.example -U 'CONTOSO\admin' -m SMB32. 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, заведите учётку.