Conectarse con Samba a un recurso compartido de Windows devuelve "NT_STATUS_DUPLICATE_NAME"

10

Establecí un directorio compartido en mi máquina con Windows y otorgué permisos de control total a username @ workgroup.

Cuando intento conectarme a la máquina Windows con Linux usando smbclient, aparece el error NT_STATUS_DUPLICATE_NAME. Aquí está la transcripción:

$ smbclient -U username -W workgroup -L //windows-machine
Enter username's password: 
Domain=[workgroup] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
tree connect failed: NT_STATUS_DUPLICATE_NAME

Si entro intencionalmente el mal nombre de usuario, contraseña o grupo de trabajo, me sale un error diferente: NT_STATUS_LOGON_FAILURE. Entonces parece que estoy obteniendo la otra información correcta.

Puse una entrada en / etc / hosts que apunta windows-machinea su dirección IP. El nombre NetBIOS de la máquina Windows es algo diferente.

¿Alguien sabe lo que significa este error?

Neil
fuente

Respuestas:

9

El nombre NetBIOS de la máquina Windows es algo diferente.

Ese es tu problema. Se soluciona fácilmente mediante un hack de registro en la máquina Windows. Consulte http://support.microsoft.com/kb/281308 para obtener más detalles.

Actualizar

El artículo de soporte original vinculado anteriormente ha desaparecido (gracias Microsoft). El nuevo artículo es que el acceso compartido al servidor de archivos SMB no tiene éxito a través del alias DNS CNAME .

Joril también señala que un servidor puede tener múltiples nombres NetBIOS. Esto se hace editando la clave de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\OptionalNames

y agregando los nombres adicionales.

John Rennie
fuente
1
Me pregunto por qué esto no se soluciona solo en un parche.
Neil
No es un error, está deliberadamente diseñado de esa manera. Posiblemente por seguridad, aunque no estoy seguro de por qué precisamente. Supongo que evita que te conectes accidentalmente al servidor incorrecto si tienes entradas falsas en el archivo de hosts o DNS duff. Personalmente puse el hack de registro en todos mis servidores.
John Rennie
el enlace parece muerto (404). De todos modos, la clave debería serHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
Joril
... o mejor aún, opcionalNames
Joril
6

Probablemente esté recibiendo ese error porque la máquina Windows no se entiende identificada como lo que está conectando a ella. (El uso de una información de autenticación incorrecta cambia el error porque este problema no aparece hasta más adelante en el proceso de conexión).

Intente conectarse a él como su número de IP, no windows-machine. Si eso funciona, confirma que el nombre es lo que está sucediendo, y puede resolverlo ya sea haciendo que el PDC se entienda windows-machineo simplemente usando el número IP.

caos
fuente
3

Debe usar el indicador "-m" para especificar la versión máxima del protocolo que usará. Por defecto es "NT1", aquí desde la página de manual de smbclient:

-m|--max-protocol protocol
    This allows the user to select the highest SMB protocol level that
    smbclient will use to connect to the server. By default this is set
    to NT1, which is the highest available SMB1 protocol. To connect
    using SMB2 or SMB3 protocol, use the strings SMB2 or SMB3
    respectively. Note that to connect to a Windows 2012 server with
    encrypted transport selecting a max-protocol of SMB3 is required.

Sospecho que la versión "NT1" se basa en cosas de netbios, a diferencia de SMB2 y siguientes.

Intente nuevamente con "-m SMB3" o "-m SMB2", también se beneficiará mucho en el rendimiento.

ThoSil
fuente
2

puede usar la opción -I y proporcionar la dirección IP.

smbclient -U username -W workgroup -L //windows-machine  -I <machine-ipaddr>
Panciz
fuente
0

No puede usar el nombre de la máquina en / etc / hosts, ni probablemente el nombre del servidor DNS.

Debe usar la dirección IP de la máquina o el nombre NetBIOS de la máquina especificada en Windows.

Para encontrar el nombre NetBIOS en Windows XP:

  1. Haga clic derecho en "Mi PC"
  2. Haga clic en "Propiedades"
  3. Haga clic en la pestaña "Nombre del equipo"
  4. Lea el campo "Nombre completo de la computadora" hasta el primer período '.'
Neil
fuente