Liste des partages smb disponibles sur un réseau via la ligne de commande sous linux

32

Je me demandais s'il y avait un moyen de lister tous les serveurs smb sur un réseau local (comme regarder un voisinage réseau dans Windows) via la ligne de commande de fedora.

jcb344
la source
Que voulez-vous dire par «serveurs smb»? Voulez-vous dire les serveurs Samba , ou voulez-vous dire tous les serveurs de fichiers (que ce soit Samba ou Windows, que ce soit dans le mien ou dans d'autres groupes de travail / domaines) qui parlent le protocole SMB?
Kurt Pfeifle
1
De plus, le titre de votre question (mentionnant «actions smb») contredit quelque peu son texte (mentionnant «serveurs smb»). Lequel vouliez-vous dire?
Kurt Pfeifle

Réponses:

43

Cette commande est un secret très peu connu de Samba. Il renvoie les adresses IP de tous les serveurs Samba dans son propre domaine de diffusion:

nmblookup __SAMBA__

Celui-ci renvoie une liste de tous les noms NetBIOS et leurs alias de tous les serveurs Samba du voisinage (il effectue une «requête d'état du nœud» ):

nmblookup -S __SAMBA__

Celui-ci renvoie une liste de toutes les adresses IP des serveurs SMB (c'est-à-dire Linux + Unix / Samba ou Windows) dans le quartier:

nmblookup '*'

Enfin, tous les noms NetBIOS et leurs alias de tous les serveurs SMB (Linux + Unix / Samba ou Windows):

nmblookup -S '*'


La commande donnée dans l'autre réponse nmblookup -S WORKGROUPne renvoie PAS tous les serveurs Samba ou SMB du voisinage. Au lieu de cela, il renvoie les noms NetBIOS de tous les serveurs qui se trouvent être membres d'un groupe de travail nommé «WORKGROUP» . Les résultats sont indépendants du système d'exploitation des serveurs (que ce soit Windows ou Linux / Samba) - et c'est un fait bien connu que parfois de nombreux serveurs membres de Windows font partie d'un domaine ou d'un groupe de travail contrôlé par Samba. [Oui, il arrive que le nom de groupe de travail par défaut de Samba soit 'WORKGROUP' ... mais alors quoi ??]. - Mais la question était "Comment puis-je connaître tous les serveurs SMB (Samba?!?) Dans mon voisinage réseau?"

Kurt Pfeifle
la source
Cela devrait être marqué comme la bonne réponse.
rbellamy
4
À l'aide de ces suggestions, je ne vois que le partage Samba sur le serveur sur lequel je suis actuellement. Pour vraiment détecter un autre serveur Samba (il a un groupe de travail WORKGROUP), j'ai dû exécuter nmblookup -S WORKGROUP.. je ne sais pas vraiment comment lister n'importe quel serveur depuis nmblookup -S '*'et les autres commandes n'ont renvoyé que le serveur local comme mentionné ci-dessus.
davidhq
Pour moi aussi, l'autre réponse a mieux fonctionné, bien qu'elle ne soit pas correcte. nmblookup -S '*'renvoie uniquement le serveur local. plus d'informations pourraient être nécessaires ... SAMBA ne renvoie que des serveurs samba, alors que j'aimerais tous tous les partages SMB (fenêtres incluses). Au moins, j'ai trouvé le partage de fenêtre qui faisait partie de WORKGROUP. Je ne sais pas pourquoi tout le tapage sur samba / smbd, et pourquoi cette réponse gagnerait des points.
Fred
@Fred: La réponse dit explicitement (pas assez clairement?!?) Que (1) avec __SAMBA__vous obtenez les serveurs Samba , et (2) avec '*'vous obtenez tous les serveurs SMB . Cette réponse obtient des points car c'est la bonne.
Kurt Pfeifle
Je dis seulement que cela ne fonctionne pas sur mon ordinateur. J'utilise ubuntu 16.04, nmblookup du paquet samba-common-bin 2: 4.3.8 + dfsg-0ubuntu1. Peut-être qu'il y a un problème avec mon environnement. Ou régression dans les outils, cela fait longtemps que cette question n'a pas reçu de réponse. Le commentaire précédent suggère que je ne suis pas le seul à voir ce comportement.
Fred
12
nmblookup -S WORKGROUP 

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

andyortlieb
la source
Vous devrez peut-être modifier les paramètres du pare-feu lors d'une installation par défaut.
Ophidian
2
Je vais voter contre cette réponse. - Je ne peux pas croire une telle MAUVAIS réponse obtient 2 upvotes. La commande donnée répertorie uniquement les serveurs qui sont membres d'un groupe de travail nommé "groupe de travail". Et il les répertorie quel que soit le système d'exploitation (Samba / Linux ou non, Windows ou non). La question était de connaître tous les serveurs SAMBA du réseau local (quel que soit le nom du groupe de travail).
Kurt Pfeifle
7
En fait, il n'a pas dit qu'il cherchait tous les serveurs de samba. Il a dit "tous les serveurs smb". Je suppose que je n'ai pas élaboré dans la mesure où vous l'avez fait, en ce sens que vous pouvez rechercher des groupes de travail génériques - mais vraiment, j'ai clairement indiqué que je faisais référence au manuel, et j'ai obtenu l'OP ce dont il avait besoin. Sans parler, j'ai répondu un demi-mois avant vous - je ne comprends pas pourquoi vous êtes si déformé.
andyortlieb
10

Sur mon réseau - au moment où j'écris (les choses changent) - smbtree est ma solution préférée. Il vous demande votre mot de passe (c'est-à-dire votre mot de passe Samba), puis il donne une liste bien détaillée qui comprend le nom de netbios, les partages disponibles et la description du partage.

nmblookup, d'autre part, ne répertorie pas tous les partages disponibles sur mon réseau. Je ne sais pas pourquoi ce n'est pas le cas, mais ce n'est pas le cas.

Depuis la page de manuel de smbtree:

smbtree est un programme de navigation smb en mode texte. Il est similaire au "Voisinage réseau" trouvé sur les ordinateurs Windows. Il imprime une arborescence avec tous les domaines connus, les serveurs de ces domaines et les partages sur les serveurs.

La commande nmblookup a plus de commutateurs et d'options. La page de manuel nmblookup: manuel nmblookup manuel nmblookup

Noté pour la postérité - car ces réponses persistent - et comme je l'ai dit, je trouve que smbtree serait une meilleure réponse au PO sur mon réseau.

Corvus B
la source
La sortie de smbtree est super! - J'aimerais qu'il n'ait pas demandé mon PWD quand je me suis connecté à un root tho, jamais vu ça avant!
FreeSoftwareServers du
@FreeSoftwareServers Essayez smbtree -Nsi vous cherchez des services qui n'ont pas besoin de mots de passe.
Ben C
Je comprends, il voulait que le mot de passe SMB ne soit pas mon mot de passe root, ils étaient probablement les mêmes, mais oui j'ai mes partages restreints au pool d'adresses IP non DHCP, mais pas de mot de passe
FreeSoftwareServers
4

une meilleure façon, imprimée plus diaboliquement, est d'utiliser 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
la source
1
@ Corvus-B avait déjà suggéré smbtreeune réponse bien avant.
user4838962
3

Une autre façon de le faire est via Avahi (Bonjour), tant que les serveurs publient:

avahi-browse -r _smb._tcp
hooby3dfx
la source
3

Dans la version 4 de samba, nmblookup '*'ne fonctionne plus; il ne donne que le serveur local. Il fonctionnait dans la version 3 de samba.

Maintenant, vous devez utiliser nmblookup WORKGROUPce qui, comme Kurt l'a mentionné, ne renvoie que les serveurs du groupe de travail WORKGROUP.

Doke
la source