Conectarse con SMBCLIENT a Windows 7 produce un error: "error en la negociación del protocolo: ERRDOS: ERRnomem"

7

Tenemos una red doméstica que tiene una combinación de diferentes sistemas operativos, incluidas dos PC con Windows 7 Ultimate, un par de teléfonos Android, una MacBook Pro y dos PC con Linux. Mis compañeros de casa son dueños de todas las máquinas, excepto Linux, y tienen éxito en la creación de redes y el intercambio de archivos con SMB / CIFS en todos sus dispositivos sin ningún problema.

Sin embargo, no puedo hacer que mis máquinas Linux se conecten a sus archivos compartidos: cada vez que lo intento, recibo una respuesta ERRDOS: ERRnomem de Samba (smbclient).

$ smbclient -L \\COMPUTER
Enter zoqaeski's password:
protocol negotiation failed: ERRDOS:ERRnomem

He realizado una variedad de búsquedas para configurar Samba y la respuesta ERRnomem, y aparentemente hay un problema conocido de Windows 7 que requiere un cambio de registro . Sugerí que esta podría ser la solución, pero ninguno de ellos está dispuesto a modificar las claves de registro porque funciona en todos los dispositivos, y en su lugar afirman que no configuré Samba correctamente o no lo hice ' No tenga los controladores más actualizados.

Sin embargo, funciona bien entre mis dos computadoras, y siempre he entendido que los controladores se refieren al software para controlar el hardware ubicado físicamente en la máquina. De cualquier manera, mis sistemas están completamente actualizados: estoy ejecutando Arch Linux (que es una distribución de lanzamiento continuo) con Samba 4.1.14.

¿Hay alguna solución que no implique jugar con las computadoras de mi compañero de casa? Ambos son jugadores con sistemas de alta gama, por lo que parece extraño que me digan que no tienen memoria para compartir archivos.

Robbie
fuente

Respuestas:

11

¡Cambiar la versión SMB / CIFS en uso por smbclient o mount.cifs lo hace todo mejor de nuevo! Para smbclient, incluya " -m SMB2" al final de su consulta para forzarlo a usar el protocolo SMB versión 2. Para mount.cifs, incluya " ver=2.1" en sus opciones, por ejemplo:

//server/share /mnt/point cifs credentials=/my/credentials/.file,vers=2.1,sec=ntlm 0 0

No he avanzado más en averiguar qué versiones están disponibles porque esto me funcionó, pero sospecho que debería ser la verdadera solución para todas las quejas de conectividad.

Ping Squiddy
fuente
2
Esto funcionó para mí. No fue necesario cambiar las claves de registro como sugieren las otras soluciones.
jdhildeb
1

El problema no es su configuración de Samba aquí porque las máquinas en la red pueden acceder a sus recursos compartidos sin problema.

El mensaje de error muestra claramente que smbclientWindows devolvió un error de memoria . La única solución aquí es que sus compañeros de casa cambien la configuración de memoria del sistema en sus cuadros de Windows. El uso de memoria para el grupo compartido será insignificante, ¿por qué se quejan?

La misma fuente contiene la corrección: http://www.dedoimedo.com/computers/windows-7-samba-errnomem.html

Kinnectus
fuente
0

NOTA: Digamos que ejecuta el servidor, no los clientes, también hay una solución alternativa. Pero sí, si usted es el cliente de Linux, vaya con el cambio de versión de SMB .

La siguiente solución también se describe en la wiki de Arch Linux .

Ahora, como describen las páginas enlazadas en esta respuesta , en Windows, modifique las siguientes claves de registro (he votado a favor de la otra respuesta que funcionó para mí, pero es útil tener los puntos clave aquí):

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache; cambiar por defecto 0 a 1
  2. HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size; cambiar por defecto 1 a 3

Microsoft TechNet explica el LargeSystemCacheparámetro en detalle .

Todo lo que puedo decir es que esto permitió que el servidor de Windows permanezca activo sin modificar los clientes.

chappjc
fuente