Auflisten der verfügbaren SMB-Freigaben in einem Netzwerk über die Befehlszeile in Linux


32

Ich habe mich gefragt, ob es eine Möglichkeit gibt, alle SMB-Server in einem lokalen Netzwerk (z. B. eine Netzwerkumgebung in Windows) über die Befehlszeile in Fedora aufzulisten.


Was meinst du mit "smb server"? Meinen Sie Samba- Server oder alle Dateiserver (ob Samba oder Windows, ob in meiner oder in anderen Arbeitsgruppen / Domänen), die das SMB-Protokoll sprechen?
Kurt Pfeifle

1
Auch der Titel Ihrer Frage (unter Erwähnung von "smb shares") widerspricht dem Text (unter Erwähnung von "smb servers"). Welches hast du gemeint?
Kurt Pfeifle

Antworten:


43

Dieser Befehl ist ein sehr wenig bekanntes Geheimnis von Samba. Es gibt IP-Adressen aller Samba- Server in der eigenen Broadcast-Domain zurück:

nmblookup __SAMBA__

Diese gibt eine Liste aller NetBIOS-Namen und ihrer Aliase aller Samba-Server in der Nachbarschaft zurück (es wird eine 'Knotenstatusabfrage' durchgeführt ):

nmblookup -S __SAMBA__

Dieser gibt eine Liste aller IP-Adressen von SMB- Servern ( dh Linux + Unix / Samba oder Windows) in der Nachbarschaft zurück:

nmblookup '*'

Schließlich alle NetBIOS-Namen und deren Aliase aller SMB-Server (Linux + Unix / Samba oder Windows):

nmblookup -S '*'


Der Befehl in der anderen Antwort nmblookup -S WORKGROUPgibt NICHT alle Samba-Server oder SMB-Server aus der Nachbarschaft zurück. Stattdessen werden die NetBIOS-Namen aller Server zurückgegeben, die Mitglied einer Arbeitsgruppe mit dem Namen "WORKGROUP" sind . Die Ergebnisse sind unabhängig vom Betriebssystem des Servers (Windows oder Linux / Samba) - und es ist allgemein bekannt, dass viele Windows-Mitgliedsserver zu einer von Samba kontrollierten Domäne oder Arbeitsgruppe gehören. [Ja, es kommt vor, dass Sambas Standard-Arbeitsgruppenname 'ARBEITSGRUPPE' ist ... aber na und ??]. - Die Frage lautete: "Wie lerne ich alle SMB-Server (Samba?!?) In meiner Netzwerkumgebung kennen?"


Dies sollte als die richtige Antwort markiert werden.
Rbellamy

4
Wenn ich diese Vorschläge verwende, sehe ich interessanterweise nur die Samba-Freigabe auf dem Server, auf dem ich mich gerade befinde. Um wirklich einen anderen Samba-Server zu erkennen (er hat die WORKGROUP-Arbeitsgruppe), musste ich ausführen nmblookup -S WORKGROUP. Ich bin nicht sicher, wie ich einen Server auflisten soll, da nmblookup -S '*'andere Befehle nur den lokalen Server zurückgaben, wie oben erwähnt.
Davidhq

Auch bei mir hat die andere Antwort besser funktioniert, wenn auch nicht richtig. nmblookup -S '*'gibt nur den lokalen Server zurück. Möglicherweise sind weitere Informationen erforderlich. SAMBA gibt nur Samba-Server zurück, während alle SMB-Freigaben (einschließlich Windows) gewünscht werden. Zumindest fand ich die Fensterfreigabe, die zu WORKGROUP gehörte. Ich bin mir nicht sicher, warum die ganze Aufregung um Samba / SMBD und warum diese Antwort die Punkte bringen würde.
Fred

@Fred: Die Antwort sagt explizit (nicht klar genug?!?), Dass (1) mit __SAMBA__Ihnen die Samba- Server und (2) mit '*'Ihnen alle SMB- Server bekommen. Diese Antwort bekommt Punkte, weil es die richtige ist.
Kurt Pfeifle

