web-dev-qa-db-fra.com

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

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 dans Fedora.

34
jcb344

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 WORKGROUP ne [~ # ~] pas [~ # ~] retourne tout Samba ou tout SMB serveurs du quartier. 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 il est 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 tout savoir SMB (Samba?!?) Serveurs dans mon voisinage réseau? '

46
Kurt Pfeifle
12
andyortlieb

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: page de 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.

11
Corvus B

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

avahi-browse -r _smb._tcp
4
hooby3dfx

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
4
Stagira

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 WORKGROUP, qui, comme l'a mentionné Kurt, ne renvoie que les serveurs du groupe de travail WORKGROUP.

3
Doke