Назад | Перейти на главную страницу

Вывод списка доступных общих ресурсов smb в сети через командную строку в linux

Мне было интересно, есть ли способ перечислить все серверы 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?!?) В моем сетевом окружении?»

В моей сети - на момент написания этой статьи (все меняется) - я предпочитаю 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