Вопрос или проблема
Мой хост-ноутбук работает на Windows 11 Home. Гостевая виртуальная машина VirtualBox — это Ubuntu 22.04.
- IP адрес Ubuntu:
192.168.56.102
- IP адрес Windows:
192.168.56.11
И хост, и гость находятся в одной WORKGROUP.
Я могу получить доступ к общим папкам напрямую через файловые менеджеры как хостовой, так и гостевой ОС:
- С Windows 11:
\\192.168.56.102\share
- С Ubuntu:
smb://192.168.56.11/share
Все работает как задумано. Вот вопрос, который мучает сеть Windows и Samba.
Почему я не вижу имена КОМПЬЮТЕРОВ в сетевых папках файловых менеджеров? Поскольку SMB1 устарел, должен ли я их видеть?
Когда я запускаю smbclient
, я получаю следующее.
Запрос адреса гостя Ubuntu:
# smbclient -L \\192.168.56.102 -U root
Пароль для [WORKGROUP\root]:
Имя общего ресурса Тип Комментарий
------------------ ---- -------
print$ Диск Драйверы принтеров
share Диск Samba на Ubuntu 22.04
IPC$ IPC IPC Сервис
HP Printer HP Deskjet 4100
SMB1 отключен — рабочая группа недоступна
Запрос адреса хоста Windows:
# smbclient -L \\192.168.56.11 -U root
Пароль для [WORKGROUP\root]:
не удалось установить сессию: NT_STATUS_LOGON_FAILURE
Я думаю, вы сами ответили на свой вопрос.
“Имя компьютера” в этом контексте относится к имени NetBIOS машин. NetBIOS — это функция SMBv1, и без этого нет NetBIOS. Ни Windows, ни Samba по умолчанию не включают SMBv1.
Windows использует другой метод для “обнаружения” хостов в сети, а именно WS-Discovery.
В Ubuntu 22.04 вы можете включить WS-Discovery на стороне сервера, установив пакет wsdd:
sudo apt install wsdd
Это позволит Windows 10/11 обнаруживать ваш сервер Linux Samba в Проводнике.
В Ubuntu 22.04 это работает только в одном направлении. Windows может обнаруживать Linux, но не наоборот.
В Ubuntu 24.04 есть немного другая реализация, которая включается с помощью пакета wsdd-server. Иронично, что это также позволяет ws-discovery на стороне клиента Linux, чтобы он мог обнаруживать хосты Windows 10/11
Ответ или решение
Должны ли сетевые папки в Windows и Ubuntu отображать общие ресурсы?
Работа с сетевыми ресурсами в среде смешанных операционных систем, таких как Windows и Ubuntu, часто вызывает вопросы у пользователей, особенно касающиеся видимости общих ресурсов в сетевых папках. В этом ответе мы подробно разберем вашу ситуацию и проанализируем, почему компьютеры и их сетевые ресурсы не отображаются, а также предложим решения для улучшения видимости.
Текущая ситуация
Вы используете Windows 11 Home в качестве хоста и Ubuntu 22.04 как виртуальную машину в VirtualBox. Обе системы находятся в одной рабочей группе (WORKGROUP), и вы успешно получите доступ к общим ресурсам по IP-адресам:
- Windows 11 может получить доступ к общему ресурсу Ubuntu через
\\192.168.56.102\share
- Ubuntu может получить доступ к общему ресурсу Windows через
smb://192.168.56.11/share
Тем не менее, вы заметили, что компьютеры не отображаются в сетевых папках, что вызывает вопросы.
Почему компьютеры не отображаются?
Причина этого кроется в использовании протоколов сетевого взаимодействия. В Windows используется инструмент NetBIOS для нахождения других устройств в сети, но на современных системах, начиная с Windows 10 и 11, поддержка NetBIOS и SMBv1 по умолчанию отключена. Ваша ситуация подтверждается следующими фактами:
-
SMB1 отключен: Вы упоминаете, что SMB1 отключен и доступ к рабочей группе невозможен из-за этого. Без этого протокола системы не могут обмениваться присвоенными именами компьютеров так эффективно, как это было в прошлом.
-
WS-Discovery: Windows использует метод WS-Discovery для обнаружения узлов в сети. Ubuntu по умолчанию не поддерживает этот метод, что приводит к отсутствию функциональности обнаружения для Linux-систем в Windows.
-
smbclient: В вашем выводе
smbclient -L \\192.168.56.102
видно, что ваш Ubuntu VM должным образом отвечает на запросы, показывая доступные ресурсы, однако попытка подключения к Windows черезsmbclient
приводит к ошибке NT_STATUS_LOGON_FAILURE. Это указывает на возможные проблемы с аутентификацией.
Решение проблемы
Для улучшения видимости ваших сетевых ресурсов можно предпринять следующие шаги:
-
Установить wsdd в Ubuntu:
Установите пакет wsdd (Web Services Dynamic Discovery) на вашей Ubuntu-машине. Это позволит Ubuntu обмениваться данными о доступных сервисах с Windows, тем самым улучшая видимость в сетевом окружении Windows.sudo apt install wsdd
После установки запустите службу wsdd, и вы должны увидеть, что Windows теперь может обнаруживать ресурсы Ubuntu.
-
Проверить параметры SMB:
Возможно, потребуется убедиться, что конфигурация Samba на Ubuntu правильно настроена. Проверьте файл конфигурации/etc/samba/smb.conf
и убедитесь, что параметры, связанные с рабочими группами и общими ресурсами, настроены корректно. -
Обновление Ubuntu:
В будущих версиях, таких как Ubuntu 24.04, ожидается улучшенная функциональность, где будет доступен пакет wsdd-server, который позволит не только обнаруживать ресурсы Ubuntu из Windows, но и наоборот.
Заключение
Выводя из описанных факторов, можно сказать, что отсутствие отображения компьютеров в сетевых папках связано с различиями в используемых протоколах и методах обнаружения узлов. Установив wsdd на Ubuntu и убедившись, что у вас правильно настроен Samba, вы сможете значительно улучшить видимость ресурсов в смешанной среде.
После выполнения предлагаемых шагов, вы должны заметить улучшение в доступности общих ресурсов, что упростит вашу работу в мультиплатформенной сети.