Мне было интересно, есть ли способ перечислить все серверы smb в локальной сети (например, посмотреть на сетевое окружение в Windows) через командную строку в Fedora.
Эта команда - очень малоизвестный секрет Samba. Он возвращает IP-адреса всех Самба серверы в собственном широковещательном домене:
nmblookup __SAMBA__
Этот возвращает список всех имен NetBIOS и их псевдонимов всех серверов Samba в окрестности (он выполняет 'запрос статуса узла'):
nmblookup -S __SAMBA__
Он возвращает список всех IP-адресов SMB серверы (то есть Linux + Unix / Samba или Windows) по соседству:
nmblookup '*'
Наконец, все имена NetBIOS и их псевдонимы всех серверов SMB (Linux + Unix / Samba или Windows):
nmblookup -S '*'
Команда, указанная в другом ответе nmblookup -S WORKGROUP
делает НЕ вернуть все Samba или все SMB-серверы из соседства. Вместо этого он возвращает имена NetBIOS всех серверов. которые оказались членами рабочей группы под названием "WORKGROUP". Результаты не зависят от ОС серверов (будь то Windows или Linux / Samba) - и это хорошо известный факт, что иногда многие рядовые серверы Windows являются частью домена или рабочей группы, контролируемого Samba. [Да, бывает, что имя рабочей группы Samba по умолчанию - «WORKGROUP» ... ну и что ??]. - Но вопрос был «Как мне узнать обо всех серверах SMB (Samba?!?) В моем сетевом окружении?»
nmblookup -S WORKGROUP
из: https://web.archive.org/web/20101121043732/http://brneurosci.org/linuxsetup38b.html
В моей сети - на момент написания этой статьи (все меняется) - я предпочитаю smbtree. Он запрашивает ваш пароль (имеется в виду ваш пароль Samba), а затем предоставляет хорошо подробный список, который включает имя netbios, доступные общие ресурсы и описание общего ресурса.
nmblookup, с другой стороны, не перечисляет все доступные общие ресурсы в моей сети. Не знаю, почему этого не происходит, но это не так.
На странице руководства smbtree:
smbtree - это программа браузера smb в текстовом режиме. Это похоже на «Сетевое окружение» на компьютерах Windows. Он печатает дерево со всеми известными доменами, серверами в этих доменах и общими ресурсами на серверах.
У команды nmblookup есть больше переключателей и опций. Страница руководства nmblookup: страница руководства nmblookup
Примечателен для потомков - поскольку эти ответы остаются - и, как я уже сказал, я считаю, что smbtree было бы лучшим ответом на OP в моей сети.
В версии 4 самбы nmblookup '*'
больше не работает; он дает только локальный сервер. Раньше это работало в версии 3 самбы.
Теперь вам нужно использовать nmblookup WORKGROUP
, который, как упомянул Курт, возвращает только серверы в рабочей группе WORKGROUP
.
Другой способ сделать это - через Avahi (Bonjour), пока серверы публикуют:
avahi-browse -r _smb._tcp
Лучше использовать smbtree, напечатанный более изящно.
$ smbtree
Enter user01's password: DOMAIN_A
\\FREEBOX_SERVER Freebox Server
\\FREEBOX_SERVER\IPC$ IPC Service (Freebox Server)
\\FREEBOX_SERVER\Disque dur AutoShare of fbxhdiskd partition 2