Elenco delle condivisioni smb disponibili su una rete tramite la riga di comando in linux


32

Mi chiedevo se esiste un modo per elencare tutti i server smb su una rete locale (come guardare un quartiere di rete in Windows) tramite la riga di comando in fedora.


Cosa intendi con "server smb"? Intendi server Samba o intendi tutti i file server (se Samba o Windows, sia nel mio o in altri gruppi di lavoro / domini) che parlano il protocollo SMB?
Kurt Pfeifle,

1
Inoltre, il titolo della tua domanda (menzionando "condivisioni smb") in qualche modo contraddice il suo testo (menzionando "server smb"). Quale intendevi?
Kurt Pfeifle,

Risposte:


43

Questo comando è un segreto poco conosciuto di Samba. Restituisce gli indirizzi IP di tutti i server Samba nel proprio dominio di trasmissione:

nmblookup __SAMBA__

Questo restituisce un elenco di tutti i nomi NetBIOS e dei loro alias di tutti i server Samba nelle vicinanze (esegue una "query sullo stato del nodo" ):

nmblookup -S __SAMBA__

Questo restituisce un elenco di tutti gli indirizzi IP dei server SMB (ovvero Linux + Unix / Samba o Windows) nelle vicinanze:

nmblookup '*'

Infine, tutti i nomi NetBIOS e i loro alias di tutti i server SMB (Linux + Unix / Samba o Windows):

nmblookup -S '*'


Il comando dato in altra risposta nmblookup -S WORKGROUPnon non restituisce tutte Samba o tutti i server SMB del quartiere. Al contrario, restituisce tutti i nomi NetBIOS dei server che risultano essere membri di un gruppo di lavoro denominato "WORKGROUP" . I risultati sono indipendenti dal sistema operativo dei server (sia Windows che Linux o Samba) - ed è risaputo che a volte molti server membri Windows fanno parte di un dominio o gruppo di lavoro controllato da Samba. [Sì, capita che il nome predefinito del gruppo di lavoro di Samba sia "WORKGROUP" ... ma che importa ??]. - Ma la domanda era "Come posso conoscere tutti i server SMB (Samba?!?) Nel mio quartiere di rete?"


Questo dovrebbe essere contrassegnato come la risposta corretta.
rbellamy,

4
È interessante notare che usando questi suggerimenti vedo solo la condivisione Samba sul server in cui mi trovo attualmente. Per rilevare davvero un altro server Samba (ha un gruppo di lavoro WORKGROUP), ho dovuto eseguire nmblookup -S WORKGROUP.. non sono sicuro di come elencare davvero qualsiasi server poiché nmblookup -S '*'e altri comandi hanno restituito solo il server locale come menzionato sopra.
davidhq,

Anche per me, l'altra risposta ha funzionato meglio, sebbene non sia corretta. nmblookup -S '*'restituisce solo il server locale. potrebbero essere necessarie ulteriori informazioni ... SAMBA restituisce solo server samba, mentre tutti mi piacerebbe condividere tutte le PMI (finestre incluse). Almeno ho trovato la condivisione della finestra che faceva parte di WORKGROUP. Non sono sicuro del motivo per cui tutte le storie su samba / smbd e perché questa risposta ottenga i punti.
Fred

@Fred: la risposta dice esplicitamente (non abbastanza chiaramente?!?) Che (1) con __SAMBA__te ottieni i server Samba e (2) con '*'te ottieni tutti i server SMB . Questa risposta ottiene punti perché è quella corretta.
Kurt Pfeifle,

Dico solo che non funziona sul mio computer. Sto usando Ubuntu 16.04, nmblookup dal pacchetto samba-common-bin 2: 4.3.8 + dfsg-0ubuntu1. Forse c'è qualcosa che non va nel mio ambiente. O regressione negli strumenti, è da molto tempo che a questa domanda viene data risposta. Il commento precedente suggerisce che non sono solo a vedere questo comportamento.
Fred

12

Potrebbe essere necessario modificare le impostazioni del firewall su un'installazione predefinita.
Ophidian,

2
Voterò questa risposta. - Non posso credere che una risposta così SBAGLIATA ottenga 2 voti. Il comando dato elenca solo i server che sono membri di un gruppo di lavoro denominato "gruppo di lavoro". E li elenca indipendentemente dal sistema operativo (Samba / Linux o no, Windows o no). La domanda riguardava la conoscenza di tutti i server SAMBA sulla rete locale (indipendentemente dal nome del gruppo di lavoro).
Kurt Pfeifle,

7
In realtà, non ha detto che stava cercando tutti i server di samba. Ha detto "tutti i server smb". Suppongo di non aver elaborato nella misura in cui lo hai fatto, in quanto puoi cercare gruppi di lavoro con caratteri jolly - ma in realtà, ho chiarito che stavo facendo riferimento al manuale e ho ottenuto il PO di cui aveva bisogno. Per non parlare, ho risposto mezzo mese prima di te - non capisco per cosa sei così fuori forma.
Andyortlieb,

10

Sulla mia rete - al momento della stesura (le cose cambiano) - smbtree è la mia soluzione preferita. Richiede la tua password (che significa la tua password Samba), quindi fornisce un elenco ben dettagliato che include il nome netbios, le condivisioni disponibili e la descrizione della condivisione.

nmblookup, d'altra parte, non elenca tutte le condivisioni disponibili sulla mia rete. Non so perché non lo sia, ma non lo è.

Dalla pagina man di smbtree:

smbtree è un programma per browser smb in modalità testo. È simile al "Network Neighbourhood" presente sui computer Windows. Stampa un albero con tutti i domini noti, i server in quei domini e le condivisioni sui server.

Il comando nmblookup ha più opzioni e opzioni. La pagina man di nmblookup : pagina man di nmblookup

Notato per i posteri - dato che queste risposte restano intorno - e come ho detto, trovo che smbtree sarebbe una risposta migliore al PO sulla mia rete.


L'output di smbtree è fantastico! - Vorrei che non chiedesse il mio PWD quando sono collegato a un root, ma non l'ho mai visto prima!
FreeSoftwareServers il

@FreeSoftwareServers Prova smbtree -Nse stai cercando servizi che non richiedono password.
Ben C,

Capisco, voleva che la password SMB non fosse la mia password di root, probabilmente erano uguali, ma sì, ho le mie condivisioni limitate al pool di indirizzi IP non dhcp, ma nessuna password
FreeSoftwareServers

4

un modo migliore, stampato più diabolicamente, è usare 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 aveva già suggerito smbtreein una risposta molto prima.
user4838962

3

Un altro modo per farlo è tramite Avahi (Bonjour), purché i server pubblichino:

avahi-browse -r _smb._tcp

3

Nella versione 4 di samba, nmblookup '*'non funziona più; fornisce solo il server locale. Funzionava in samba versione 3.

Ora devi usare nmblookup WORKGROUP, che come menzionato Kurt, restituisce solo server nel gruppo di lavoro WORKGROUP.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.