Проблема
При попытке доступа из приложений KDE (Dolphin) к расшаренными ресурсам по протоколу SMB вылезает ошибка:
The file or folder smb://server/share/ does not exist.
Хотя, при монтировании ресурса из командной строки никаких ошибок нет.
В файлике ~/.xsession-errors такое:
kdeinit5: Got EXEC_NEW '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/smb.so' from launcher. kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/smb.so' kio_smb: Using libsmbclient library version 4.10.0 kio_smb: auth_initialize_smbc kio_smb: smbc_init call kio_smb: QUrl("smb://server/share/") kio_smb: checkURL QUrl("smb://server/share/") kio_smb: checkURL return3 QUrl("smb://server/share/") kio_smb: updateCache "/share" kio_smb: auth_smbc_get_dat: set user= username , workgroup= WORKGROUP server= server , share= share kio_smb: libsmb-auth-callback URL: QUrl("smb://server/share") kio_smb: size 140503533880268 kio_smb: stat() error 22 QUrl("smb://server/share/") kio_smb: updateCache "/share" kio_smb: errNum 22 kf5.kio.widgets: KRun(0x5581baffc970) ERROR 111 "The file or folder smb://server/share/ does not exist."
При попытке прочитать списко шар на сервер с помощью smbclient такое:
smbclient -L //server Unable to initialize messaging context protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
Решение
Оказалось, что проблема в версиях SMB. Клиент и сервер не могут согласовать используемую версию протокола SMB.
Подобрать работающую версию можно с помощью smbclient примерно так:
smbclient -m SMB2 -L //server.domain.local Unable to initialize messaging context Enter username@WORKGROUPS's password:
Sharename Type Comment --------- ---- ------- share Disk Reconnecting with SMB1 for workgroup listing.
Server Comment --------- -------
Workgroup Master --------- -------
Для того, чтобы нормально работали шары в Dolphin нужно файлике /etc/samba/smb.conf в секции [Global] сконфигурировать версию SMB, используемую клиентом:
client max protocol = SMB2 client min protocol = SMB2
Discussion