Ich sage nur, dass dies auf meinem Computer nicht funktioniert. Ich verwende Ubuntu 16.04, nmblookup aus dem Paket samba-common-bin 2: 4.3.8 + dfsg-0ubuntu1. Vielleicht stimmt etwas mit meiner Umgebung nicht. Oder Regression in den Werkzeugen, es ist lange her, dass diese Frage beantwortet wurde. Der vorherige Kommentar legt nahe, dass ich dieses Verhalten nicht alleine sehe.
Fred

12

Möglicherweise müssen Sie die Firewall-Einstellungen bei einer Standardinstallation anpassen.
Ophidian

2
Ich werde diese Antwort ablehnen. - Ich kann nicht glauben, dass solch eine falsche Antwort zwei positive Stimmen bekommt. Der angegebene Befehl listet nur Server auf, die Mitglieder einer Arbeitsgruppe mit dem Namen "workgroup" sind. Und es listet sie unabhängig vom Betriebssystem auf (Samba / Linux oder nicht, Windows oder nicht). Es ging darum, alle SAMBA- Server im lokalen Netzwerk (unabhängig vom Arbeitsgruppennamen) kennenzulernen .
Kurt Pfeifle

7
Eigentlich hat er nicht gesagt, dass er alle Samba-Server sucht. Er sagte "alle SMB-Server". Ich schätze, ich habe es versäumt, so ausführlich zu arbeiten, dass Sie nach Platzhalter-Arbeitsgruppen suchen können - aber ich habe wirklich deutlich gemacht, dass ich auf das Handbuch verweise und das OP habe, was er benötigt. Ganz zu schweigen davon, dass ich einen halben Monat vor dir geantwortet habe - ich verstehe nicht, warum du so unförmig bist.
andyortlieb

10

In meinem Netzwerk - zum jetzigen Zeitpunkt (Dinge ändern sich) - ist smbtree meine bevorzugte Lösung. Es fragt nach Ihrem Kennwort (dh Ihrem Samba-Kennwort) und gibt dann eine schön detaillierte Liste mit dem NetBIOS-Namen, den verfügbaren Freigaben und der Beschreibung der Freigabe aus.

Auf der anderen Seite listet nmblookup nicht alle verfügbaren Freigaben in meinem Netzwerk auf. Ich weiß nicht, warum es nicht geht, aber es geht nicht.

Aus der smbtree-Manpage:

smbtree ist ein smb-Browserprogramm im Textmodus. Es ähnelt der "Netzwerkumgebung" auf Windows-Computern. Es wird ein Baum mit allen bekannten Domänen, den Servern in diesen Domänen und den Freigaben auf den Servern gedruckt.

Der Befehl nmblookup verfügt über weitere Optionen und Optionen. Die nmblookup-Manpage: nmblookup-Manpage

Bekannt für die Nachwelt - da diese Antworten bestehen bleiben - und wie gesagt, ich finde, dass smbtree eine bessere Antwort auf das OP in meinem Netzwerk wäre.


Die Ausgabe von smbtree ist großartig! - Ich wünschte, es hätte nicht nach meinem PWD gefragt, als ich in einem Root angemeldet war, das habe ich noch nie gesehen!
FreeSoftwareServers

@FreeSoftwareServers Versuchen Sie, smbtree -Nwenn Sie Dienste suchen, für die keine Kennwörter erforderlich sind.
Ben C

Ich verstehe, es wollte das SMB-Passwort nicht mein Root-Passwort, sie waren wahrscheinlich gleich, aber ja, ich habe meine Freigaben auf Nicht-DHCP-IP-Adresspool beschränkt, aber kein Passwort
FreeSoftwareServers

4

Ein besserer Weg, teuflischer gedruckt, ist die Verwendung von 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

1
@Corvus-B hatte schon smbtreelange zuvor in einer Antwort vorgeschlagen .
user4838962

3

Eine andere Möglichkeit, dies zu tun, ist über Avahi (Bonjour), sofern die Server Folgendes veröffentlichen:

avahi-browse -r _smb._tcp

3

In Samba Version 4 nmblookup '*'funktioniert dies nicht mehr. es gibt nur den lokalen Server. Früher funktionierte es in Samba Version 3.

Nun müssen Sie verwenden nmblookup WORKGROUP, was, wie Kurt erwähnte, nur Server in Arbeitsgruppen zurückgibt WORKGROUP.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.