web-dev-qa-db-fra.com

smbclient trouve le NAS, mais le montage ne le trouve pas

J'essaie de monter automatiquement un lecteur NAS que je dois sur Ubuntu Server, mais cela me pose un problème où il ne semble pas trouver le NAS = nom sur le réseau lorsque je le monte.

Tirer les partages comme celui-ci fonctionne très bien et me donne une impression des partages sur le NAS.

smbclient -L //NASNAMEHERE

J'ai ajouté le partage que je veux à/etc/fstab en utilisant la ligne ci-dessous. Le .smbcredentials le fichier contient le combo utilisateur/passe pour l'accès RW au partage .:

//NASNAMEHERE/Archive    /home/user/Archive        cifs    credentials=/home/user/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

Cependant, lorsque je lance Sudo mount -a pour monter le nouvel appareil, ça me donne ça.

mount error: could not resolve address for martinez-nas: Unknown error

Cela semble être un problème de réseau, car je n'arrive pas à cingler le NAS par nom directement, mais je ne sais pas pourquoi cela ne fonctionnera pas, si smbclient peut trouver correctement le NAS et lister les partages.

Exécuter Ubuntu Server 14.04.2

3
WR7500

La différence est que le client samba effectue des recherches de nom netbios tandis que mount.cifs fait des recherches de nom d'hôte qui nécessitent une sorte de mécanisme DNS côté réseau. CIFS n'a aucune idée de ce qu'est un nom netbios.

Il existe quelques solutions:

[1] Certains routeurs fournissent automatiquement ce mécanisme DNS côté réseau. C'est pourquoi seul un sous-ensemble d'utilisateurs CIFS rencontre ce problème de résolution de noms. Peut-être que votre routeur fait cela, mais il n'est pas activé - cela vaut la peine d'enquêter.

[2] Vous pouvez donner à votre nas une adresse IP statique. Cela peut également être fait sur le routeur si vous ne voulez pas le faire sur le nas lui-même. Ensuite, accédez simplement au serveur par cette adresse IP.

[3] Vous pouvez utiliser un nom d'hôte qualifié mDNS (hostname.local) si votre nas en a un. Actuellement Linux, Win10 (vous devez l'activer), Apple = Les Mac et ces périphériques réseau conçus pour fonctionner avec les Mac ont tous ces noms d'hôte. Si vous connaissez l'adresse IP actuelle du nas, vous pouvez utiliser cette commande (avec la bonne adresse IP) pour voir si elle en a un:

avahi-resolve -a 192.168.1.208

Utilisez le nom de cette sortie et attachez un .local à la fin s'il ne l'a pas déjà.

[4] Et enfin est le "gimmick" de winbind beaucoup mal compris et mal interprété:

Si une application veut résoudre l'adresse IP d'un nom d'hôte, elle regarde le fichier / etc/nsswitch.conf pour savoir comment. Si vous regardez le fichier, vous verrez les différentes manières de le faire: "fichiers" (/ etc/hosts), "mdns4" (mDNS) et "dns" lui-même. Nulle part il n'y a de référence aux netbios. Ajoutez-le donc en plaçant le paramètre wins avant le paramètre dns.

wins à son tour a besoin de la bibliothèque libnss_wins.so et vous l'obtenez lorsque vous installez le package suivant:

Sudo apt install libnss-winbind

L'installation de ce package installe également winbind lui-même.

Vous finissez donc par installer quelque chose (winbind) conçu pour quelque chose de complètement différent afin de faire apparaître un nom netbios comme nom d'hôte pour des choses comme CIFS et ping. À l'époque, cette "solution" a eu des conséquences car elle ralentissait parfois l'accès à Internet, mais étant donné la vitesse relative augmente au fil des ans, je suppose que personne ne le remarquerait.

1
Morbius1

Trouvé cette question qui y répond pour moi. Fondamentalement, Samba peut effectuer des recherches de nom d'hôte, contrairement à mount. J'ai défini l'adresse IP au lieu du nom d'hôte dans /etc/fstab, Et ça a fonctionné comme un charme.

1
WR7500