Wyświetlanie dostępnych udziałów SMB w sieci za pośrednictwem wiersza poleceń w systemie Linux

32

Zastanawiałem się, czy istnieje sposób wylistowania wszystkich serwerów smb w sieci lokalnej (np. Przeglądanie sąsiedztwa sieci w Windows) za pomocą wiersza poleceń w Fedorze.

jcb344
źródło
Co masz na myśli mówiąc o „serwerach smb”? Masz na myśli serwery Samby , czy masz na myśli wszystkie serwery plików (niezależnie od Samby lub Windowsa, czy w mojej własnej czy w innych grupach / domenach), które mówią w protokole SMB?
Kurt Pfeifle
1
Także tytuł twojego pytania (wzmianka o „udziałach smb”) jest w pewien sposób sprzeczny z jego tekstem (wzmianka o „serwerach smb”). Który miałeś na myśli?
Kurt Pfeifle,

Odpowiedzi:

43

To polecenie jest bardzo mało znanym sekretem Samby. Zwraca adresy IP wszystkich serwerów Samby we własnej domenie rozgłoszeniowej:

nmblookup __SAMBA__

Ta zwraca listę wszystkich nazw NetBIOS i ich aliasów wszystkich serwerów Samby w sąsiedztwie (wykonuje „zapytanie o status węzła” ):

nmblookup -S __SAMBA__

Ten zwraca listę wszystkich adresów IP serwerów SMB (czyli Linux + Unix / Samba lub Windows) w sąsiedztwie:

nmblookup '*'

Wreszcie, wszystkie nazwy NetBIOS i ich aliasy wszystkich serwerów SMB (Linux + Unix / Samba lub Windows):

nmblookup -S '*'


Polecenie wydane w drugiej odpowiedź nmblookup -S WORKGROUPjest NIE zwraca całą Samba lub wszystkie serwery SMB z sąsiedztwa. Zamiast tego zwraca nazwy wszystkich serwerów NetBIOS, które są członkami grupy roboczej o nazwie „WORKGROUP” . Wyniki są niezależne od systemu operacyjnego serwerów (niezależnie od systemu Windows lub systemu Linux / Samba) - i dobrze wiadomo, że czasami wiele serwerów członkowskich Windows należy do domeny lub grupy roboczej kontrolowanej przez Sambę. [Tak, zdarza się, że domyślna nazwa grupy roboczej Samby to „WORKGROUP” ... ale co z tego?]. - Ale pytanie brzmiało: „Jak poznać wszystkie serwery SMB (Samba?!?) W mojej sieci?”

Kurt Pfeifle
źródło
To powinno być oznaczone jako poprawna odpowiedź.
rbellamy
4
Co ciekawe, korzystając z tych sugestii, widzę tylko udział Samby na serwerze, na którym aktualnie jestem. Aby naprawdę wykryć inny serwer Samby (ma grupę roboczą WORKGROUP), musiałem uruchomić nmblookup -S WORKGROUP.. nie jestem pewien, jak naprawdę wyświetlić listę dowolnego serwera, nmblookup -S '*'a inne polecenia zwróciły tylko serwer lokalny, jak wspomniano powyżej.
davidhq
Również dla mnie druga odpowiedź działała lepiej, choć nie była poprawna. nmblookup -S '*'zwraca tylko serwer lokalny. więcej informacji może być potrzebnych ... SAMBA zwraca tylko serwery samby, podczas gdy wszystkim podobałby się cały udział SMB (w tym okna). Przynajmniej znalazłem udział okna, który był częścią WORKGROUP. Nie jestem pewien, dlaczego całe zamieszanie związane z sambą / smbd i dlaczego ta odpowiedź miałaby sens.
Fred
@Fred: Odpowiedź mówi wprost (nie dość wyraźnie?!?), Że (1) __SAMBA__dostajesz serwery Samba , a (2) '*'dostajesz wszystkie serwery SMB . Ta odpowiedź otrzymuje punkty, ponieważ jest poprawna.
Kurt Pfeifle
Mówię tylko, że to nie działa na moim komputerze. Używam Ubuntu 16.04, nmblookup z pakietu samba-common-bin 2: 4.3.8 + dfsg-0ubuntu1. Może coś jest nie tak z moim środowiskiem. Lub regresja w narzędziach, dawno nie było odpowiedzi na to pytanie. Poprzedni komentarz sugeruje, że nie jestem sam widząc takie zachowanie.
Fred
12
nmblookup -S WORKGROUP 

