Listado de recursos compartidos smb disponibles en una red a través de la línea de comando en linux

32

Me preguntaba si hay una manera de enumerar todos los servidores smb en una red local (como mirar un vecindario de red en Windows) a través de la línea de comando en fedora.

jcb344
fuente
¿Qué quieres decir con 'servidores smb'? ¿Te refieres a los servidores Samba , o te refieres a todos los servidores de archivos (ya sea Samba o Windows, ya sea en mi o en otros grupos de trabajo / dominios) que hablan el protocolo SMB?
Kurt Pfeifle
1
Además, el título de su pregunta (mencionando 'recursos compartidos de smb') contradice de alguna manera su texto (mencionando 'servidores de smb'). ¿A cuál te refieres?
Kurt Pfeifle

Respuestas:

43

Este comando es un secreto muy poco conocido de Samba. Devuelve direcciones IP de todos los servidores Samba en el propio dominio de difusión:

nmblookup __SAMBA__

Este devuelve una lista de todos los nombres de NetBIOS y sus alias de todos los servidores Samba en el vecindario (hace una 'consulta de estado de nodo' ):

nmblookup -S __SAMBA__

Este devuelve una lista de todas las direcciones IP de los servidores SMB (es decir, Linux + Unix / Samba o Windows) en el vecindario:

nmblookup '*'

Finalmente, todos los nombres NetBIOS y sus alias de todos los servidores SMB (Linux + Unix / Samba o Windows):

nmblookup -S '*'


La orden dada en la otra respuesta nmblookup -S WORKGROUPno NO devuelve toda la Samba o todos los servidores SMB desde el barrio. En cambio, devuelve todos los nombres de NetBIOS de los servidores que son miembros de un grupo de trabajo llamado 'GRUPO DE TRABAJO' . Los resultados son independientes del sistema operativo de los servidores (ya sea Windows o Linux / Samba), y es un hecho bien conocido que a veces muchos servidores miembros de Windows son parte de un dominio o grupo de trabajo controlado por Samba. [Sí, sucede que el nombre predeterminado del grupo de trabajo de Samba es 'GRUPO DE TRABAJO' ... pero ¿y qué?]. - Pero la pregunta era '¿Cómo puedo conocer todos los servidores SMB (Samba?!?) En el vecindario de mi red?'

Kurt Pfeifle
fuente
Esto debe marcarse como la respuesta correcta.
rbellamy
44
Curiosamente, usando estas sugerencias solo veo el recurso compartido de Samba en el servidor en el que estoy actualmente. Para detectar realmente otro servidor Samba (tiene el grupo de trabajo GRUPO DE TRABAJO), tuve que ejecutar nmblookup -S WORKGROUP... no estoy seguro de cómo enumerar realmente ningún servidor desde entonces nmblookup -S '*'y otros comandos solo devolvieron el servidor local como se mencionó anteriormente.
davidhq
Para mí también, la otra respuesta funcionó mejor, aunque no fue correcta. nmblookup -S '*'solo devuelve el servidor local. podría necesitarse más información ... SAMBA solo devuelve servidores samba, mientras que a todos me gustaría compartir SMB (ventanas incluidas). Al menos encontré la ventana compartida que formaba parte de WORKGROUP. No estoy seguro de por qué tanto alboroto sobre samba / smbd, y por qué esta respuesta obtendría los puntos.
Fred
@Fred: La respuesta dice explícitamente (¡¿no lo suficientemente claro?!?) Que (1) con __SAMBA__usted obtiene los servidores Samba , y (2) con '*'usted obtiene todos los servidores SMB . Esta respuesta obtiene puntos porque es la correcta.
Kurt Pfeifle
Solo digo que esto no funciona en mi computadora. Estoy usando ubuntu 16.04, nmblookup del paquete samba-common-bin 2: 4.3.8 + dfsg-0ubuntu1. Tal vez hay algo mal con mi entorno. O regresión en las herramientas, ha pasado mucho tiempo esta pregunta fue respondida. El comentario anterior sugiere que no estoy solo viendo este comportamiento.
Fred
12
nmblookup -S WORKGROUP 

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

andyortlieb
fuente
Es posible que deba modificar la configuración del firewall en una instalación predeterminada.
Ophidian
2
Voy a rechazar esta respuesta. - No puedo creer que una respuesta INCORRECTA obtenga 2 votos a favor. El comando dado solo enumera los servidores que son miembros de un grupo de trabajo llamado "grupo de trabajo". Y los enumera independientemente del sistema operativo (Samba / Linux o no, Windows o no). La pregunta era acerca de conocer todos los servidores SAMBA en la red local (independientemente del nombre del grupo de trabajo).
Kurt Pfeifle
77
En realidad, no dijo que estaba buscando todos los servidores de samba. Dijo "todos los servidores de smb". Supongo que no pude elaborar en el grado en que lo hiciste, en el sentido de que puedes buscar grupos de trabajo con comodines, pero realmente, dejé en claro que estaba haciendo referencia al manual, y obtuve el OP lo que necesitaba. Sin mencionar que respondí medio mes antes que tú, no entiendo por qué estás tan fuera de forma.
andyortlieb
10

En mi red, al momento de escribir esto (las cosas cambian), smbtree es mi solución preferida. Pide su contraseña (es decir, su contraseña de Samba) y luego proporciona una lista muy detallada que incluye el nombre de netbios, los recursos compartidos disponibles y la descripción del recurso compartido.

nmblookup, por otro lado, no enumera todos los recursos compartidos disponibles en mi red. No sé por qué no, pero no lo hace.

Desde la página de manual de smbtree:

smbtree es un programa de navegador smb en modo texto. Es similar al "Entorno de red" que se encuentra en las computadoras con Windows. Imprime un árbol con todos los dominios conocidos, los servidores en esos dominios y los recursos compartidos en los servidores.

El comando nmblookup tiene más interruptores y opciones. La página de manual de nmblookup : página de manual de nmblookup

Conocido por la posteridad, ya que estas respuestas se quedan, y como dije, encuentro que smbtree sería una mejor respuesta para el OP en mi red.

Corvus B
fuente
¡La salida de smbtree es genial! - ¡Ojalá no pidiera mi PWD cuando estoy conectado a una raíz aunque nunca antes lo había visto!
FreeSoftwareServers
@FreeSoftwareServers Pruébelo smbtree -Nsi está buscando servicios que no necesitan contraseñas.
Ben C
Entiendo, quería que la contraseña de SMB no fuera mi contraseña de root, probablemente eran las mismas, pero sí, tengo mis recursos compartidos restringidos a un grupo de direcciones IP que no son dhcp, pero no tengo contraseña
FreeSoftwareServers
4

Una mejor manera, más impresa, es usar 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
fuente
1
@ Corvus-B ya había sugerido smbtreeen una respuesta mucho antes.
user4838962
3

Otra forma de hacerlo es a través de Avahi (Bonjour), siempre que los servidores publiquen:

avahi-browse -r _smb._tcp
hooby3dfx
fuente
3

En samba versión 4, nmblookup '*'ya no funciona; solo le da al servidor local. Solía ​​funcionar en samba versión 3.

Ahora, debe usar nmblookup WORKGROUP, lo que, como mencionó Kurt, solo devuelve servidores en el grupo de trabajo WORKGROUP.

Doke
fuente