web-dev-qa-db-fra.com

Faire en sorte que Nautilus mount SMB partage avec le protocole 2.0

Lorsque je monte mon partage SMB via Nautilus, la vitesse de transfert est lente. J'ai donc fait des recherches et j'ai constaté que lorsque je monte le partage via CLI et que je règle spécifiquement la version du protocole sur 2.0, c'est beaucoup plus rapide.

Voici la commande que j'utilise sur la CLI:

Sudo mount -t cifs -o vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000 //nas/video /media/lukas/nas

Comment faire en sorte que Nautilus utilise la version 2.0 lors du montage de mon partage?

  • La version de Nautilus est "GNOME nautilus 3.26.3"
  • La version du shell Gnome est "GNOME Shell 3.28.3"
  • La version Ubuntu est "18.04.1 LTS"
6
Lukas Knuth

J'ai une suggestion alternative si cela vous intéresse. Au lieu de jouer avec la façon dont le client samba accède au NAS - ce qui, comme je l’ai dit, ne devrait pas être nécessaire, car il utilisera SMB2/3 seul si nécessaire - pourquoi ne pas utiliser CIFS automatiquement?

Ajoutez la ligne suivante à la fin de/etc/fstab:

//nas/video /media/lukas/nas cifs vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000,noauto,user 0 0

Remarque: le serveur peut également être exprimé sous la forme d'un nom d'hôte qualifié mDNS s'il le prend en charge: // nas.local/video Ou une adresse IP: // 192.168.0.100/video

Comment cela fonctionnera:

noauto = fera en sorte qu'il ne monte pas au démarrage. Nous allons configurer cela pour utiliser CIFS à la demande quand vous en aurez besoin - utile si vous avez un ordinateur portable.

tilisateur = fera en sorte qu'un utilisateur ordinaire (non Sudo) puisse monter le partage.

point de montage = Puisqu'il est sous/media, cela induira une réponse udisks:

(1) Une icône apparaîtra sur le panneau latéral de Nautilus.

(2) Ce sera "actionable" - cliquez dessus et le système ira à fstab pour savoir comment le monter puis le monte - cliquez à nouveau dessus pour démonter le partage.

Il y a un avantage secondaire à cette approche. L'icône qu'il ajoutera à Nautilus apparaîtra également dans la plupart de vos applications, comme gedit> Ouvrir, par exemple. Ensuite, vous pouvez monter le partage directement depuis votre application.

Note à toute personne lisant ceci : Le point de montage est important ici. Pour que la magie udisks fonctionne, le point de montage doit se trouver sous/media ou votre répertoire personnel.

2
Morbius1

La réponse courte est que Nautilus le fait déjà. Vous faites peut-être l'expérience de la différence entre CIFS (contrôlé par le noyau Linux) et un montage gvfs/smbclient (utilisé par Nautilus) du partage. La méthode CIFS semble être plus rapide peut-être à cause de la surcharge de gvfs.

Le client samba utilisé par Nautilus négociera avec le serveur pour trouver le meilleur dialecte SMB à utiliser entre un "min" antérieur à SMB1 et un "max" de SMB3_11.

Le noyau Linux commençant par 4.13.5 négociera également avec le serveur utilisant CIFS entre SMB2.1 et SMB3.

Je suppose que vous pouvez annuler ce que le client samba fait naturellement dans Nautilus en ajoutant la valeur min à /etc/samba/smb.conf, mais cela ne devrait faire aucune différence: placez cette ligne dans la section [global] comme ci-dessous. groupe de travail = WORKGROUP ligne:

client min protocol = SMB2

Il existe différentes variantes de SMB2: SMB2_02, SMB2_10, SMB2_22, SMB2_24. Par défaut, "SMB2" sélectionne "SMB2_10". Assurez-vous simplement de ne rien ajouter pour la valeur maximale.

EDIT: Il semble y avoir une certaine confusion quant à l'endroit où vous placez la ligne "client min protocol" - dans le serveur ou dans le client. Il a été suggéré que ce soit dans le serveur.

Si je configure un serveur 18.04 et que je spécifie "client min protocol = SMB2" sur le serveur, j'y accède avec un client Ubuntu 16.04 qui, par conception, peut au mieux (sans modification) uniquement accéder au serveur avec SMB1 (également appelé NT1). résultat de cet accès sur le serveur:

xxx@srvub1804:~$ Sudo smbstatus

Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   **Protocol**               
-------------------------------------------------------------------------------------
4681    nobody       nogroup      vub1604 (ipv4:192.168.1.140:45648)        **NT1**

Il n'y a pas de changement car le client accède toujours au serveur à l'aide de SMB1 (NT1).

Si toutefois je modifie le paramètre client min/man du client sur "client min protocole = SMB2" et "client max protocole = SMB3" et supprime le "client min protocole" du serveur, je me retrouve là où je m'attendais:

xxx@srvub1804:~$ Sudo smbstatus


Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   **Protocol**             
-------------------------------------------------------------------------------------
4915    nobody       nogroup      vub1604 (ipv4:192.168.1.140:45664)        **SMB3_11**

Je pense que la confusion provient d'un autre paramètre appelé "protocole minimal" (ou "protocole minimal du serveur") qui dicte en fait quel dialecte minimum de smb est autorisé à accéder. Celui-ci est fait sur le serveur. "protocole client min/max" est effectué sur le client.

Si vous avez un fichier smb.conf sur le client, c'est très bien. Sinon, vous pouvez l'installer de cette façon:

Sudo apt install smbclient
3
Morbius1