z: https://web.archive.org/web/20101121043732/http://brneurosci.org/linuxsetup38b.html

andyortlieb
źródło
Może być konieczne dostosowanie ustawień zapory podczas instalacji domyślnej.
Ophidian
2
Głosuję za odpowiedzią. - Nie mogę uwierzyć, że taka ZŁA odpowiedź daje 2 głosy poparcia. Podane polecenie wyświetla tylko serwery, które są członkami grupy roboczej o nazwie „grupa robocza”. I wyświetla je bez względu na system operacyjny (Samba / Linux lub nie, Windows lub nie). Pytanie dotyczyło poznania wszystkich serwerów SAMBA w sieci lokalnej (niezależnie od nazwy grupy roboczej).
Kurt Pfeifle,
7
Właściwie nie powiedział, że szuka wszystkich serwerów samby. Powiedział „wszystkie serwery smb”. Przypuszczam, że nie udało mi się rozwinąć do tego stopnia, w jakim to zrobiłeś, że możesz wyszukiwać grupy robocze z wieloznacznymi symbolami - ale tak naprawdę wyjaśniłem, że odnoszę się do instrukcji i dostałem OP, czego potrzebował. Nie wspominając o tym, że odpowiedziałem pół miesiąca przed tobą - nie rozumiem, o co się tak zginasz.
andyortlieb
10

W mojej sieci - od tego pisania (rzeczy się zmieniają) - smbtree jest moim preferowanym rozwiązaniem. Pyta o twoje hasło (czyli hasło do Samby), a następnie podaje bardzo szczegółową listę, która zawiera nazwę Netbios, dostępne udziały i opis udziału.

nmblookup, z drugiej strony, nie wyświetla wszystkich dostępnych udziałów w mojej sieci. Nie wiem, dlaczego tak nie jest, ale tak nie jest.

Ze strony man smbtree:

smbtree to program do przeglądarki smb w trybie tekstowym. Jest podobny do „Network Neighborhood” na komputerach z systemem Windows. Drukuje drzewo ze wszystkimi znanymi domenami, serwerami w tych domenach i udziałami na serwerach.

Polecenie nmblookup ma więcej przełączników i opcji. Strona podręcznika nmblookup: strona podręcznika nmblookup

Znany z pokolenia na pokolenie - ponieważ te odpowiedzi się nie zmieniają - i jak powiedziałem, uważam, że smbtree byłoby lepszą odpowiedzią na PO w mojej sieci.

Corvus B.
źródło
Wydajność smbtree jest świetna! - Szkoda, że ​​nie prosi o moją PWD, gdy jestem zalogowany jako root, nigdy wcześniej tego nie widziałem!
FreeSoftwareServers
@FreeSoftwareServers Spróbuj, smbtree -Njeśli patrzysz na usługi, które nie potrzebują haseł.
Ben C
Rozumiem, chciał hasło SMB, a nie moje hasło root, prawdopodobnie były takie same, ale tak, moje udziały są ograniczone do puli adresów IP innych niż dhcp, ale bez hasła
FreeSoftwareServers
4

lepszym sposobem, bardziej przyjaźnie wydrukowanym, jest użycie 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
Stagira
źródło
1
@ Corvus-B już dawno zasugerował smbtreew odpowiedzi.
user4838962
3

Innym sposobem na to jest Avahi (Bonjour), o ile serwery publikują:

avahi-browse -r _smb._tcp
hooby3dfx
źródło
3

W wersji 4 samby nmblookup '*'już nie działa; daje tylko serwer lokalny. Kiedyś działał w wersji 3 samby.

Teraz musisz użyć nmblookup WORKGROUP, który, jak wspomniał Kurt, zwraca tylko serwery w grupie roboczej WORKGROUP.

Doke
źródło